重塑期间闪烁

发布于 2024-11-05 21:51:01 字数 148 浏览 3 评论 0 原文

我正在使用 FPSAnimator 和 jogl 在 GLCanvas 上绘制旋转四边形。通常图形不会闪烁并且旋转很平滑,但是当我调整窗口大小或将其从屏幕的不可见区域移动到可见区域时,会添加额外的重绘请求。由于所有绘图都是由 FPSAnimator 完成,我如何过滤掉这些额外的请求

I am using FPSAnimator and jogl to draw rotating quad on GLCanvas. Normally graphics is not flickering and rotation is smooth, but when I resize window, or move it from nonvisible area of screen to visible area additional redraw requests are added. How can I filter out these additional requests as all drawing is done by FPSAnimator

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

゛清羽墨安 2024-11-12 21:51:01

您可以尝试在命令行上向 JVM 传递参数:-Dsun.awt.noerasebackground=true。这应该减少/消除闪烁。

该问题在 JoglUserGuide

具体来说:

Windows 上偶尔出现的另一个问题是在实时调整 GLCanvas 大小期间闪烁。这是由 AWT 重新绘制 Canvas 背景引起的,并且不能在每个 Canvas 基础上进行覆盖,例如将 Canvas 子类化为 GLCanvas 时。可以通过指定系统属性 -Dsun.awt.noerasebackground=true 来禁用 Windows 上画布背景的重新绘制。是否指定此标志取决于应用程序,不应普遍执行,而应根据具体情况进行。更多详细信息请参见 JOGL 论坛中的主题“TIP:JOGL + Swing flicker”。

You can try passing the parameter: -Dsun.awt.noerasebackground=true to the JVM on the command line. This should reduce/remove the flickering.

The problem is described on the JoglUserGuide

Specifically:

Another issue that occasionally arises on Windows is flickering during live resizing of a GLCanvas. This is caused by the AWT's repainting the background of the Canvas and can not be overridden on a per-Canvas basis, for example when subclassing Canvas into GLCanvas. The repainting of the background of Canvases on Windows can be disabled by specifying the system property -Dsun.awt.noerasebackground=true. Whether to specify this flag depends on the application and should not be done universally, but instead on a case-by-case basis. Some more detail is in the thread "TIP: JOGL + Swing flicker" in the JOGL forum.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文