问题标签 [glcanvas]

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

java - 与 JOGL GLCanvas (java) 的键绑定

只是好奇,你将如何使用 openGL GLCanvas 的键绑定?我了解如何将它们与 JPanel(适用于 GLPanel)一起使用,但是否可以将其与 GLCanvas 一起使用?如果可能,你会怎么做?

-担

0 投票
1 回答
2036 浏览

java - JOGL:javax.media.opengl.GLException:AWT-EventQueue-0:上下文不是当前线程上的

我正在使用 JOGL 创建一个游戏,但遇到了一个我终生无法弄清楚的错误。

在游戏中,我使用了两个 GLCanvases(实际上是 GLJpanels),一个用于菜单,一个用于实际游戏。这个想法是,当从菜单启动游戏时,菜单 GLCanvas 会从游戏窗口中删除并换成游戏 GLCanvas。到目前为止,我已经让菜单工作得非常完美,但是每当我尝试切换到游戏画布时,我都会收到此错误:

我用来在画布之间切换的代码是:

和开关功能:

我做了一些谷歌搜索,我遇到了这个问题:如何创建自己的 openGL 上下文并将其绑定到 GLCanvas?

但是那里发布的解决方案都没有对我有用。

0 投票
1 回答
985 浏览

java - GLCanvas inside JPanel doesn't work

I am trying to add a GLCanvas with OpenGL-Content to a JPanel. The JPanel is inside a JTabbedPane. But when the GLCanvas is inside the JPanel, the Panel is just grey. When I add the GLCanvas directly into the TabbedPane, everything works fine.

xxx

Here the working code:

An here is the not-working code:

So how can i get the GLCanvas working inside the JPanel?

0 投票
0 回答
92 浏览

java - 来自另一帧的 setVisible() 调用后,JOGL GLCanvas 调整大小失败

我对 JOGL 有疑问。我想创建两个窗口。一个带有 GLCanvas,另一个带有其他东西。每次我在调用添加画布的帧的 setVisible() 之前调用另一个帧的 setVisible()。调整大小时,我只得到一个白色窗口。

如果我改变

一切正常,即使重新调整它,我也会得到我的黑色窗口。

谢谢您的帮助

0 投票
1 回答
737 浏览

swing - Java swing JPanel 示例,GLCanvas 错误

}

在上面的激活器类中,我将 (JPanel) graphpanel添加到 (JPannel) testFrame.getPanel1()然后使用 testFrame 类中的一个按钮,我使用removeAll()方法并再次添加静态 graphPannel,但出现以下错误。

当我调试它时,我看到 GLcanvas 失去了 peer。我找不到解决方案。

线程“Thread-3”中的异常 java.lang.RuntimeException:javax.media.opengl.GLException:无法在 jogamp.common.awt.AWTEDTExecutor.invoke(AWTEDTExecutor.java:58) 处为设备上下文 0xffffffffde01148b 创建临时 OpenGL 上下文jogamp.opengl.awt.AWTThreadingPlugin.invokeOnOpenGLThread(AWTThreadingPlugin.java:103) 在 jogamp.opengl.ThreadingImpl.invokeOnOpenGLThread(ThreadingImpl.java:205) 在 javax.media.opengl.Threading.invokeOnOpenGLThread(Threading.java:172) 在 javax .media.opengl.Threading.invoke(Threading.java:191) at javax.media.opengl.awt.GLCanvas.display(GLCanvas.java:449) at grafik.view.grafik.Gcontroller.draw(Gcontroller.java:169 ) 在 grafik.view 的 grafik.view.Wcontroller.GdataClean(Wcontroller.java:261) 的 grafik.model.data.Dcontroller.drawAll(Dcontroller.java:272)。WThread.run(WThread.java:57) 原因:javax.media.opengl.GLException:无法在 jogamp.opengl.windows.wgl.WindowsWGLContext.createImpl(WindowsWGLContext.java:306) 为设备上下文 0xffffffffde01148b 创建临时 OpenGL 上下文在 jogamp.opengl.GLContextImpl.makeCurrentWithinLock(GLContextImpl.java:572) 在 jogamp.opengl.GLDrawableHelper.invokeGLImpl(GLDrawableHelper.java:645) 在 jogamp.opengl.GLContextImpl.makeCurrent(GLContextImpl.java:485)。 GLDrawableHelper.invokeGL(GLDrawableHelper.java:594) at javax.media.opengl.awt.GLCanvas$8.run(GLCanvas.java:996) at java.awt.event.InvocationEvent.dispatch(Unknown Source) at java.awt.EventQueue .dispatchEventImpl(Unknown Source) at java.awt.EventQueue.access$300(Unknown Source) at java.awt.EventQueue$3。在 java.awt.EventQueue$3.run(Unknown Source) at java.security.AccessController.doPrivileged(Native Method) at java.security.ProtectionDomain$1.doIntersectionPrivilege(Unknown Source) at java.awt.EventQueue.run(Unknown Source)。 dispatchEvent(Unknown Source) at java.awt.EventDispatchThread.pumpOneEventForFilters(Unknown Source) at java.awt.EventDispatchThread.pumpEventsForFilter(Unknown Source) at java.awt.EventDispatchThread.pumpEventsForHierarchy(Unknown Source) at java.awt.EventDispatchThread.pumpEvents(未知源)在 java.awt.EventDispatchThread.pumpEvents(未知源)在 java.awt.EventDispatchThread.run(未知源)doIntersectionPrivilege(Unknown Source) at java.awt.EventQueue.dispatchEvent(Unknown Source) at java.awt.EventDispatchThread.pumpOneEventForFilters(Unknown Source) at java.awt.EventDispatchThread.pumpEventsForFilter(Unknown Source) at java.awt.EventDispatchThread.pumpEventsForHierarchy( Unknown Source) at java.awt.EventDispatchThread.pumpEvents(Unknown Source) at java.awt.EventDispatchThread.pumpEvents(Unknown Source) at java.awt.EventDispatchThread.run(Unknown Source)doIntersectionPrivilege(Unknown Source) at java.awt.EventQueue.dispatchEvent(Unknown Source) at java.awt.EventDispatchThread.pumpOneEventForFilters(Unknown Source) at java.awt.EventDispatchThread.pumpEventsForFilter(Unknown Source) at java.awt.EventDispatchThread.pumpEventsForHierarchy( Unknown Source) at java.awt.EventDispatchThread.pumpEvents(Unknown Source) at java.awt.EventDispatchThread.pumpEvents(Unknown Source) at java.awt.EventDispatchThread.run(Unknown Source)java.awt.EventDispatchThread.pumpEvents(Unknown Source) at java.awt.EventDispatchThread.run(Unknown Source) 的 pumpEvents(Unknown Source)java.awt.EventDispatchThread.pumpEvents(Unknown Source) at java.awt.EventDispatchThread.run(Unknown Source) 的 pumpEvents(Unknown Source)

0 投票
0 回答
92 浏览

java - 带有 GLCanvas 的 SWT 应用程序未正确调整大小

我正在制作一个应用程序,它是某种绘图程序,为此我试图在外壳中使用 SWT 和 GLCanvas 小部件。这是它的一个片段,显示了我遇到的问题:

当我从此代码调整窗口大小时,它无法正确显示。GLCanvas 闪烁,但也好像绘图中有一个步骤,它在调整 GLCanvas 的大小以正确填充剩余的空白之前将其绘制到屏幕上。例如,当窗口被调整到左边时,GLCanvas 比它应该的要小。相反,当窗口向右调整大小时,GLCanvas 比它应该的大,并延伸到窗口的右侧。

我尝试将画布的样式从 SWT.NONE 设置为 SWT.NO_BACKGROUND 到 SWT.DOUBLE_BUFFERED 到 SWT.NO_REDRAW_RESIZE ,但它对这个问题没有影响。

如何解决此行为?

0 投票
1 回答
904 浏览

java - 用 JOGL 截图

我正在寻找一种在GLCanvas没有awt Robot.

这是我当前的设置:

构造函数:

glcanvas被声明为实例变量:GLCanvas glcanvas

OpenGL初始化:

OpenGL显示:

截图方法:

这种方法有效,因为在没有崩溃的情况下执行,但是我得到的 png 文件只是黑色的,没有立方体。我也尝试使用 glReadPixels 但这也不起作用,因为它只是给了我一个充满 0 的缓冲区(黑色)。

我认为问题在于我没有glcanvas从绘图线程中读取。这是错误吗,如果是,我该如何解决?

所有答案表示赞赏!

0 投票
0 回答
104 浏览

java - GLCanvas 序列化

在我的应用程序中,我使用 JOGL lib 来处理 OpenGL。

我需要序列化我的 javax.media.opengl.awt.GLCanvas 实现。

我尝试写信反对我的画布

但我有错误:

因此,GLCanvas 中的字段不可序列化。我能做些什么?

0 投票
0 回答
38 浏览

swing - 是否可以在 Jtable 单元格上使用 JOGL GLCanvas?

我正在尝试在表格的单元格上创建一个包含 JOGL GLCanvas 或 GLJPanel 的 JTable。

我定义了一个从 GLJPanel 继承的自定义表格单元格渲染器,并调用 addGLEventListener 来定义我在显示方法上的自定义绘制(目前我试图在每个单元格上绘制相同的)。我定义了返回自定义表本身的 getTableCellRendererComponent。

这是我的单元格渲染器代码:

这是我将单元格渲染器应用于表格的代码:

启动时,当我期待红色单元格时,我有一个带有白色单元格的表格。

是否可以在表格单元格上使用 GLCanvas 或 GLJpanel?

0 投票
1 回答
67 浏览

java - JOGL:如何更改现有 GLCanvas 的 GLCapabilities?

如何更改现有 GLCanvas 的 GLCapabilities?

我想这样做,以便我可以更改 FSAA(抗锯齿)样本,而无需重新创建 GLCanvas。