IronPython:无法构建WPF ShaderEffect

时间:2009-12-21 08:35:58

标签: wpf ironpython shader

我正在尝试构建一个可扩展的程序,用户可以在其中构建自己的着色器效果。

谷歌搜索让我走到了这一步;

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

但我仍然得到错误;

  

TypeError:无法访问受保护的   会员   RegisterPixelShaderSamplerProperty   没有python的子类   ShaderEffect。

非常感谢任何帮助。

网上最好的资源我可以找到is linked here

1 个答案:

答案 0 :(得分:0)

您需要使用Reflection来访问.NET类的受保护的memeber - 您没有可​​以直接访问此类成员的Python子类。

尝试这样的想法(我没有测试过):

inputPropertyType = ShaderEffect.GetType().GetMember(
    'RegisterPixelShaderSamplerProperty',
    BindingFlags.Instance | BindingFlags.NonPublic)
inputProperty = inputPropertyType.GetValue(ShaderEffect, None)
inputProperty("Input", type(Test()), 0)