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 é a seguinte:

int VariableName : SasGlobal
<
    SasVersion 
    [OptionalAnnotations]
>;

em que:

SasVersion

A única anotação necessária é SasVersion. Declara-se assim:

int3 SasVersion = { major, minor, revision };

em que:

  • major indica a versão principal do DXSAS. As principais versões do DXSAS podem conter mudanças radicais 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 liberação menor do SAS. Versões secundárias do DXSAS podem incluir a adição de novas semânticas ou anotações. Além disso, semântica e anotações podem ser marcadas como preteridas no padrão DXSAS. A semântica e as anotações preteridas ainda devem ser suportadas por 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.
  • revisão indica a revisão DXSAS. As revisões do DXSAS existem apenas como um meio de corrigir bugs, remover ambiguidades e refinar o padrão. As revisões do 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. Declara-se assim:

string SasEffectAuthor = "value";

onde 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. Declara-se assim:

string SasEffectAuthoringSoftware = "value";

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

SasEffectCategory

Isto declara a categoria de efeito. Declara-se assim:

string SasEffectCategory = "value";

onde 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 a um caminho usando a barra invertida 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 diferencia maiúsculas de minúsculas pelo aplicativo host.

SasEffectCompany

Isso declara a empresa que criou o efeito. Declara-se assim:

string SasEffectCompany = "value";

onde value é uma cadeia de caracteres que identifica o nome da empresa proprietária do efeito. O padrão é uma cadeia de caracteres vazia.

SasEffectDescrição

Isto descreve o efeito. Declara-se assim:

string SasEffectDescription = "value";

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

SasEffectAjuda

Esta é uma cadeia de caracteres de ajuda que pode ser exibida para o usuário sempre que a ajuda sobre o efeito associado é solicitada. Declara-se assim:

string SasEffectHelp = "value";

onde 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 a substituição de palavras-chave em seu software de controle de revisão favorito. Declara-se assim:

string SasEffectRevision = "value";

onde value é uma cadeia de caracteres que identifica a revisão do efeito. O padrão é uma cadeia de caracteres vazia.

Exemplos

Aqui está um exemplo que usa apenas a única anotação 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$";  
>;

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