c++ - Direct2D 保存渲染结果

标签 c++ directx rendering direct2d

我有几组(图层)要渲染的几何图形。例如,第一组和第三组/图层是静态的(渲染应该只执行一次),但第二组/图层应该渲染几次。有没有办法保存第一层和第三层的渲染结果,以便只渲染第二组然后合并结果?我见过ID2D1Layer接口(interface),但显然它不能保存渲染结果。您能否建议如何避免对第一层和第三层进行不必要的渲染?

最佳答案

Is there a way to save the rendering result for first and third layer in order to render only second group and then combine results?

是的,有。您可以渲染(缓存)位图中的静态几何图形 (ID2D1Bitmap/1)。然后将位图渲染到最终渲染目标而不是几何图形。通过这种方式,您可以用内存换取速度。

D2D layers不做你假设的事情。它们用于设置渲染器(设备上下文)的(可堆叠)设置。设置包括:裁剪矩形、不透明度、任意画笔、任意矩阵变换等。

关于c++ - Direct2D 保存渲染结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33638439/

相关文章:

c++ - 为什么 Visual Studio Community 2017 C++ 标准是 C++98?

directx - DirectCompute:如何读取 RWTexture2D<float4>?

c++ - 如何以编程方式禁用网络摄像头的自动对焦?

javascript - React Native - 从父组件重新渲染子组件

c++ - 使用 ctypes : undefined symbol 包装 C++

c++ - 有没有办法让构造函数接受两种可能的参数类型?

c# - 在 DirectX 中渲染时出现性能问题

css - 使用 CSS3 "background-size"是否可以加快页面渲染?

c++ - 使用 cout 时消失的奇怪段错误

c++ - DirectX CreateOverlay函数库?