问题标签 [openglcontext]

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 投票
3 回答
6344 浏览

opengl - 如何创建自己的 openGL 上下文并将其绑定到 GLCanvas?

所以当我掌握了java

方法我继续创建自己的渲染方法,但我必须了解缓冲区策略以及如何“获取”图形

所以现在我正在学习openGL,我必须掌握这个方法:

现在我想创建自己的渲染方法,到目前为止,我经常遇到一个异常:

线程“主”javax.media.opengl.GLException 中的异常:此线程上没有当前的 OpenGL 上下文

编辑:问题:如果我想在外部进行 glDraw 调用

方法,如何确保我的 GLCanvas 的 glContext 是“当前的”

最好作为一个代码示例,因为我已经查看了 api 并广泛使用了谷歌,你们已经很友好地放在这里我以前已经找到的许多链接,我仍然在画一个空白......从字面上看!最接近我的是当它没有抛出“无当前上下文”异常但屏幕只是永久变黑!

0 投票
1 回答
2775 浏览

opengl - OpenGL 和多个 GPU - 一般可能性

我想知道,是否可以同时在多个 GPU 上运行多窗口 OpenGL 应用程序?更具体地说,假设我创建了一个应用程序,其中有两个窗口,每个窗口都在彼此之间共享它的 GL 上下文。现在,如果我将其中一个窗口从显示器 1(在 GPU 1 上运行)移动到显示器 2(在 GPU 2 上运行),这真的可行吗?仅共享上下文就可以解决问题吗?

我的第一个猜测是否定的。如果这真的不是那么简单,有没有办法做到这一点?我也可以想象这取决于两个 GPU 是否由同一个驱动程序控制(或者更糟糕的是,让机器有一个 ATI 和一个 nVidia 卡,都支持不同的 GL 版本)。

我将不胜感激有关此主题的任何见解,纯粹是信息性的,因为在快速谷歌搜索后我找不到任何东西。有谁知道可能性?

编辑:顺便说一句,不幸的是,我目前没有一台具有多个 GPU 的机器,所以我会稍微测试一下。

0 投票
2 回答
1376 浏览

opengl - 控制台中的openGL上下文

我想使用 openGL 的某些功能,但与渲染视觉内容无关。有没有办法在没有任何依赖项的情况下创建它(不是 Windows,也不是某些包 [SDL,SFML,GLUT])?只有允许的库是那些没有外部库的库,就像我使用的 GLEW 一样。

0 投票
1 回答
412 浏览

java - 将 GLSurfaceView 上下文传递给线程

我希望我的 GL 渲染器设置为“DIRTY”并使用线程来控制 FPS,但由于某种原因,requestRender调用似乎被一起跳过了。我有一种感觉,这可能与线程没有获得正确的上下文有关。有人知道将GLSurfaceView上下文传递给其他线程的好习惯吗?

这是我的线程:

这是我的表面视图的构造函数...

0 投票
1 回答
771 浏览

cocoa - CAOpenGLLayer 显示远程上下文

CAOpenGLLayer class我有一个覆盖 drawInCGLContext在那里的子类 ,我用OpenGL. 被CAOpenGLLayer添加到 aCALayer并显示。

所以当我想画一些东西时,我需要drawInCGLContext用这个架构来做。

我想要的是一种其他class人用来绘制、动画或渲染的上下文,但每次drawInCGLContext发生时都会显示。

所以基本上我的子类唯一应该做的就是显示一个遥控器(OpenGL)context,实现这一点的最佳方法是什么?还是我应该考虑另一种方法?

*不使用 aCALayer不是一种选择。

0 投票
1 回答
1386 浏览

c++ - 没有 VAO 的每个着色器属性的 VBO 或不同的方法?

我在我的应用程序中使用了各种“嵌套”上下文(用于着色器和几何共享),所以我不能使用 VAO,因为它们不能跨上下文共享。

我的网格数据作为唯一顶点的“池”存储在一个 VBO 中,在另一个 VBO 中存储构成面的索引。我目前正在我的 CAD 应用程序中成功地使用它进行线框渲染,但我想添加一个平面阴影模式 - 为此我需要面部法线。

如果我需要顶点法线,我只需将数据附加到顶点位置数据,但我不能在这里这样做,因为顶点将具有不同的面法线,具体取决于它属于哪个面正在被渲染。理想情况下,我想创建另一个 VBO 对来保存我的面部法线和索引,但是如果没有 VAO,我无法将两个 VBO 绑定到同一个目标 - 即使它们用于不同的属性。

我很欣赏正常的路线是使用 VAO,它可以让您将多个 VBO 分配给同一个目标,但我不能使用它们,因为我的几何上下文是共享的,而 VAO 不是。这个问题有其他解决方案吗?

0 投票
1 回答
912 浏览

java - 有没有办法将上下文传递给 onDrawFrame(GL10 gl)?

我正在用 Java 在 Android 上的 Open GLES 中设计一个游戏。

显然我使用了很多纹理,很快我就会耗尽内存。

我对 Android 和 Java 很陌生,但我认为解决这个问题的最简单方法是用位图销毁对象,我目前不需要,让垃圾收集器回收它们占用的内存,然后在我再次需要相应纹理的后期重新创建这些对象。

像这样的东西:

然后当我需要背景对象中的纹理时:

看起来很简单,除了上下文(我的班级背景需要它来运行,因为它通过 BitmapFactory 从它加载纹理)没有传递到onDrawFrame(GL10 gl)我的主游戏循环所在的函数和我需要的函数中!

如果我尝试在 GL10 gl 之后添加上下文作为第二个参数,我会收到一个错误 - 这似乎是不可能的。

有谁知道如何将上下文传递到 onDrawFrame,或者如何从内存中清除上下文对象然后再次恢复它们?

0 投票
1 回答
2392 浏览

qt - 如何使用 Qt 创建 openGL 4.2 上下文?

我正在寻找一种使用 Qt 创建 OpenGL 4.2 上下文的方法。

我找到了这个这个

但这些线程已经超过 2 年了。也许现在有更好的方法来做到这一点?

//编辑:哦,如果可能的话,我希望有一个便携式解决方案来做到这一点(但首先我有兴趣让它在 Windows 上运行)

0 投票
2 回答
605 浏览

opengl-es - 获取像素颜色不准确

我目前在我的应用程序中使用颜色选择。这适用于 PC,但是我无法让它在各种设备上运行。

这可能是由于上下文设置不同,具体取决于设备。例如,据我所知,PC 的颜色设置为 888,而设备可能默认设置为 565。

我想知道 OpenGL 中是否有办法获取当前的像素/颜色格式,以便我可以正确检索颜色数据?

这是我正在使用的功能,它在 PC 上运行良好:

有任何想法吗?

0 投票
4 回答
775 浏览

c++ - wglDeleteContext 访问冲突

我在使用 MFC 的 Visual C++ 中使用大型解决方案。在更改之前一切都运行良好。当我刚刚修改了一个对话框并添加了一个新对话框时。程序在以下第一行开始引发异常:

在文件 RenderDevice.cpp 中。

我正在使用 TortoiseSVN,因此我恢复了所有更改并重新编译了解决方案中的项目。但问题依然存在。

谁能告诉我可能出了什么问题?