Parâmetro Global

Cada efeito em conformidade com DXSAS deve definir, no mínimo, um único parâmetro de efeito global com a semântica global. O parâmetro global também pode usar uma ou mais anotações opcionais. A sintaxe é a seguinte:

int VariableName : SasGlobal
<
    SasVersion 
    [OptionalAnnotations]
>;

onde:

  • VariableName é um nome de variável de cadeia de caracteres de texto ASCII especificado pelo usuário.
  • SasGlobal é a palavra-chave semântica que identifica esse parâmetro como o parâmetro DXSAS global.
  • SasVersion é a única anotação necessária.
  • OptionalAnnotations pode incluir o seguinte:
    • SasEffectAuthor
    • SasEffectAuthoringSoftware
    • sasEffectCategory
    • SasEffectCompany
    • SasEffectDescription
    • SasEffectHelp
    • SasEffectRevision

SasVersion

A única anotação necessária é SasVersion. Ele é declarado assim:

int3 SasVersion = { major, minor, revision };

onde:

  • major indica a versão principal do DXSAS. As principais versões do DXSAS podem conter alterações abrangentes no conjunto de semânticas e anotações definidas. A semântica e as anotações podem ser adicionadas e removidas e, em geral, a compatibilidade com versões anteriores não é garantida.
  • minor indica a versão secundária da SAS. Versões secundárias do DXSAS podem incluir a adição de novas semânticas ou anotações. Além disso, a semântica e as anotações podem ser marcadas como preteridas no padrão DXSAS. A semântica preterida e as anotações ainda devem ser suportadas por aplicativos host, mas podem emitir um diagnóstico de aviso quando essa semântica ou anotação é usada. Versões secundárias são compatíveis com versões anteriores.
  • A revisão indica a revisão DXSAS. As revisões do DXSAS existem apenas como um meio de corrigir bugs, remover ambiguidade e refinar o padrão. As revisões para o padrão são compatíveis com versões anteriores.

A versão atual é 1.0.0. Não há nenhum valor padrão para essa anotação.

SasEffectAuthor

Isso declara a pessoa que criou o efeito. Ele é declarado assim:

string SasEffectAuthor = "value";

em que o valor é uma cadeia de caracteres que identifica o autor do efeito. O padrão é uma cadeia de caracteres vazia.

SasEffectAuthoringSoftware

Isso declara o software no qual o efeito foi criado. Ele é declarado assim:

string SasEffectAuthoringSoftware = "value";

em que o valor é uma cadeia de caracteres que identifica o efeito de criação de software. O padrão é uma cadeia de caracteres vazia.

SasEffectCategory

Isso declara a categoria de efeito. Ele é declarado assim:

string SasEffectCategory = "value";

onde o valor é uma cadeia de caracteres que identifica a categoria de efeito. O padrão é uma cadeia de caracteres vazia. A categoria é expressa por meio de um valor semelhante a um caminho usando a barra para frente como delimitador. Os efeitos só podem pertencer a uma categoria, pois não há sintaxe para expressar a inclusão em vários caminhos dentro de um único valor SasEffectCategory. O valor dessa anotação não é tratado como diferencial de maiúsculas de minúsculas pelo aplicativo host.

SasEffectCompany

Isso declara a empresa que criou o efeito. Ele é declarado assim:

string SasEffectCompany = "value";

em que o valor é uma cadeia de caracteres que identifica o nome da empresa que possui o efeito. O padrão é uma cadeia de caracteres vazia.

SasEffectDescription

Isso descreve o efeito. Ele é declarado assim:

string SasEffectDescription = "value";

onde o valor é uma cadeia de caracteres que descreve o efeito. O padrão é uma cadeia de caracteres vazia.

SasEffectHelp

Essa é uma cadeia de caracteres de ajuda que pode ser exibida ao usuário sempre que a ajuda sobre o efeito associado for solicitada. Ele é declarado assim:

string SasEffectHelp = "value";

onde o valor é uma cadeia de caracteres que pode ser exibida se o usuário solicitar ajuda. O padrão é uma cadeia de caracteres vazia.

SasEffectRevision

Essa anotação permite que ferramentas e usuários registrem o número de revisão do arquivo de efeito associado. Por exemplo, os usuários podem inserir palavras-chave apropriadas no valor dessa anotação para invocar a substituição de palavra-chave em seu software de controle de revisão favorito. Ele é declarado assim:

string SasEffectRevision = "value";

em que o valor é uma cadeia de caracteres que identifica a revisão de efeito. O padrão é uma cadeia de caracteres vazia.

Exemplos

Aqui está um exemplo que usa apenas a anotação única e necessária:

int gp : SasGlobal
<
  int3 SasVersion = {1,0,0};
>;

Aqui está um exemplo que usa a anotação necessária e várias anotações opcionais:

int gp : SasGlobal
<
  int3 SasVersion = {1,0,0};
  string SasEffectAuthor = "Mike's Shader";
  string SasEffectAuthoringSoftware = "fxe 2.5.4";
  string SasEffectCategory = "/surface/procedural/wood";
  string SasEffectCompany = "Microsoft Corporation";
  string SasEffectDescription = "Renders an iridescent surface.";
  string SasEffectHelp = "For more information, see https://somelocation/skin.htm";    
  string SasEffectRevision = "$Revision$";  
>;

referência de anotações e semânticas do DirectX Standard