问题标签 [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.
directx - DirectX 闪烁视频
好吧,所以我写了一个自定义的 VMR9 分配器/演示器,它似乎工作正常。但是,当我尝试将视频帧从分配器/演示器表面复制到我的应用程序表面时,视频似乎闪烁。音频播放很好,所以我相当确定这不是机器陷入困境或其他任何问题。这是我在渲染循环中的代码。
但是,如果我将其更改为此(注释掉清除缓冲区)
这种闪烁消失了。我担心这在某种程度上是不好的形式/hackish,可能会导致比它解决的问题更多的问题。有没有人有这方面的经验?有更好的解决方案吗?
谢谢!
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 函数中的动作合并到缓冲区中?
希望有人知道我说了什么。
提前致谢!
user-interface - 如何停止窗口渲染并稍后恢复?
我想防止我的窗口被更新,直到我完成从服务器接收数据并呈现它。我可以挂钩 WM_PAINT 事件,还是更好地调用一些 Win32API 方法来防止窗口被更新并在以后解冻它?
更多信息: 在用 C# 编写的 MMC 管理单元的上下文中,我们的应用程序会遇到烦人的闪烁和双重排序行为:我们使用 MMC 的 listViews,但因为我们订阅了排序事件。MMC 使用它自己的魔法并对正在显示的页面进行排序(我们不能覆盖它),当我们收到来自服务器的回复时,我们再次更改 listView。每行更改都是按顺序完成的,没有 beginUpdate 等(AFAIK)。
opengl - WGL:没有双缓冲+多采样=失败?
wglChoosePixelFormatARB()
我通常使用这些参数(以及其他参数)创建像素格式:
即双缓冲和x4 多重采样。这工作得很好。
但是当我尝试打开双缓冲时:
调用wglChoosePixelFormatARB()
失败(或者说它没有创建任何东西)
当我有效地关闭多重采样时:
我又正常工作了。
是否有一些固有的东西阻止非双缓冲像素格式与多重采样一起使用?
我关闭双缓冲的原因是为了实现不受限制的帧速率。通过双重缓冲,我得到的帧速率最高仅为 60 FPS(这款笔记本电脑 LCD 工作频率为 60Hz)。但是关闭双缓冲后,我可以达到 1500 FPS。有没有办法通过双缓冲来实现这一点?
java - 如何在 Java2D 中进行双缓冲?
我正在屏幕上使用 Java2D 绘制一堆原语,并且出现很多撕裂/闪烁。
如何启用/使用双缓冲,以便将其从屏幕上绘制出来然后显示整个内容?
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 一起使用。
有什么建议吗?
.net - ControlStyles.DoubleBuffer 与 ControlStyles.OptimizedDoubleBuffer
ControlStyles.DoubleBuffer和ControlStyles.OptimizedDoubleBuffer有什么区别?
ControlStyles.DoubleBuffer没有显示在 Intellisense 下拉列表中,而ControlStyles.OptimizedDoubleBuffer实际上已列出。
MSDN 文档并没有立即说明差异(至少对我而言)。
java - Java 面板双缓冲
想知道是否有人能指出我正确的方向,我开发了一个乒乓球游戏,由于闪烁,它需要双缓冲。我尝试了这里的一些帖子以尝试使其工作,但我仍然是摇摆 awt suff 的初学者,任何帮助都会非常感谢。
java - JFrame 中的 BufferStrategy 与 DIY 双缓冲
到目前为止,我已经通过创建和 Image 完成了双缓冲,使用其关联的 Graphics 对象将我想要的内容绘制到该 Image 上,然后使用 paint 方法的 Graphics 对象将该 Image 绘制到屏幕上。最近,我了解了 BufferStrategy 类及其用途。我想知道这两种方法的优缺点是什么。
编辑:我不认为我的问题很清楚。我想知道 DIY 方法和 BufferStrategy 的优缺点,以及何时(如果有的话)我应该使用其中一种。
opengl - VSync=on 的非阻塞 SwapBuffers()
我正在寻找一种可移植的方式来制作非阻塞 SwapBuffers() 即使 VSync 被激活。
换句话说,是否有可能被事件通知或知道直到下一个 VSync 的延迟?