SharpDX/SolidColorBrush 构造函数与 DeviceContext?

Posted

技术标签:

【中文标题】SharpDX/SolidColorBrush 构造函数与 DeviceContext?【英文标题】:SharpDX/SolidColorBrush constructor with DeviceContext? 【发布时间】:2017-08-18 00:23:41 【问题描述】:

我正在为一个应用程序学习 Direct2D(在 c# 中使用 sharpdx),但我很难找到最新的工作方式..

这是我目前的问题:

起初,我只将 Direct2D 与 D2D1Factory 一起使用,如 MSDN 的“快速入门”中所述。但是在寻求优化性能时,似乎我应该使用 ID2D1DeviceContext 进行绘制以访问some caching mechanism。于是我跟着this MSDN article更新了我的申请。

但是 SolidColorBrush 的 SharpDX 构造函数只接受 RenderTarget 作为第一个参数,它似乎没有接受 DeviceContext 的构造函数。但它曾经有它,我找到了 SharpDX 代码示例。

那个方法已经过时了吗?为什么 SharpDX 删除了这个构造函数?因为我需要从 DeviceContext 初始化画笔,以便将它们与我的 DeviceContext 绘制调用一起使用。

从 ID2D1Factory 创建一个 RenderTarget 来创建我的画笔,然后尝试将它们与 ID2D1DeviceContext.Draw_something() 一起使用会引发 DirectX 资源异常(这似乎是逻辑...)

谁能给我点灯?

非常感谢。

【问题讨论】:

我不知道sharpdx,从来没有需要它,但是你看过实际的Direct2D SDK吗? ID2D1DeviceContext 本身就是一个渲染目标,它继承自 ID2D1RenderTarget。 我很愚蠢...我没有注意到!我只需要将我的 DeviceContext 作为 RenderTarget 传递...如果您愿意,请用您的评论回复我的帖子,以便我可以将其标记为已接受的答案。谢谢;) 好的,作为答案发布。 【参考方案1】:

根据 SDK ID2D1DeviceContext 本身就是一个渲染目标,它继承自 ID2D1RenderTarget。所以你应该可以使用设备上下文指针作为渲染目标指针参数值。

【讨论】:

以上是关于SharpDX/SolidColorBrush 构造函数与 DeviceContext?的主要内容,如果未能解决你的问题,请参考以下文章

05.析构函数

mfc 类的析构函数

异构计算 — 异构芯片融合趋势

ccombobox析构函数会自动清空列表框吗

异构计算 — Overview

异构计算 — Overview