Package | flash.display |
Classe | public final dynamic class ShaderData |
Héritage | ShaderData Object |
Version du langage: | ActionScript 3.0 |
Versions du moteur d’exécution: | Flash Player 10, AIR 1.5 |
Ces propriétés sont ajoutées à l’objet ShaderData lors de sa création. Le nom des propriétés correspond au nom spécifié dans le code source du shader. Le type de données de chaque propriété dépend de l’aspect du shader représenté par la propriété. Les propriétés qui représentent les paramètres du shader sont des occurrences ShaderParameter, celles qui représentent des images d’entrée sont des occurrences ShaderInput et celles qui représentent les métadonnées du shader sont des occurrences de la classe ActionScript correspondant à leur type de données (par exemple, une occurrence String pour les métadonnées textuelles et une occurrences uint pour les métadonnées uint).
Examinons par exemple le shader suivant, défini avec une image d’entrée (src
), deux paramètres (size
et radius
) et trois valeurs de métadonnées (nameSpace
, version
et 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 vous créez une occurrence de Shader en chargeant le code binaire pour ce shader, l’occurrence ShaderData de sa propriété data
contient les propriétés suivantes :
Propriété | Type de données | Valeur |
---|---|---|
name | String | "DoNothing" |
nameSpace | String | "Adobe::Example" |
version | String | "1" |
description | String | "A shader that does nothing, but does it well." |
src | ShaderInput | [Occurrence de ShaderInput] |
size | ShaderParameter | [Occurrence de ShaderParameter, avec les propriétés des métadonnées du paramètre] |
radius | ShaderParameter | [Occurrence de ShaderParameter, avec les propriétés des métadonnées du paramètre] |
Notez que toute image d’entrée ou tout paramètre défini dans le code source du shader qui n’est pas utilisé dans la fonction evaluatePixel()
du shader est supprimé lorsque le shader est compilé en pseudo-code binaire. Dans ce cas, aucune occurrence ShaderInput ou ShaderParameter correspondante n’est ajoutée en tant que propriété de l’occurrence ShaderData.
De façon générale, le code du développeur ne crée pas d’occurrence ShaderData. Une occurrence ShaderData contenant des données, des paramètres et des entrées pour un shader est disponible en tant que propriété data
de l’occurrence Shader.
Plus d’exemples
Eléments de l’API associés
Méthode | Défini par | ||
---|---|---|---|
ShaderData(byteCode:ByteArray)
Crée une occurrence ShaderData. | ShaderData | ||
Indique si la propriété spécifiée d’un objet est définie. | Object | ||
Indique si une occurrence de la classe Object figure dans la chaîne de prototype de l’objet spécifié en tant que paramètre. | Object | ||
Indique si la propriété spécifiée existe et est énumérable. | Object | ||
Définit la disponibilité d’une propriété dynamique pour les opérations en boucle. | Object | ||
Renvoie la représentation de chaîne de cet objet, formatée selon les paramètres régionaux en vigueur. | Object | ||
Renvoie la représentation sous forme de chaîne de l’objet spécifié. | Object | ||
Renvoie la valeur primitive de l’objet spécifié. | Object |
ShaderData | () | Constructeur |
public function ShaderData(byteCode:ByteArray)
Version du langage: | ActionScript 3.0 |
Versions du moteur d’exécution: | Flash Player 10, AIR 1.5 |
Crée une occurrence ShaderData. En général, le code du développeur n’appelle pas directement le constructeur ShaderData. Une occurrence ShaderData contenant des données, des paramètres et des entrées pour une occurrence Shader est accédée via sa propriété data
.
byteCode:ByteArray — Pseudo-code binaire du shader.
|
Eléments de l’API associés
data
pour afficher les propriétés des entrées, des paramètres et des métadonnées du shader.
Notez que cet exemple part du principe qu’un fichier de pseudo-code binaire du shader nommé « donothing.pbj » existe dans le répertoire de sortie de l’application.
// // 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, 09:30 AM Z