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