问题标签 [doublebuffered]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
3 回答
2198 浏览

directx - DirectX 闪烁视频

好吧,所以我写了一个自定义的 VMR9 分配器/演示器,它似乎工作正常。但是,当我尝试将视频帧从分配器/演示器表面复制到我的应用程序表面时,视频似乎闪烁。音频播放很好,所以我相当确定这不是机器陷入困境或其他任何问题。这是我在渲染循环中的代码。

但是,如果我将其更改为此(注释掉清除缓冲区)

这种闪烁消失了。我担心这在某种程度上是不好的形式/hackish,可能会导致比它解决的问题更多的问题。有没有人有这方面的经验?有更好的解决方案吗?

谢谢!

0 投票
5 回答
1878 浏览

c++ - 在这种情况下如何使用双缓冲?

假设我有三个控件A,B,C。它们都是从CDialog继承的,A是一个主对话框,A包含B,B包含C。每次我用鼠标拖动C,B和C都会一起移动.

这是一张图片:http: //img507.imageshack.us/img507/7039/31709956.jpg

我们知道这会导致 B 和 C 重新绘制自己。并且可能会导致闪烁。

我的问题是是否有一种方法可以对这两个对话框 B 和 C 进行双重缓冲?

我知道在 XP 和 vista 中,有一个属性 WS_EX_COMPOSITED 会有所帮助,但我不想使用它。

有人可能会建议我使用 memDC,但我的问题是如何将 B 的 ondraw 和 C 的 ondraw 函数中的动作合并到缓冲区中?

希望有人知道我说了什么。

提前致谢!

0 投票
3 回答
1180 浏览

user-interface - 如何停止窗口渲染并稍后恢复?

我想防止我的窗口被更新,直到我完成从服务器接收数据并呈现它。我可以挂钩 WM_PAINT 事件,还是更好地调用一些 Win32API 方法来防止窗口被更新并在以后解冻它?

更多信息: 在用 C# 编写的 MMC 管理单元的上下文中,我们的应用程序会遇到烦人的闪烁和双重排序行为:我们使用 MMC 的 listViews,但因为我们订阅了排序事件。MMC 使用它自己的魔法并对正在显示的页面进行排序(我们不能覆盖它),当我们收到来自服务器的回复时,我们再次更改 listView。每行更改都是按顺序完成的,没有 beginUpdate 等(AFAIK)。

0 投票
1 回答
1935 浏览

opengl - WGL:没有双缓冲+多采样=失败?

wglChoosePixelFormatARB()我通常使用这些参数(以及其他参数)创建像素格式:

即双缓冲和x4 多重采样。这工作得很好。
但是当我尝试打开双缓冲时:

调用wglChoosePixelFormatARB()失败(或者说它没有创建任何东西)
当我有效地关闭多重采样时:

我又正常工作了。

是否有一些固有的东西阻止非双缓冲像素格式与多重采样一起使用?

我关闭双缓冲的原因是为了实现不受限制的帧速率。通过双重缓冲,我得到的帧速率最高仅为 60 FPS(这款笔记本电脑 LCD 工作频率为 60Hz)。但是关闭双缓冲后,我可以达到 1500 FPS。有没有办法通过双缓冲来实现这一点?

0 投票
3 回答
4488 浏览

java - 如何在 Java2D 中进行双缓冲?

我正在屏幕上使用 Java2D 绘制一堆原语,并且出现很多撕裂/闪烁。

如何启用/使用双缓冲,以便将其从屏幕上绘制出来然后显示整个内容?

0 投票
2 回答
3409 浏览

c# - C#,覆盖 OnPaint:带双缓冲区的 alpha 透明度

我正在使用带有C#的.Net Compact Framework 2.0 SP2开发Windows Mobile 5.0 及更高版本的应用程序。

我在自定义消息框上重写 OnPaint 方法,该消息框绘制了一个位图,该位图用 alpha 透明度填充整个表单,以及一个带有按钮的渐变框和半透明背景上的消息。

我正在测试它,但它太慢了,所以我将使用双缓冲。我可以使用双缓冲区来绘制渐变框和测试,但如果我使用带有 alpha 透明度的背景位图的双缓冲区,它不会绘制 alpha 透明度。所以我只用渐变框和消息和按钮做双缓冲。免费的透明位图直接绘制在 e.Graphics 上。

我想知道是否可以将 e.Graphics 保存在位图上以完成所有工作并结束 OnPaint 方法绘制到 e.Graphics 这个我之前保存的位图。

这是我的代码:

bmpOffscreen:双缓冲区的位图。

也许我可以在 bmpOffscreen 中获取表单的快照,然后在其上绘制半透明背景、渐变框和文本。

总结: 我想将 alpha blend 与 double buffer 一起使用

有什么建议吗?

0 投票
2 回答
7909 浏览

.net - ControlStyles.DoubleBuffer 与 ControlStyles.OptimizedDoubleBuffer

ControlStyles.DoubleBufferControlStyles.OptimizedDoubleBuffer有什么区别?

ControlStyles.DoubleBuffer没有显示在 Intellisense 下拉列表中,而ControlStyles.OptimizedDoubleBuffer实际上已列出。

MSDN 文档并没有立即说明差异(至少对我而言)。

0 投票
4 回答
15249 浏览

java - Java 面板双缓冲

想知道是否有人能指出我正确的方向,我开发了一个乒乓球游戏,由于闪烁,它需要双缓冲。我尝试了这里的一些帖子以尝试使其工作,但我仍然是摇摆 awt suff 的初学者,任何帮助都会非常感谢。

0 投票
2 回答
4760 浏览

java - JFrame 中的 BufferStrategy 与 DIY 双缓冲

到目前为止,我已经通过创建和 Image 完成了双缓冲,使用其关联的 Graphics 对象将我想要的内容绘制到该 Image 上,然后使用 paint 方法的 Graphics 对象将该 Image 绘制到屏幕上。最近,我了解了 BufferStrategy 类及其用途。我想知道这两种方法的优缺点是什么。

编辑:我不认为我的问题很清楚。我想知道 DIY 方法和 BufferStrategy 的优缺点,以及何时(如果有的话)我应该使用其中一种。

0 投票
2 回答
5284 浏览

opengl - VSync=on 的非阻塞 SwapBuffers()

我正在寻找一种可移植的方式来制作非阻塞 SwapBuffers() 即使 VSync 被激活。
换句话说,是否有可能被事件通知或知道直到下一个 VSync 的延迟?