| Pacote | flash.display |
| Classe | public final dynamic class ShaderData |
| Herança | ShaderData Object |
| Versão da linguagem: | ActionScript 3.0 |
| Versões de runtime: | Flash Player 10, AIR 1.5 |
Essas propriedades são adicionadas ao objeto ShaderData quando este é criado. Os nomes das propriedades correspondem aos nomes especificados no código-fonte do shader. O tipo de dados de cada propriedade varia de acordo com o aspecto do shader representado pela propriedade. As propriedades que representam parâmetros do shader são ocorrências de ShaderParameter; as propriedades que representam imagens de entrada são ocorrências de ShaderInput e as propriedades que representam os metadados do shader são ocorrências da classe ActionScript correspondentes ao seu tipo de dados (por exemplo, uma ocorrência de String para metadados textuais e uint para metadados uint).
Por exemplo, considere este shader, definido com uma imagem de entrada (src), dois parâmetros (size e radius) e três valores de metadados (nameSpace, version e description):
<languageVersion : 1.0;>
kernel DoNothing
<
namespace: "Adobe::Example";
vendor: "Adobe examples";
version: 1;
description: "A shader that does nothing, but does it well.";
>
{
input image4 src;
output pixel4 dst;
parameter float2 size
<
description: "The size of the image to which the kernel is applied";
minValue: float2(0.0, 0.0);
maxValue: float2(100.0, 100.0);
defaultValue: float2(50.0, 50.0);
>;
parameter float radius
<
description: "The radius of the effect";
minValue: 0.0;
maxValue: 50.0;
defaultValue: 25.0;
>;
void evaluatePixel()
{
float2 one = (radius / radius) ∗ (size / size);
dst = sampleNearest(src, outCoord());
}
}
Caso você crie uma ocorrência de Shader carregando o código de bytes do shader, a ocorrência de ShaderData na propriedade data contém estes parâmetros:
| Propriedade | Tipo de dados | Valor |
|---|---|---|
| nome | String | "DoNothing" |
| nameSpace | String | "Adobe::Example" |
| version | String | "1" |
| descrição | String | "A shader that does nothing, but does it well." |
| src | ShaderInput | [Uma ocorrência de ShaderInput] |
| size | ShaderParameter | [Uma ocorrência de ShaderParameter com propriedades para os metadados do parâmetro] |
| radius | ShaderParameter | [Uma ocorrência de ShaderParameter com propriedades para os metadados do parâmetro] |
Qualquer imagem de entrada ou parâmetro definido no código-fonte do shader, mas que não seja usado na função evaluatePixel() do shader, é removido quando o shader é compilado em código de bytes. Nesse caso, nenhuma ocorrência de ShaderInput ou ShaderParameter correspondente é adicionada como propriedade da ocorrência de ShaderData.
Geralmente, o código do desenvolvedor não cria uma ocorrência de ShaderData. Uma ocorrência de ShaderData que contém dados, parâmetros e entradas de um shader está disponível como sendo a propriedade data da ocorrência de Shader.
Elementos da API relacionados
| Método | Definido por | ||
|---|---|---|---|
ShaderData(byteCode:ByteArray)
Cria uma ocorrência de ShaderData. | ShaderData | ||
![]() |
Indica se um objeto tem uma propriedade especificada definida. | Object | |
![]() |
Indica se uma ocorrência da classe Object está na cadeia de protótipos do objeto especificado como o parâmetro. | Object | |
![]() |
Indica se a propriedade especificada existe e é enumerável. | Object | |
![]() |
Define a disponibilidade de uma propriedade dinâmica para operações de repetição. | Object | |
![]() |
Retorna a representação da string deste objeto, formatado segundo as convenções específicas para a localidade. | Object | |
![]() |
Retorna a representação de string do objeto especificado. | Object | |
![]() |
Retorna o valor primitivo do objeto especificado. | Object | |
ShaderData | () | Construtor |
public function ShaderData(byteCode:ByteArray)| Versão da linguagem: | ActionScript 3.0 |
| Versões de runtime: | Flash Player 10, AIR 1.5 |
Cria uma ocorrência de ShaderData. Geralmente, o código do desenvolvedor não chama o construtor ShaderData diretamente. Uma ocorrência de ShaderData que contém dados, parâmetros e entradas de uma ocorrência de Shader é acessada usando a propriedade data.
byteCode:ByteArray — O código de bytes do shader.
|
Elementos da API relacionados
data para exibir a entrada, os parâmetros e as propriedades de metadados do shader.
Este exemplo supõe a existência de um arquivo de código de bytes do sombreador chamado "donothing.pbj" no mesmo diretório do diretório de saída do aplicativo.
//
// Source code for the shader:
//
<languageVersion : 1.0;>
kernel DoNothing
<
namespace: "Adobe::Example";
vendor: "Adobe examples";
version: 1;
description: "A shader that does nothing, but does it well.";
>
{
input image4 src;
output pixel4 dst;
parameter float2 size
<
description: "The size of the image to which the shader is applied";
minValue: float2(0.0, 0.0);
maxValue: float2(100.0, 100.0);
defaultValue: float2(50.0, 50.0);
>;
parameter float radius
<
description: "The radius of the effect";
minValue: float(0.0);
maxValue: float(50.0);
defaultValue: float(25.0);
>;
void evaluatePixel()
{
float2 one = (radius / radius) * (size / size);
dst = sampleNearest(src, outCoord());
}
}
//
// ActionScript source code:
//
package {
import flash.display.Shader;
import flash.display.Sprite;
import flash.events.Event;
import flash.net.URLLoader;
import flash.net.URLLoaderDataFormat;
import flash.net.URLRequest;
public class ShaderDataExample extends Sprite {
private var loader:URLLoader;
public function ShaderDataExample() {
loader = new URLLoader();
loader.dataFormat = URLLoaderDataFormat.BINARY;
loader.addEventListener(Event.COMPLETE, loadCompleteHandler);
loader.load(new URLRequest("donothing.pbj"));
}
private function loadCompleteHandler(event:Event):void {
var shader:Shader = new Shader();
shader.byteCode = loader.data;
for (var p:String in shader.data) {
trace(p, ":", shader.data[p]);
for (var d:String in shader.data[p]) {
trace("\t", d, ":", shader.data[p][d]);
}
}
}
}
}
Wed Jun 13 2018, 11:10 AM Z
Ocultar propriedades públicas herdadas
Mostrar propriedades públicas herdadas