问题标签 [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.
java - Java SWT GC,如何强制刷新双缓冲图像?
有以下代码:
...执行底部指令后:shellGC.drawImage(offScreenImage, 0, 0);
有时我会在 shellGC 组件上看到图像,有时 - 不是。只有当我“减慢”程序的执行速度时,我才会看到它,例如当我处于调试模式时。但是当它运行得很快时 - 它不会显示。我希望它强制显示,刷新或任何你的名字,这可能吗?
让我澄清一下,我想要实现的是实现一个基于帧的动画,但还不能播放它双缓冲,能够停止它,只显示暂停的特定单帧,等等......
谢谢你。
java - Java 双缓冲 - 仅每隔一帧绘制
我正在尝试开发一个全屏应用程序,但我遇到了双缓冲区问题。
我看到了严重的闪烁 - 似乎文本仅在每个其他缓冲区上绘制,其余缓冲区包含白色背景。可能是什么问题呢?
delphi - 双缓冲形式导致文本框角落出现黑点
当我在表单上有几个文本框并将表单的DoubleBuffered
属性设置为 时True
,它会使表单上的文本框在每个角落都有黑点。这是文本框的角在没有 DoubleBuffered
父窗体的情况下的样子:
这是他们的 样子DoubleBuffered
:
我已经尝试在文本框本身上进行设置DoubleBuffered
,False
但这根本没有帮助。我能做些什么来解决这个烦恼?
c# - C# LineShape 闪烁
我正在使用 LineShape(Microsoft VisualBasic Powerpacks 工具包的一部分)在图表上画一条线。我需要能够单击并拖动线。我目前可以这样做,但是在拖动线条时,它闪烁得很厉害。我认为使用 LineShape 比在图表上绘制线条图形更容易,因为我可以在拖动时更改端点的位置,但是这种闪烁对于我的应用程序来说真的很糟糕并且不可接受。
有谁知道如何在没有闪烁的情况下移动 LineShapes 或任何其他 Powerpack 形状?
PS DoubleBuffered 在我正在使用的表单上设置为 true。
谢谢!
更新
我无法在任何地方找到解决此问题的方法,因此我最终重做整个课程以在图表的 PostPaint 事件中绘制线条,并在我想移动线条时重新绘制。现在没有闪烁,但我很失望这个“工具”不能用于如此明显的应用程序。
再次感谢汉斯的回复。
java - 为什么 getSize() 在这里对我不起作用,为什么在调整大小时会闪烁?
这是我第一次尝试使用BufferStrategy
,我真的很感激一些提示。
1)为什么,在下面的代码中,在getSize()
您调整窗口大小之前返回 0 的尺寸?如何立即检测窗口的大小?
2)为什么getSize()
返回的东西不是窗口的完整尺寸?IE 为什么底部和右侧有一个黑色的条带?
3) 调整窗口大小时有没有办法消除闪烁?
c# - 优化绘图以缓冲 C#
我正在尝试用 c# 为我的大学项目制作一个类似 photoshop 的应用程序到目前为止,我已经创建了一个名为 canvas 的自定义面板并重载了paint方法来绘制 canvasBuffer。该项目被称为油漆锐利。我有一个类 PaintSharpFile 存储图像的各个层。在 Canvas 控件上,我将选中的透明背景绘制到 canvasBuffer 上,然后将绘图文件中的图层绘制到 canvasBuffer 上。我终于画了这个缓冲区(双缓冲)。
现在,我正在编写画笔工具的代码。我记录了前一个点和当前点,然后在 canvasBuffer 本身上使用 Bresenham 的线算法在这两个点之间绘制一系列圆圈。这似乎工作得又快又好。
现在,由于画笔工具将在选定的活动图层上工作,我尝试将点绘制到图层的缓冲区。然后绘制所有图层的缓冲区canvasBuffer。这样做会使绘图变得非常缓慢。
这是代码
这是我的 onPaint 代码
这是将图片绘制到缓冲区
请告诉我如何阻止油漆滞后。
我尝试制作几个画布,每个画布都有一个图层图像。但由于它不是双缓冲的,因此会导致闪烁。
java - 你如何在Java中为游戏加倍缓冲?
所以在我正在开发的游戏中,我有一个弹珠跟随鼠标,但是当它这样做时屏幕会闪烁。
背景包括两个 jpeg 和 9 个矩形。我将如何进行双重缓冲呢?这是主窗口的代码。
c++ - WM_EX_COMPOSITED 没有双缓冲
我正在尝试在 Win32 应用程序中实现双缓冲,因此我需要将窗口的控件从最后面的控件绘制到最前面。据我了解,WM_EX_COMPOSITED
这样做,但它也会对自身进行双重缓冲1。如何在WS_EX_COMPOSITED
没有双缓冲的情况下让窗口从下到上绘制?
我没有使用WM_EX_COMPOSITED
双缓冲,因为我认为我可以手动做得更好,并且不会出现 DWM 闪烁等问题。
java - Java双缓冲——访问backimage
我正在尝试创建一个 java 游戏,它将BufferedImage
与BufferStrategy
. 为此,我希望能够访问实际的背景图像(并对其执行效果),而不仅仅是从strategy.getDrawGraphics()
. 在网上搜索并通过awt
源代码后,我无法找到该图像的实际位置或如何访问它。有人知道吗?我应该只使用自己的缓冲图像并绘制到该图像,然后将其粘贴到背景图像Graphics
吗?
谢谢!
c++ - 如何正确处理 WS_EX_COMPOSITED?
有人可以解释如何创建处理由 WS_EX_COMPOSITED 引起的错误的 WndProc(错误在某些控件上是无穷无尽的 WM_PAINT)?
我用于 WS_EX_COMPOSITED 的所有内容是当我的应用程序窗口被隐藏以便能够对其进行截图时(如果 WS_EX_COMPOSITED 未设置,PrintWindow 失败),我得到截图但 CPU 使用率始终为 99%。
这是我从谷歌找到的信息: Never ending WM_PAINT loop with ATL CWindowImpl http://forums.codeguru.com/showthread.php?t=483719
但并没有给我太多的亮度......我添加到我的 WndProc 的唯一更改如下:
它降低了 CPU 使用率,但不能正确绘制所有控件。