问题标签 [double-buffering]

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 回答
1865 浏览

winapi - How do I implement double buffering in the winapi?

I can't stop the flickering. I got the advice to add dubbel-buffering. How do I do that?

0 投票
1 回答
74 浏览

java - 双缓冲方法之间的区别

我正在用 Java 制作我的第一个小程序游戏,阅读了一些教程并找到了不同的双缓冲解决方案。我想知道它们之间有什么区别,任何利弊等。在此先感谢!

第一:

第二个:

0 投票
1 回答
284 浏览

assembly - 如何在程序集的图形模式下为我的精灵实现“双缓冲区”?

我已经在 Google 上搜索了几个小时,以了解如何在连续绘制、擦除和重绘我将用于我的游戏的精灵时防止闪烁。我看到的许多网站都告诉我使用双缓冲区,甚至没有告诉我如何使用。-_- 有人可以教我如何在 masm32 汇编中实现双缓冲区吗?您的回答将不胜感激!

编辑:顺便说一句,我正在使用 int 10h,ah = 13h

0 投票
1 回答
1085 浏览

android - Using personal SurfaceView on LinearLayout

I'm currently developing an Android App, using a personal SurfaceView and double buffering. However I'm facing a little problem with my code.
In one hand I have an xml view, based on LinearLayout hierarchy. When I instantiate my activity, I set my contentView on this xml. The problem is then that my double buffering don't works anymore. Thread is running but nothing is displayed.
In the other hand, I set my contentView with a new personal SurfaveView element and display works fine. But of course, I cannot access anymore to the other elements of my LinearLayout.

Actually, I would like to set my contentView on my xml view AND keep my display working.

I hope I was clear enough, thank you for your answers!

Here is my activity:

My surface view:

And my xml view:

EDIT:
After further researches and analyses, it appears clearly that:

  • setContentView(R.layout.main_controller_activity): in this case I get all the elements from my activity, but the MCustomDrawableView display nothing.
  • setContentView(new MCustomDrawableView(getApplicationContext())): on that case, MCustomDrawableView is working well (it displays what I want), but I don't have the others View from my main_controller_activity

In both cases:

  • my thread is running and works well.
  • my drawing function is called as well, with the holder.lockCanvas() and holder.unlockCanvasAndPost(bufferCanvas) methods.
0 投票
1 回答
127 浏览

c++ - 为什么我在控制台中进行双缓冲时会出现随机符号?

我正在尝试在控制台中使用双缓冲。我已经编写了这段代码,它可以编译,但是在创建的控制台中,最下面的几行填充了随机字符。更改CHAR_INFO cur[Width*Height];CHAR_INFO cur[Width*Height+200];有帮助,但我不明白为什么对 Width*Height 的记忆还不够。

我认为问题是由于没有为它保留一些与 chiBuffer 对应的内存,但我不明白为什么。那么,问题是什么?

0 投票
2 回答
7496 浏览

python - HWSURFACE 和 DOUBLEBUF 是做什么的?

我在网上看到了HWSURFACE|DOUBLEBUF|RESIZABLE调整窗口大小的方法。

HWSURFACE它有效,但我不确定DOUBLEBUF实际做什么。

我知道它代表硬件表面和双缓冲区,但它们实际上有什么帮助我不知道。

0 投票
1 回答
948 浏览

c++ - 使用 C++11 使用 Futures 和 Promises 实现双缓冲

我开始学习多线程,并遇到了在共享资源上同步线程的未来和承诺。因此,我想到了使用 Futures 和 Promises(单个生产者和单个消费者)来实现一个著名的双缓冲问题。我认为的基本方法是:

生产者线程:

消费者线程:

这是代码:

当我执行这段代码时,我遇到了他的巨大问题,我完全不知道

我已经搜索过这个错误,建议在链接和编译时链接 -lpthread 开关。但无法解决问题。

请帮助我,我哪里错了..

0 投票
0 回答
85 浏览

java - Java8:双缓冲滞后

我们注意到在 Java 版本 8 u40 之后完成双缓冲所需的时间与之前的版本相比显着增加。它变得如此缓慢(达到一个数量级),以至于我们在 Java 8 中对任何高于 u40 的东西都将其关闭。是的,存在闪烁(当然不理想),但用户体验的步伐不会随着有点闪烁(尽管头痛的机会很可能增加了)。

在目标机器安装了受影响的 java 版本之后,这种明显的延迟就突然出现了。没有代码更改。

这与问题有关:

java8中的重绘()和双缓冲,错误?

有没有其他人注意到这个问题?

0 投票
2 回答
135 浏览

opengl-es - 在OpenGL中查询屏幕缓冲区的数量

我正在开发一个屏幕图像通常是静态的 OpenGL 应用程序。我可以想到 3 种方法来处理这种情况:

  1. 无论如何,只需一遍又一遍地渲染整个屏幕
  2. 要求OpenGL仅在有变化时调用渲染循环
  3. 仅在图像更改时重绘图像,否则立即退出渲染循环

显然,选项 1 会极大地浪费处理能力(即移动设备上的电池充电),而选项 2 将是最佳解决方案。

选项 2 和选项 3 之间的功耗差异可能非常小(如果我错了,请纠正我),因为对渲染循环的不必要调用和任何相关的设置开销应该很小。事实证明,对于我的多线程渲染管道,选项 3 比选项 2 更容易实现。所以,如果我能让它工作,我想先试一试。

当我尝试通过渲染静态图像一次时,屏幕开始在该图像和黑色之间疯狂地闪烁。我的猜测是这是由于双重(或三重?)缓冲:我的图像只被绘制到一个缓冲区中,但是在每次调用渲染循环时,缓冲区都会翻转,因此图像最终会出现在仅当该缓冲区恰好是活动缓冲区时才筛选。

简单的解决方案:在每个缓冲区中绘制一次静态图像,然后才立即开始退出渲染循环。

为此,我需要知道缓冲区的数量,即我需要绘制图像的次数。有没有办法查询这个号码?或者,如果我的渲染循环变成 NO-OP,我可以以某种方式阻止缓冲区切换吗?

我正在构建此代码的 OpenGL ES 1.0 和 OpenGL ES 2.0 版本,以获得最大的设备支持。

0 投票
1 回答
78 浏览

java - 使用 JWindow 进行双缓冲

我正在尝试对透明进行双重缓冲,JWindow但似乎使用的技术无效(不同的循环值相互绘制)。