Compartir a través de


Anotación de interfaz de usuario

Use esta anotación para asociar un parámetro de efecto a un control de interfaz de usuario en el entorno host. Esto permitirá a un usuario controlar interactivamente un parámetro de efecto a través de la aplicación host.

DXSAS define un conjunto de controles estándar en términos del modelo de datos y el comportamiento básico que los autores de efectos pueden esperar de las aplicaciones host. La anotación de control se usa de la siguiente manera:

string SasUiControl = "ControlType";

where

ControlType

es uno de los siguientes valores:

ControlType Descripción Tipo de datos interno Anotaciones de propiedades de control
Ninguno No se debe mostrar ningún control. Tenga en cuenta que un control está visible si SasUiVisible es True y el tipo de control es cualquier otro que no sea None. N/D N/D
Any Esto implica que no se solicita ningún control especial. El control presentado es el resultado del comportamiento definido por la aplicación. N/D N/D
ColorPicker Representa un valor de color como muestra de color. El valor se empaqueta en los componentes XYZ del vector asociado. El componente W del vector asociado siempre se establece en uno. floatN donde N es de 1 a 4 inclusive. SasUiEnum
Dirección Vector de dirección. floatN donde N es de 2 a 4 inclusive. Ninguno
FilePicker Cuadro de diálogo que permite al usuario examinar y seleccionar un archivo. string Ninguno
ListPicker Lista de valores de cadena de los que el usuario puede seleccionar una entrada. Los valores se generan a partir de la anotación SasUiEnum . Matriz de cadenas junto con un valor entero que contiene el índice del valor de cadena seleccionado. SasUiEnum
Numeric Un conjunto de controles de entrada numéricos (como cuadros de texto). floatMxN donde M y N son de 1 a 4 inclusive. SasUiMin, SasUiMax, SasUiStride
Control deslizante Un conjunto de controles deslizantes. floatMxN donde M y N son de 1 a 4 inclusive SasUiMin, SasUiMax, SasUiSteps, SasUiStepsPower
String Cuadro de texto para editar contenido de cadena. string Ninguno

 

Si el tipo de datos interno no es idéntico al tipo del parámetro asociado, la conversión se producirá cuando los datos se transfieran desde el parámetro de aplicación host al parámetro de efecto.

El valor predeterminado es la cadena "None".

Propiedades comunes de la interfaz de usuario

SasUiDescription

Use esta anotación para especificar una cadena para describir una herramienta. Esto se podría usar para elementos de interfaz de usuario, como sugerencias de herramientas.

string SasUiDescription = "descriptive string";

Por ejemplo:

float3 UpNormal
<
  string SasUiDescription = "The normalized up vector";
>;

El valor predeterminado es una cadena vacía.

SasUiLabel

Use esta anotación para especificar una cadena para etiquetar cualquier control de interfaz de usuario.

string SasUiLabel = "some label;

Este es un ejemplo:

float3 UpNormal
<
  string SasUiLabel = "Normal that points up.";
>;

El valor predeterminado es una cadena vacía.

SasUiVisible

Use esta anotación para especificar si se debe mostrar el parámetro asociado al usuario.

bool SasUiVisible = false;

Si se establece en True, la aplicación host debe mostrar un control de interfaz de usuario para editar el parámetro de efecto anotado. Si es false, no se muestra ninguna interfaz de usuario en la aplicación host.

Este es un ejemplo:

float3 UpNormal
<
  string SasUiVisible = false;
>;

El valor predeterminado es True.

Propiedades del control de interfaz de usuario

Las anotaciones de propiedad de control son modificadores adicionales que ayudan a determinar cómo funciona un control determinado.

SasUiEnum

Esta anotación permite restringir el intervalo de valores de un control. La anotación contiene una cadena de valores delimitados por comas.

El valor predeterminado es una cadena vacía.

SasUiMax

Esta anotación especifica el valor máximo del parámetro asociado. Solo se puede asociar a un parámetro con tipo numérico. El valor máximo del parámetro se calculará realmente como:

MaxValue = min(FLT_MAX, PARAMETER_TYPE_MAX);

PARAMETER_TYPE_MAX es el valor máximo del tipo utilizado por el parámetro asociado. Esto significa que el valor del parámetro, teniendo en cuenta la anotación SasUiMax se calcula como:

ParameterValue = min(NewParameterValue, MaxValue);

El valor predeterminado es FLT_MAX tal y como se define en Math.h.

SasUiMin

Esta anotación especifica el valor mínimo del parámetro asociado. Solo se puede asociar a cualquier parámetro con tipo numérico. El valor mínimo del parámetro se calculará realmente como:

MinValue = max(-FLT_MAX, PARAMETER_TYPE_MIN);

PARAMETER_TYPE_MIN es el valor mínimo para el tipo utilizado por el parámetro asociado. Esto significa que el valor del parámetro , teniendo en cuenta la anotación SasUiMin se calcula como:

ParameterValue = max(NewParameterValue, MinValue);

El valor predeterminado es -FLT_MAX tal y como se define en Math.h.

SasUiSteps

Esta anotación especifica el número de pasos que se pueden usar al incrementar o disminuir el valor del parámetro asociado. La anotación solo es significativa en un parámetro con tipo numérico. Cero especifica que la aplicación host elegirá un número razonable de pasos.

El valor predeterminado es 0.

SasUiStepsPower

Esta anotación especifica el exponente en la función de energía, que tiene el intervalo [0.0f, 1.0f]. Las aplicaciones host deben implementar el método siguiente al calcular los valores de parámetro:

ParameterValue = ((SasUiMax - SasUiMin) x pow(UI_VALUE, SasUiStepsPower) + SasUiMin

El valor predeterminado es 1.0f.

SasUiStride

Esta anotación especifica el incremento que se debe usar al incrementar o disminuir este valor. A diferencia de SasUiSteps, SasUiStride es útil con un control spinner, por ejemplo, donde los datos no están enlazados y el usuario prefiere incrementar el valor del parámetro por paso en lugar de por un número predefinido de pasos. Las aplicaciones host deben incrementar (o disminuir según el comportamiento del control) por el valor de SasUiStride de la siguiente manera:

ParameterValue = ParameterValue +/- SasUiStride

El valor predeterminado es 1.0f.

Referencia semántica y anotaciones estándar de DirectX