我正在为应用程序学习Direct2D(使用sharpdx在c#中),但我很难找到哪种是最新的工作方式..
这是我目前的问题:
起初,我只使用Direct2D和D2D1Factory,如"快速启动" MSDN。但是在寻求优化性能时,似乎我应该使用ID2D1DeviceContext来访问some caching mechanism。所以我按照this MSDN article更新了我的申请。
但SolidColorBrush的SharpDX构造函数只接受RenderTarget作为第一个参数,它似乎没有接受DeviceContext的构造函数。但它曾经拥有它,我已经找到了它的SharpDX代码示例。
这种方法是否已经破裂?为什么SharpDX删除了这个构造函数?因为我需要从DeviceContext初始化Brushes以将它们与我的DeviceContext绘制调用一起使用。
从ID2D1Factory创建一个RenderTarget来创建我的画笔,然后尝试将它们与ID2D1DeviceContext.Draw_something()一起使用抛出一个DirectX资源异常(看似逻辑......)
有人可以点亮我吗?
非常感谢。
答案 0 :(得分:2)
根据SDK ID2D1DeviceContext本身就是一个渲染目标,它继承自ID2D1RenderTarget。因此,您应该能够将设备上下文指针用作渲染目标指针参数值。