Paquete | flash.display |
Clase | public final dynamic class ShaderData |
Herencia | ShaderData Object |
Versión del lenguaje: | ActionScript 3.0 |
Versiones de motor de ejecución: | Flash Player 10, AIR 1.5 |
Estas propiedades se añaden al objeto ShaderData en el momento de su creación. Los nombres de las propiedades coinciden con los especificados en el código fuente del sombreado. El tipo de datos de cada propiedad varía en función del aspecto del sombreado que represente la propiedad. Las propiedades que representan parámetros de sombreado son instancias de ShaderParameter; las propiedades que representan imágenes de entrada son instancias de ShaderInput y las propiedades que representan metadatos de sombreado son instancias de la clase de ActionScript correspondiente a su tipo de datos (por ejemplo, una instancia de String para metadatos textuales y una instancia de uint para metadatos uint).
Por ejemplo, considere este sombreado definido por una imagen de entrada (src
), dos parámetros (size
y radius
) y tres valores de metadatos (nameSpace
, version
y 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()); } }
Si crea una instancia de Shader cargando el código de bytes para el sombreado, la instancia de ShaderData contendrá las siguientes propiedades en su propiedad data
:
Propiedad | Tipo de datos | Valor |
---|---|---|
name | String | "DoNothing" |
nameSpace | String | "Adobe::Example" |
version | String | "1" |
description | String | "Un sombreado que no hace nada, pero lo hace bien." |
src | ShaderInput | [Una instancia de ShaderInput] |
size | ShaderParameter | [Una instancia de ShaderParameter con propiedades para los metadatos del parámetro] |
radius | ShaderParameter | [Una instancia de ShaderParameter con propiedades para los metadatos del parámetro] |
Tenga en cuenta que cualquier imagen o parámetro de entrada definido en el código fuente del sombreado pero no usado en la función evaluatePixel()
del sombreado se elimina cuando se compila el código de bytes del sombreado. En ese caso, no se añade ninguna instancia correspondiente de ShaderInput ni de ShaderParameter como propiedad de la instancia de ShaderData.
Generalmente, el código del desarrollador no crea ninguna instancia de ShaderData. Una instancia de ShaderData con datos, parámetros y entradas para un sombreado está disponible como la propiedad data
de la instancia de Shader.
Elementos de API relacionados
Método | Definido por | ||
---|---|---|---|
ShaderData(byteCode:ByteArray)
Crea una instancia de ShaderData. | ShaderData | ||
Indica si un objeto tiene definida una propiedad especificada. | Object | ||
Indica si hay una instancia de la clase Object en la cadena de prototipo del objeto especificado como parámetro. | Object | ||
Indica si existe la propiedad especificada y si es enumerable. | Object | ||
Establece la disponibilidad de una propiedad dinámica para operaciones de bucle. | Object | ||
Devuelve la representación de cadena de este objeto, con formato según las convenciones específicas de configuración regional. | Object | ||
Devuelve la representación de cadena del objeto especificado. | Object | ||
Devuelve el valor simple del objeto especificado. | Object |
ShaderData | () | Información sobre |
public function ShaderData(byteCode:ByteArray)
Versión del lenguaje: | ActionScript 3.0 |
Versiones de motor de ejecución: | Flash Player 10, AIR 1.5 |
Crea una instancia de ShaderData. Generalmente, el código del desarrollador no llama al constructor ShaderData directamente. Para acceder a una instancia de ShaderData con datos, parámetros y entradas para una instancia de Shader, utilice su propiedad data
.
byteCode:ByteArray — El código de bytes del sombreado.
|
Elementos de API relacionados
data
para visualizar las propiedades de de entrada, parámetros y metadatos de un sombreado.
Tenga en cuenta que este ejemplo asume que existe un archivo de código de bytes de sombreado llamado "donothing.pbj" en el mismo directorio que el directorio de salida de la aplicación.
// // 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]); } } } } }
Tue Jun 12 2018, 02:12 PM Z