| 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
Dölj ärvda publika egenskaper
Visa ärvda publika egenskaper