0

私は、特にユーザーが独自のシェーダー効果を構築できる拡張可能なプログラムを構築しようとしています。

Google 検索でここまでたどり着きました。

class Test(ShaderEffect):
    inputProperty = ShaderEffect.RegisterPixelShaderSamplerProperty("Input", type(Test()), 0)

しかし、それでもエラーが発生します。

TypeError: ShaderEffect の Python サブクラスがないと、保護されたメンバー RegisterPixelShaderSamplerProperty にアクセスできません。

どんな助けでも大歓迎です。

私が見つけることができるネット上で最高のソースはここにリンクされています

4

1 に答える 1

0

.NET クラスの保護されたメンバーにアクセスするには、リフレクションを使用する必要があります。そのようなメンバーに直接アクセスできる Python サブクラスはありません。

このように考えてみてください(私はテストしていません):

inputPropertyType = ShaderEffect.GetType().GetMember(
    'RegisterPixelShaderSamplerProperty',
    BindingFlags.Instance | BindingFlags.NonPublic)
inputProperty = inputPropertyType.GetValue(ShaderEffect, None)
inputProperty("Input", type(Test()), 0)
于 2009-12-21T16:47:30.077 に答える