【问题标题】:GDI+ Viewport optimizationGDI+ 视口优化
【发布时间】:2021-04-04 06:06:15
【问题描述】:

我正在使用 GDI+ 创建一个简单的图形框架,它允许您使用各种组件(如 Windows 窗体或 java swings)与应用程序交互。 目前我正在尝试实现一个合适的渲染系统。我遇到了一个问题,我无法确定视口的优化方法。

我想要实现的是不允许组件的图形在其父级范围之外呈现。

我找不到任何对处理视口的内置支持,所以我不得不自己进行实现。我目前的想法是为每个图形组件分配一个唯一的 DC,然后将它们合并在一起以创建最终图像。这将允许我只复制父组件范围内的图像部分。 由于我找不到任何合适的材料来深入研究这个主题,我不确定我提到的方法是否正确。

如果有任何建议/提示如何在应用程序框架中以标准方式处理视口,我将不胜感激。

【问题讨论】:

标签: c++ winapi frameworks gdi+


【解决方案1】:

如果我正确理解了您的问题,那么您做错了。视口背后的想法是,您将所有内容渲染到 back buffer 中,然后使用视口从中剪辑,就像您在现实生活中使用窗口向外看一样。没有必要搞乱一堆“隐藏的”DCs。这显然有其自身的局限性,因为您假设所有内容都是可见的,您必须渲染所有内容的内容,然后根据通过viewport 可见的内容对其进行剪辑。然而,这可以通过将视口区域传播到“内部”视图来缓解,但这需要更多的数学运算。

【讨论】:

  • 感谢您的回答。我在您的建议中看到的唯一问题是区分多个视口。就我而言,基本上,每个组件都有自己的视口。一旦所有内容都绘制在后备缓冲区上,我就无法知道哪个图形对象属于哪个组件。
猜你喜欢
  • 2011-02-14
  • 1970-01-01
  • 1970-01-01
  • 2012-01-28
  • 1970-01-01
  • 2020-12-22
  • 1970-01-01
  • 1970-01-01
  • 2017-09-04
相关资源
最近更新 更多