Paket | flash.display |
Klass | public final dynamic class ShaderData |
Arv | ShaderData Object |
Språkversion: | ActionScript 3.0 |
Körningsmiljöversioner: | Flash Player 10, AIR 1.5 |
De här egenskaperna läggs till i ShaderData-objektet när det skapas. Egenskapernas namn matchar de namn som angetts i skuggningens källkod. Datatypen för varje egenskap varierar efter vilken del av denna skuggning som egenskapen representerar. Egenskaperna som representerar skuggningsparametrar är ShaderParameter-instanser, egenskaperna som representerar inmatningsbilder är ShaderInput-instanser och egenskaperna som representerar skuggningsmetadata är instanser av ActionScript-klassen som motsvarar deras datatyp (t.ex. en String-instans för textmetadata och uint för uintmetadata).
Ta denna skuggning som exempel. Den är definierad med en inmatningsbild (src
), två parametrar (size
och radius
) och tre metadatavärden (nameSpace
, version
och 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()); } }
Om du skapar en Shader-instans genom att läsa in bytekoden för denna skuggning, kommer ShaderData-instansen att innehålla dessa egenskaper i sin data
-egenskap:
Egenskap | Datatyp | Värde |
---|---|---|
namn | String | ”DoNothing” |
nameSpace | String | ”Adobe::Example” |
version | String | "1" |
description | String | ”En skuggning utan funktion men som fungerar bra.” |
src | ShaderInput | [En ShaderInput-instans] |
size | ShaderParameter | [En ShaderParameter-instans med egenskaper för parametermetadata] |
radius | ShaderParameter | [En ShaderParameter-instans med egenskaper för parametermetadata] |
Observera att alla inmatningsbilder och parametrar som är definierade i skuggningskällkoden, men som inte används i skuggningens evaluatePixel()
-funktion, tas bort när skuggningen kompileras till bytekod. I det här fallet har inga motsvarande ShaderInput- eller ShaderParameter-instanser lagts till som en egenskap i ShaderData-instansen.
I allmänhet skapas inte en ShaderData-instans av koden. En ShaderData-instans som innehåller data, parametrar och inmatningar för en skuggning är tillgänglig som Shader-instansens data
-egenskap.
Relaterade API-element
Metod | Definieras med | ||
---|---|---|---|
ShaderData(byteCode:ByteArray)
Skapar en ShaderData-instans. | ShaderData | ||
Anger om det finns en egenskap angiven för ett objekt. | Object | ||
Anger om en instans av klassen Object finns i prototypkedjan för objektet som anges som parameter. | Object | ||
Anger om den angivna egenskapen finns och är uppräkningsbar. | Object | ||
Anger tillgänglighet för en dynamisk egenskap för slingåtgärder. | Object | ||
Returnerar det här objektets strängrepresentation, formaterad i enlighet med språkspecifika konventioner. | Object | ||
Returnerar det angivna objektets strängbeteckning. | Object | ||
Returnerar det angivna objektets primitiva värde. | Object |
ShaderData | () | Konstruktor |
public function ShaderData(byteCode:ByteArray)
Språkversion: | ActionScript 3.0 |
Körningsmiljöversioner: | Flash Player 10, AIR 1.5 |
Skapar en ShaderData-instans. I allmänhet anropas ShaderData-konstruktorn direkt i koden. En ShaderData-instans som innehåller data, parametrar och inmatningar för en Shader-instans nås med hjälp av dess data
-egenskap.
byteCode:ByteArray — Skuggningens bytekod.
|
Relaterade API-element
data
-egenskap så att skuggningens inmatnings-, parameter- och metadataegenskaper visas.
Observera att det här exemplet förutsätter att det finns en bytekodfil för skuggningen med namnet ”donothing.pbj” i samma katalog som programmets utdatakatalog.
// // 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, 01:40 PM Z