Compartir a través de


Parámetro global

Cada efecto compatible con DXSAS debe definir, como mínimo, un único parámetro de efecto global con la semántica global. El parámetro global también puede usar una o varias anotaciones opcionales. La sintaxis es la siguiente:

int VariableName : SasGlobal
<
    SasVersion 
    [OptionalAnnotations]
>;

donde:

SasVersion

La única anotación necesaria es SasVersion. Se declara así:

int3 SasVersion = { major, minor, revision };

donde:

  • major indica la versión principal de DXSAS. Las versiones principales de DXSAS pueden contener cambios de barrido en el conjunto de semánticas y anotaciones definidas. La semántica y las anotaciones se pueden agregar y quitar y, en general, no se garantiza la compatibilidad con versiones anteriores.
  • minor indica la versión secundaria de SAS. Las versiones secundarias de DXSAS pueden incluir la adición de nuevas semánticas o anotaciones. Además, la semántica y las anotaciones se pueden marcar como en desuso en el estándar DXSAS. Las aplicaciones host deben seguir admitiendo la semántica y las anotaciones en desuso, pero pueden emitir un diagnóstico de advertencia cuando se usa dicha semántica o anotación. Las versiones secundarias son compatibles con versiones anteriores.
  • revision indica la revisión DXSAS. Las revisiones de DXSAS solo existen como medio para corregir errores, quitar ambigüedad y refinar el estándar. Las revisiones del estándar son compatibles con versiones anteriores.

La versión actual es 1.0.0. No hay ningún valor predeterminado para esta anotación.

SasEffectAuthor

Esto declara la persona que creó el efecto. Se declara así:

string SasEffectAuthor = "value";

donde value es una cadena que identifica al autor del efecto. El valor predeterminado es una cadena vacía.

SasEffectAuthoringSoftware

Esto declara el software en el que se creó el efecto. Se declara así:

string SasEffectAuthoringSoftware = "value";

donde value es una cadena que identifica el software de creación de efectos. El valor predeterminado es una cadena vacía.

SasEffectCategory

Esto declara la categoría de efecto. Se declara así:

string SasEffectCategory = "value";

donde value es una cadena que identifica la categoría de efecto. El valor predeterminado es una cadena vacía. La categoría se expresa a través de un valor similar a la ruta de acceso mediante la barra diagonal como delimitador. Los efectos solo pueden pertenecer a una categoría, ya que no hay sintaxis para expresar la inclusión en varias rutas de acceso dentro de un único valor SasEffectCategory. El valor de esta anotación no se trata como distingue mayúsculas de minúsculas en la aplicación host.

SasEffectCompany

Esto declara la empresa que creó el efecto. Se declara así:

string SasEffectCompany = "value";

donde value es una cadena que identifica el nombre de la empresa que posee el efecto. El valor predeterminado es una cadena vacía.

SasEffectDescription

Esto describe el efecto. Se declara así:

string SasEffectDescription = "value";

donde value es una cadena que describe el efecto. El valor predeterminado es una cadena vacía.

SasEffectHelp

Se trata de una cadena de ayuda que se puede mostrar al usuario cada vez que se solicita ayuda sobre el efecto asociado. Se declara así:

string SasEffectHelp = "value";

donde value es una cadena que se puede mostrar si el usuario solicita ayuda. El valor predeterminado es una cadena vacía.

SasEffectRevision

Esta anotación permite que las herramientas y los usuarios registren el número de revisión del archivo de efecto asociado. Por ejemplo, los usuarios podrían insertar palabras clave adecuadas en el valor de esta anotación para invocar la sustitución de palabras clave en su software de control de revisiones favorito. Se declara así:

string SasEffectRevision = "value";

donde value es una cadena que identifica la revisión del efecto. El valor predeterminado es una cadena vacía.

Ejemplos

Este es un ejemplo que usa solo la anotación única y necesaria:

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

Este es un ejemplo que usa la anotación necesaria y varias anotaciones opcionales:

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$";  
>;

Referencia semántica y anotaciones estándar de DirectX