Gölgelendirici meta verilerine erişme

Flash Player 10 ve üstü, Adobe AIR 1.5 ve üstü

Yazar, Pixel Bender gölgelendirici çekirdeği oluştururken, Pixel Bender kaynak kodunda gölgelendirici hakkında meta veriler belirtebilir. ActionScript'te bir gölgelendirici kullanırken, gölgelendiriciyi inceleyebilir ve meta verilerini ayıklayabilirsiniz.

Bir Shader örneği oluşturup bu örneği Pixel Bender gölgelendiricisine bağladığınızda, gölgelendirici hakkındaki verileri içeren bir ShaderData nesnesi oluşturulur ve Shader nesnesinin data özelliğinde saklanır. ShaderData sınıfı kendi özelliklerini tanımlamaz. Ancak, gölgelendirici kaynak kodunda tanımlanan her meta veri değeri için çalışma zamanında bir özellik dinamik olarak ShaderData nesnesine eklenir. Özelliklerin her birine verilen ad, meta veride belirtilen adla aynıdır. Örneğin, Pixel Bender gölgelendiricisinin kaynak kodunun şu meta veri tanımını içerdiğini varsayın:

namespace : "Adobe::Example"; 
vendor : "Bob Jones"; 
version : 1; 
description : "Creates a version of the specified image with the specified brightness.";

Bu gölgelendirici için oluşturulan ShaderData nesnesi, şu özellik ve değerlerle oluşturulur:

  • namespace (String): "Adobe::Example"

  • vendor (String): "Bob Jones"

  • version (String): "1"

  • description (String): "Creates a version of the specified image with the specified brightness"

Meta veri özellikleri ShaderData nesnesine dinamik olarak eklendiğinden, ShaderData nesnesini incelemek için for..in döngüsünü kullanabilirsiniz. Bu tekniği kullanarak, gölgelendiricinin herhangi bir meta veri içerip içermediğini ve meta veri değerlerinin ne olduğunu öğrenebilirsiniz. ShaderData nesnesi, meta veri özelliklerine ek olarak, gölgelendiricide tanımlanmış girdileri ve parametreleri temsil eden özelliklere sahip olabilir. Bir ShaderData nesnesini incelemek için for..in döngüsünü kullandığınızda, özelliğin bir girdi mi (ShaderInput örneği), parametre mi (ShaderParameter örneği) yoksa meta veri değeri mi (String örneği) olduğunu belirlemek için her özelliğin veri türünü kontrol edin. Aşağıdaki örnek, for..in döngüsü kullanılarak bir gölgelendiricinin data özelliğinin dinamik özelliklerinin nasıl incelendiğini gösterir. Her meta veri değeri, metadata adındaki bir Vector örneğine eklenir. Bu örnekte, myShader adında bir Shader örneğinin önceden oluşturulduğunun varsayıldığını unutmayın:

var shaderData:ShaderData = myShader.data; 
var metadata:Vector.<String> = new Vector.<String>(); 
 
for (var prop:String in shaderData) 
{ 
    if (!(shaderData[prop] is ShaderInput) && !(shaderData[prop] is ShaderParameter)) 
    { 
        metadata[metadata.length] = shaderData[prop]; 
    } 
} 
 
// do something with the metadata

Bu örneğin, gölgelendirici girdilerini ve parametrelerini de ayıklayan bir modeli için bkz. Gölgelendirici girdilerini ve parametrelerini tanımlama . Girdi ve parametre özellikleri hakkında daha fazla bilgi almak için, bkz. Gölgelendirici girdisi ve parametre değerlerini belirtme .