Anotação da interface do usuário

Use essa anotação para associar um parâmetro de efeito a um controle de interface do usuário no ambiente do host. Isso permitirá que um usuário controle interativamente um parâmetro de efeito por meio do aplicativo host.

O DXSAS define um conjunto de controles padrão em termos do modelo de dados e do comportamento básico que os autores de efeito podem esperar de aplicativos host. A anotação de controle é usada da seguinte maneira:

string SasUiControl = "ControlType";

onde

ControlType

é um dos seguintes:

ControlType Descrição Tipo de dados interno Anotações de propriedade de controle
Nenhum Nenhum controle deve ser mostrado. Observe que um controle ficará visível se SasUiVisible for True e o tipo de controle for qualquer tipo diferente de Nenhum. n/d n/d
Qualquer Isso implica que nenhum controle especial é solicitado. O controle apresentado é o resultado do comportamento definido pelo aplicativo. n/d n/d
ColorPicker Represente um valor de cor como uma amostra de cor. O valor é empacotado nos componentes XYZ do vetor associado. O componente W do vetor associado é sempre definido como um. floatN onde N é 1 a 4 inclusive. SasUiEnum
Direção Um vetor de direção. floatN onde N é 2 a 4 inclusive. Nenhum
FilePicker Uma caixa de diálogo que permite que o usuário navegue e selecione um arquivo. string Nenhum
Listpicker Uma lista de valores de cadeia de caracteres da qual o usuário pode selecionar uma entrada. Os valores são gerados com base na anotação SasUiEnum . Uma matriz de cadeias de caracteres junto com um valor inteiro que contém o índice do valor de cadeia de caracteres selecionado. SasUiEnum
Numérico Um conjunto de controles de entrada numéricos (como caixas de texto). floatMxN em que M e N são de 1 a 4 inclusive. SasUiMin, SasUiMax, SasUiStride
Controle deslizante Um conjunto de controles deslizantes. floatMxN onde M e N são de 1 a 4 inclusive SasUiMin, SasUiMax, SasUiSteps, SasUiStepsPower
String Uma caixa de texto para editar o conteúdo da cadeia de caracteres. string Nenhum

 

Se o tipo de dados interno não for idêntico ao tipo do parâmetro associado, a conversão ocorrerá quando os dados forem transferidos do parâmetro do aplicativo host para o parâmetro de efeito.

O padrão é a cadeia de caracteres "None".

Propriedades comuns da interface do usuário

SasUiDescription

Use essa anotação para especificar uma cadeia de caracteres para descrever uma ferramenta. Isso pode ser usado para elementos de interface do usuário, como dicas de ferramenta.

string SasUiDescription = "descriptive string";

Por exemplo:

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

O padrão é uma cadeia de caracteres vazia.

SasUiLabel

Use essa anotação para especificar uma cadeia de caracteres para rotular qualquer controle de interface do usuário.

string SasUiLabel = "some label;

Veja um exemplo:

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

O padrão é uma cadeia de caracteres vazia.

SasUiVisible

Use essa anotação para especificar se o parâmetro associado deve ser exibido para o usuário.

bool SasUiVisible = false;

Se definido como True, o aplicativo host deverá exibir um controle de interface do usuário para editar o parâmetro de efeito anotado. Se for false, nenhuma interface do usuário será exibida no aplicativo host.

Veja um exemplo:

float3 UpNormal
<
  string SasUiVisible = false;
>;

O padrão é True.

Propriedades do controle de interface do usuário

Anotações de propriedade de controle são modificadores adicionais que ajudam a determinar como um controle específico opera.

SasUiEnum

Essa anotação permite restringir o intervalo de valores de um controle. A anotação contém uma cadeia de caracteres de valores delimitados por vírgulas.

O padrão é uma cadeia de caracteres vazia.

SasUiMax

Essa anotação especifica o valor máximo do parâmetro associado. Ele só pode ser associado a um parâmetro numericamente tipado. O valor máximo do parâmetro será calculado como:

MaxValue = min(FLT_MAX, PARAMETER_TYPE_MAX);

PARAMETER_TYPE_MAX é o valor máximo para o tipo usado pelo parâmetro associado. Isso significa que o valor do parâmetro , levando em conta a anotação SasUiMax é calculado como:

ParameterValue = min(NewParameterValue, MaxValue);

O valor padrão é FLT_MAX conforme definido em Math.h.

SasUiMin

Essa anotação especifica o valor mínimo do parâmetro associado. Ele só pode ser associado a qualquer parâmetro numericamente tipado. O valor mínimo do parâmetro será calculado como:

MinValue = max(-FLT_MAX, PARAMETER_TYPE_MIN);

PARAMETER_TYPE_MIN é o valor mínimo para o tipo usado pelo parâmetro associado. Isso significa que o valor do parâmetro , levando em conta a anotação SasUiMin é calculado como:

ParameterValue = max(NewParameterValue, MinValue);

O valor padrão é -FLT_MAX conforme definido em Math.h.

SasUiSteps

Essa anotação especifica o número de etapas que podem ser usadas ao incrementar ou diminuir o valor do parâmetro associado. A anotação só é significativa em um parâmetro de tipo numericamente. Zero especifica que o aplicativo host escolherá um número razoável de etapas.

O valor padrão é 0.

SasUiStepsPower

Essa anotação especifica o expoente na função de energia, que tem o intervalo [0.0f, 1.0f]. Os aplicativos host devem implementar o seguinte método ao calcular valores de parâmetro:

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

O valor padrão é 1.0f.

SasUiStride

Essa anotação especifica o incremento que deve ser usado ao incrementar ou diminuir esse valor. Ao contrário de SasUiSteps, SasUiStride é útil com um controle spinner, por exemplo, em que os dados não são associados e o usuário prefere incrementar o valor do parâmetro por passo em vez de por um número predefinido de etapas. Os aplicativos host devem incrementar (ou diminuir dependendo do comportamento do controle) pelo valor de SasUiStride da seguinte maneira:

ParameterValue = ParameterValue +/- SasUiStride

O valor padrão é 1.0f.

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