问题标签 [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 投票
1 回答
223 浏览

graphics - 调试时如何防止全屏双缓冲应用程序冻结屏幕?

我正在制作一个使用双缓冲的全屏应用程序。问题如下:当我调试它并且调试器暂停进程(断点命中或抛出异常)时,辅助缓冲区可能会卡在屏幕上。在这种情况下,我只看到当前帧和鼠标指针,我可以与 IDE 的 UI 交互,但我看不到它(因为它是在主缓冲区上绘制的,女巫不可见,我只猜测按钮在哪里) . 我认为这种行为取决于图形驱动程序和操作系统,但可能我不是唯一一个有这个问题的人(在 Ubuntu 上没有类似的问题,但在 Windows 上)。

有谁知道如何将主缓冲区放在前面?

(ps:如果您有更好的想法,请随时纠正我的错字并给出更好的标题。)

编辑:好的,我知道我可以购买新显示器或在窗口模式下运行应用程序。但我的问题是关于全屏模式。而且我忘了提及如果我无法重新启动我的程序并且第二个缓冲区卡住了,摆脱这种情况的唯一方法就是点击重置。

0 投票
6 回答
4486 浏览

c++ - 在双缓冲多线程系统中执行指针交换

当双缓冲数据应在线程之间共享时,我使用了一个系统,其中一个线程从一个缓冲区读取,一个线程从另一个缓冲区读取并从第一个缓冲区读取。问题是,我将如何实现指针交换?我需要使用临界区吗?没有可用的互锁函数可以实际交换值。我不能让线程一从缓冲区一读取,然后从缓冲区二开始读取,在读取过程中,这将是应用程序崩溃,即使另一个线程没有开始写入它。

我在 Visual Studio Ultimate 2010 RC 中的 Windows 上使用本机 C++。

0 投票
1 回答
2392 浏览

vb.net - 在 WinForms 用户控件上轻弹标签背景已启用背景图像

我正在开发一个 Windows 窗体项目,并且在 UserControl 双缓冲方面遇到了一些问题。我创建了一个用户控件并有一个背景图像,然后在它上面我有几个单选按钮和标签。单选按钮和标签都具有透明背景作为颜色。但是,当我显示和隐藏用户控件时,我可以看到那些具有透明背景的标签和单选按钮上的闪烁。

我试过了

在 initializeComponent() 在此用户控件上启用双缓冲区之后,它似乎不起作用。

0 投票
3 回答
4420 浏览

c# - 使用 C# 进行双缓冲有负面影响

我编写了以下简单的程序,它每 100 毫秒在屏幕上绘制线条(由 timer1 触发)。我注意到这幅画有点闪烁(也就是说,窗口并不总是完全是蓝色的,但有一些灰色的光透过)。所以我的想法是使用双缓冲。但是当我这样做时,事情变得更糟了。现在屏幕几乎总是灰色的,只是偶尔会出现蓝色(由 timer2 演示,DoubleBuffered每 2000 毫秒切换一次属性)。

对此有何解释?

0 投票
3 回答
2760 浏览

java - Java中的双缓冲

我在我的程序中实现 DoubleBuffer 时遇到了一些麻烦。在您从文字墙中晕倒之前,您应该知道其中有很多内容以防万一您需要知道。我认为我遇到问题的实际地方是一种方法。

我最近在 gpwiki 上查找了关于双缓冲的教程,并决定尝试将他们拥有的代码实现到我正在尝试实现双缓冲的代码中。我收到以下错误:“java.lang .IllegalStateException:组件必须有一个有效的对等体”。

不知道你知不知道有没有区别,但是下面是main方法的代码。这只是一个在其中显示 ChronosDisplay 类的 Frame。我用“...”省略了不相关的代码

这是我认为问题所在的代码(我认为问题出在 paint() 方法中)。该类在CDM类中显示

如果你好奇(我怀疑这很重要),Tile0 类中的 draw() 方法是:

非常感谢任何指针、提示或解决方案。谢谢你的时间!:D

0 投票
1 回答
4742 浏览

java - 使用 awt 进行双缓冲

是否可以使用 awt 进行双缓冲(在 java 中)?目前,我知道swing不应该与awt一起使用,所以我不能使用BufferStrategy之类的(我已经有一些用awt编写的代码,我不想在swing中重写)。

如果使用 awt 可以进行双缓冲,我是否必须手动写入缓冲区?与 swing 不同,awt 似乎没有相同的内置双缓冲能力。

如果我必须手动编写代码,有没有好的教程可以看?或者对于新手程序员来说使用 swing 更容易/更可取?

对不起,多步骤问题。谢谢你的时间 :)

0 投票
5 回答
8211 浏览

c# - 双缓冲 C#

我正在尝试实现以下方法: void Ball::DrawOn(Gr​​aphics g);

该方法应绘制球的所有先前位置(存储在队列中),最后绘制当前位置。我不知道这是否重要,但我使用 g.DrawEllipse(...) 打印以前的位置,使用 g.FillEllipse(...) 打印当前位置。

问题是,正如您可以想象的那样,有很多绘图要做,因此显示屏开始闪烁很多。我一直在寻找一种双缓冲的方法,但我能找到的只有这两种方法:

1) System.Windows.Forms.Control.DoubleBuffered = true;

2) SetStyle(ControlStyles.DoubleBuffer | ControlStyles.UserPaint | ControlStyles.AllPaintingInWmPaint, true);

在尝试使用第一个时,我收到一个错误,说明在此方法中,属性 DoubleBuffered 由于其保护级别而无法访问。虽然我不知道如何使用 SetStyle 方法。

当我拥有的所有访问权限都是对我在方法中作为输入获得的图形对象时,是否有可能加倍缓冲区?

提前致谢,

编辑:我创建了以下类

}

球 drawOn 看起来像这样:

这是你的意思吗?因为它还在闪烁?

0 投票
1 回答
269 浏览

c# - 对于 c# 中的重型图形应用程序,哪个将是更有效的双缓冲或缓冲图形?

你好,我有一个繁重的图形应用程序,每次我必须在 2-10 秒内绘制图形,这取决于通过 UDP 向我的应用程序发送数据的源应用程序;

我有一些静态图形,它们没有变化,有些是半动态的,这意味着它们有时会更新并且通常保持不变,所有其他图形都是动态的,大约有 8000 个动态对象

我正在使用 c# 并学习标题中给出的两种技术,在这种情况下需要帮助的一种会更有效

提前感谢;

0 投票
1 回答
1466 浏览

c# - 当 DoubleBuffered 设置为 true 时覆盖 OnPaint 的问题

我创建了一个派生自 Panel 的自定义控件。我用它来显示一个使用 BackgroundImage 属性的图像。我覆盖 OnClick 方法并将 isSelected 设置为 true,然后调用 Invalidate 方法并在覆盖的 OnPaint 中绘制一个矩形。一切都很好,直到我将 DoubleBuffered 设置为 true。矩形被绘制,然后被擦除,我不明白为什么会这样。

0 投票
1 回答
3816 浏览

c++ - 帮助双缓冲

我创建了一个效果很好的动画,但它会闪烁。我需要双缓冲方面的帮助,因为我对此一无所知。

这是我的 onPaint() 中的代码:

它工作正常,但闪烁。我尝试了这段代码,但没有奏效: