问题标签 [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.
opengl - glXCreateContextAttribsARB:fb 配置兼容性
OpenGL 文档指出
如果 glXCreateContextAttribsARB 成功,它将上下文初始化为 OpenGL 规范定义的初始状态,并返回一个句柄。此句柄可用于渲染到与 兼容的任何 GLX 表面(窗口、像素图或 pbuffer)
<config>
,但受 OpenGL API 版本的上下文施加的约束。
如何确定不同帧缓冲区配置的兼容性?
opengl - 在 javax.media.opengl.glu.GLU.getCurrentGL 的这个线程上没有当前的 OpenGL 上下文
当我几个月前开始为“GL2 gl”学习Opengl(JOGL)时遇到了类似的问题......然后我发现了如何解决(所有与“gl”有关的东西都应该从显示器中调用/初始化方法)。
一段时间后,我还需要使用“GLU glu”(用于 gluOrtho2D)。于是这个问题又出现了。但是可以说这不是什么大问题,因为尽管出现了这个错误,程序运行良好。
不幸的是,现在这个问题似乎有一些烦人的影响..所以我真的很想解决它。
这里有一些代码:
有趣的是:
我在显示中有其他 glu 调用,例如“glu.gluLookAt(0, 0, 1, 0, 0, 0, 0, -1, 0);" 我从来没有遇到过问题
仅当我从另一个线程(“glcanvas.display”)调用刷新时才会发生
我已经做了很多尝试,比如每次在显示中初始化它,或者强制上下文:
/li>
但到目前为止没有任何效果:
线程“AWT-EventQueue-0”javax.media.opengl.GLException 中的异常:javax.media.opengl.glu.GLU.getCurrentGL(GLU.java:175) 处 javax.media.opengl.glu.GLU.getCurrentGL(GLU.java:175) 处的此线程上没有 OpenGL 上下文。 .glu.GLU.gluOrtho2D(GLU.java:1344)
c++ - 在运行时从 OpenGL 上下文切换到 D3D/DX 上下文(或另一个上下文)
编辑: 是否有任何预先构建的库可以为我执行此操作,使用 SDL 或在 Window、Linux、Mac、iOS 和 Android 上运行?
目前,我不确定我改变上下文的方式是否是一个很好的设计,我还没有完全完成它。我真的很担心浪费我的时间。我正在使用 SDL 进行窗口管理和事件处理。
我目前在类中包装 SDL(特别是 SDL 2)来管理它。这些是我的课程以及他们的工作:
- Window - 描述一个窗口
- WindowContext - 描述 Window 的上下文(抽象类)
- WindowDelegate - 用于确定上下文何时更改、窗口何时打开/关闭等。
- WindowEventListener - 监听来自 Window 的事件(不确定我是否应该坚持轮询而不是回调函数)
无论如何,这是它如何工作的示例:
注意:ipoint2 是一个二维点
我可以通过调用中途更改上下文:
有没有更简单的方法,或者我应该说更有效的方法来做到这一点?
opengl-es - 使用 LibGDX 的 OpenGL ES 上下文丢失
我正在使用 LibGDX 开发一个应用程序,并且我正在解决用户离开应用程序并返回应用程序时因上下文丢失而导致的一些各种问题。一般来说,这不是什么大问题,但在整个应用程序的使用过程中,我偶尔会在应用程序本身中构建自定义纹理,以便在几个不同的区域使用。
当用户返回应用程序时,绝对必须保留这些纹理,但我不确定这样做的最佳方法是什么。那么,简单地说,保存不能简单地在需要时重新加载的纹理的正确方法是什么?
c++ - 渲染时加载纹理 (OpenGL)
我想在屏幕显示动画加载屏幕(使用 OpenGL 渲染)时加载一些网格,包括 OpenGL 纹理。
所以我在第二个线程中加载东西,这当然不起作用,因为我无法从两个线程访问相同的 GL 上下文。
我使用的是 SDL 1.2,整个事情必须独立于平台,所以我不能使用 wgl-stuff。
我有哪些可能性?
c++ - freeglut window init + glew 3.0 context creation does not work
I am trying to create a window with freeglut and then use glew to create a 3.2 context in order to use modern OpenGL functions (using c++ and a Windows pc). My Problem is that the context creation (which i tried to do both before and after the freeglut init) does not seem to work and I get an Access Violation every time i try to use a function like glCreateShader.
The code I use Looks like this (it is located right at the start of the int main(int argc, char **argv) method):
Also, the glew init code is copied 1:1 from their Website. I hope that my mistake is not too obvious and that someone finds the time to help me.
qt - QT 共享 opengl 上下文
我希望多个 QGLWidget 共享一个上下文,在创建 QGLWidget、使用 bindTexture() 绑定纹理并使用与第一个相同格式并使用其中一个构造函数创建第二个 QGLWidget 后,我无法让它工作它将第一个小部件作为指向共享小部件的指针。它确实创建了一个新的小部件,但纹理不共享,当我使用 isShared() 方法查询时,我总是得到一个错误的结果。
有什么简单的例子可以告诉我我是否做对了!
python - 使用 PyOpenGL 渲染场景图
我正在使用 OpenGLContext 将 VRML 文件加载到 SceneGraph 对象中。不幸的是,在我的一生中,我找不到任何展示如何渲染 SceneGraph 的示例。
我已经创建了一个上下文testcontext.getInteractive()
,但是现在呢?如何渲染 SceneGraph?
windows - wglCreateContext 抛出 INVALID_OPERATION 异常
假设我从codeguru 下载了 COpenGLControl 类,假设创建 OpenGL 窗口时运行的第一个事件处理程序是 OnCreate,我试图赶上这个类的错误。这是用于在我的对话框的 .h 和 .cpp 文件中创建窗口的代码:
MyOpenGLTestDlg.h
MyOpenGLTestDlg.cpp
直到知道我认为该函数OnCreate
已被调用。事实上,我认为这行代码COpenGLControl m_oglWindow;
会导致调用这个函数!但我不确定,所以如果你能指导我一点,那将不胜感激?
无论如何,我并没有对课程做很多改变:
OpenGLControl.h
OpenGL控制.cpp
如您所见,我已经编写了代码GLenum error13 = glGetError();
以hrc = wglCreateContext(hdc);
捕获它抛出的任何可能的错误,是的,error13 的值是1282
这意味着INVALID_OPERATION
我认为handle for OpenGL rendering context
没有正确创建!
此外,如果您检查 and 的值hdc
,hrc
您会遇到以下情况:
hdc -> 未使用 = ??? (错误:无法评估表达式)
hrc -> 未使用 = 0
你能帮我找出为什么会这样吗?有什么问题?
java - 在 onPause() 之后调用 openGL 函数
我有一个使用 OpenGL ES 1.1 的 Android java 应用程序,我遇到了以下问题: 当应用程序最小化时,onPause()
在活动上被调用。在这一点上,我想保留其中一个 GL 纹理(我渲染的东西)并将其保存在内存中,同时销毁 openGL 上下文。然后当应用程序恢复时,我可以恢复我的纹理。但是,检索 openGL 纹理需要只能由渲染线程完成的 GL 命令,在停止之前可能有也可能没有更多的渲染迭代。
有没有已知的方法来处理这个?