问题标签 [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 投票
1 回答
258 浏览

c++ - Apache2 模块中的无窗口 OpenGL 上下文

我正在尝试开发一个 Apache2 模块,该模块利用 OpenGL 执行屏幕外渲染并动态生成图像,然后我可以将其发送回客户端。

Apache2 在 Ubuntu 12.04 机器上运行,我创建了一个测试模块,它渲染一个四边形并使用 OpenGL/GLX 将帧作为图像存储到磁盘。但是当模块收到客户端请求时,它会XOpenDisplay(0)因分段错误而崩溃。有什么想法可能会出错吗?

编辑: 我见过的所有例子都在谈论使用像素缓冲区(PBuffer)。据我所知,这些已被弃用,应该使用 FBO。有人可以解释如何创建上下文并使用 FBO 执行屏幕外渲染吗?

0 投票
1 回答
72 浏览

unix - 如何检查 GLXcontext 是远程还是本地

我遇到了问题,因为我在使用 glXGetCurrentContext ( https://www.opengl.org/sdk/docs/man2/xhtml/glXGetCurrentContext.xml ) 函数查询 OpenGL 上下文的应用程序上调用 cuGLGetDevices() 。上下文必须是本地的,而不是通过 ssh 远程的,我的应用程序才能正常工作。

有什么方法可以检测上下文是远程的还是本地的?

0 投票
1 回答
4468 浏览

windows - 单个 OpenGL 上下文,多个视图

我有一个 Windows 应用程序,它可以创建多个视图窗口,这些窗口可以使用 OpenGL(3.2+)渲染一些模型。每个窗口都可以渲染它自己的独立对象,或者两个(或更多)窗口可以渲染同一个对象(但例如从不同的相机视角):

例子

在阅读了关于 stackoverflow 的各种帖子后,我决定创建一个 OpenGL 上下文(HGLRC),并且对于我要渲染到的每个窗口(HDC),我使用

正如您在屏幕截图中看到的那样,这似乎工作正常(窗口代码发生在主线程上,对于渲染,我有自己的 RenderThread,所有 OpenGL 操作都限于此)。对于我渲染到 FBO 的每个窗口(如果用户激活它,它具有 MSAA 支持),只有在场景中的某些内容发生变化时才会更新,否则它将按原样将其绘制到窗口。

我现在的问题是,每次切换到另一个窗口绘图时,我必须设置哪些状态?我的方法在性能方面是否合理?

这是我现在每次为另一个 HDC 设置当前上下文后设置的内容:

这些基本上是用户设置渲染窗口时可以更改的所有设置,因此我需要确保在渲染每个窗口之前正确设置它们。

但是真的有必要做所有这些电话吗?这意味着在上面带有 4 个渲染窗口的示例中,我需要每帧调用 4 次。有没有更好的办法?使用多个 GL 上下文会更有效吗?

0 投票
1 回答
2514 浏览

c++ - 使用 openGL 在 SDL2 中全屏显示窗口

我的程序在编译着色器、加载纹理等时从加载窗口开始。然后我希望能够启动全屏应用程序并使用这些资源。我的理解是openGL上下文必须前后一致。我为此尝试了两种方法:首先,我尝试制作第二个全屏窗口,并在此窗口上使用 SDL_GL_makecurrent 命令来“传输”上下文(找不到我在哪里读到有关此方法的信息),其次尝试全屏显示加载窗口。这两种方法都导致加载屏幕被移动到屏幕的左上角。然而,opengl 命令不再在全屏下正常运行,包括清除缓冲区,这意味着该窗口包含我的桌面/后台应用程序的内容。

有没有正确的方法来做到这一点?或者这是 sdl/opengl 驱动程序中的一个奇怪错误?

全屏原始窗口的代码:

创建一个新窗口并使用以前的上下文:

PS:运行ubuntu

更新:在第二个代码中,在新窗口中重用上下文,它在失败时返回一个错误,说“无效窗口”,这是大多数情况下但并非总是如此。当它失败时,屏幕最终完全损坏(黑色带有奇怪的白色方块和图案),结束程序不会清除屏幕(虽然截图非常好?),但可以通过ctrl+f1到终端然后ctrl+恢复f7背部

0 投票
1 回答
932 浏览

qt - 释放由 QGLWidget 创建的 OpenGL 上下文

如果我创建了一个 QGLWidget,然后我使用 glGenTextures、glTex2DImage 等分配我自己的纹理,那么当我删除小部件时,所有纹理数据都会被清理吗?(此外,我还将共享也会被删除的小部件)。

我查看了析构函数的源代码,看起来它正在删除上下文,我认为这也会清理我使用该上下文生成的任何纹理

https://qt.gitorious.org/qt/qt/source/ca5b49a2ec0ee9d7030b8d03b561717addd3441f:src/opengl/qgl.cpp#L3409

只是想确保我错过了什么

0 投票
1 回答
1275 浏览

c++ - 如何在 GLFW 3 中创建 OpenGL 1.2 上下文

我想创建 OpenGL 1.2 上下文,但我收到此错误:“无法打开 GLFW 窗口”。当我创建 3.3 或 4.3 上下文时没有问题。如何创建 1.2 上下文?

0 投票
1 回答
417 浏览

linux - Linux下FreeGLUT中的上下文共享与xorg

我正在尝试通过 FreeGLUT 库将 OpenGL 与共享上下文一起使用(因为在窗口之间共享纹理)......它工作正常,我可以共享纹理,但我在程序结束时或在通过鼠标关闭窗口期间失败......

我已经验证了模拟问题的代码:(http://pastie.org/9437038

输出:

使用 TIME_LIMIT 输出:

不调用 glutSetOption(GLUT_RENDERING_CONTEXT, GLUT_USE_CURRENT_CONTEXT);,它运行良好。

有人知道我做错了什么吗?

0 投票
1 回答
537 浏览

winapi - 是否有完整的 win32 包装库?

我搜索了一个将我与 api 完全隔离的 win32 包装器库。我只想为 windows 创建一个 opengl 3.3 窗口。我知道有像 GLFW、SFML 和 SDL 这样的库,但是这些库又大又重。认识一个人吗?

0 投票
1 回答
870 浏览

android - Android Cocos2d-x 中 GLSurfaceView 上方显示广告

在 Cocos2d-x 3.0 Android 游戏中显示 + 关闭来自 Mopub 的广告后,logcat 显示以下错误:

如何在他们自己的视图中显示广告,以免丢失上下文?

更多信息:

  • 这些错误会发生一些绘图错误。大多只是缺少标签。
  • 该应用程序不会崩溃
  • 添加this.setPreserveEGLContextOnPause(true)到 Cocos2dxGLSurfaceViewinitView似乎没有帮助
  • 我尝试在显示广告之前暂停+停止动画,然后在广告关闭后开始动画并恢复。这似乎没有帮助。
  • moPubInterstitial.show()从 UI 线程调用
  • moPubInterstitial.load()从 UI 线程调用
  • OpenGL error 0x0502在某个时候收到(可能在尝试上述修复之前)
0 投票
1 回答
3801 浏览

python-2.7 - Ubuntu 上的 PyOpenGL for Python 2.7

我正在尝试安装 PyOpenGL,到目前为止已经尝试了以下方法:

  1. $ pip install PyOpenGL PyOpenGL_accelerate
  2. $ sudo python2.7 -m pip install PyOpenGL PyOpenGL_accelerate
  3. 上述的一些变化......
  4. 从源安装。

不幸的是,我仍然无法运行以下导入:

我收到错误消息:

无法检测到未定义的名称

我错过了什么吗?我需要安装更多的软件包吗?

我需要单独获取 OpenGLContext 吗?如果是这样,我该如何安装,因为

也不行。

任何帮助将非常感激!