Parâmetro Global

Cada efeito compatível 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 é mostrada a seguir:

int VariableName : SasGlobal
<
    SasVersion 
    [OptionalAnnotations]
>;

em que:

SasVersion

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

int3 SasVersion = { major, minor, revision };

em que:

  • 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 de 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 e as anotações preteridas ainda devem ter suporte de aplicativos host, mas podem emitir um diagnóstico de aviso quando essa semântica ou anotação é usada. As versões secundárias são compatíveis com versões anteriores.
  • revision 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 da seguinte maneira:

string SasEffectAuthor = "value";

em que value é 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 da seguinte maneira:

string SasEffectAuthoringSoftware = "value";

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

SasEffectCategory

Isso declara a categoria de efeito. Ele é declarado da seguinte maneira:

string SasEffectCategory = "value";

em que value é 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 ao caminho usando a barra para frente como um 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 diferenciando maiúsculas de minúsculas pelo aplicativo host.

SasEffectCompany

Isso declara a empresa que criou o efeito. Ele é declarado da seguinte maneira:

string SasEffectCompany = "value";

em que value é 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 da seguinte maneira:

string SasEffectDescription = "value";

em que value é 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 para o usuário sempre que a ajuda sobre o efeito associado é solicitada. Ele é declarado da seguinte maneira:

string SasEffectHelp = "value";

em que value é 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 palavra-chave substituição em seu software de controle de revisão favorito. Ele é declarado da seguinte maneira:

string SasEffectRevision = "value";

em que value é 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 irridescent surface.";
  string SasEffectHelp = "For more information, see https://somelocation/skin.htm";    
  string SasEffectRevision = "$Revision$";  
>;

Referência de semântica e anotações padrão do DirectX