问题标签 [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 - 如何创建自己的 openGL 上下文并将其绑定到 GLCanvas?
所以当我掌握了java
方法我继续创建自己的渲染方法,但我必须了解缓冲区策略以及如何“获取”图形
所以现在我正在学习openGL,我必须掌握这个方法:
现在我想创建自己的渲染方法,到目前为止,我经常遇到一个异常:
线程“主”javax.media.opengl.GLException 中的异常:此线程上没有当前的 OpenGL 上下文
编辑:问题:如果我想在外部进行 glDraw 调用
方法,如何确保我的 GLCanvas 的 glContext 是“当前的”
最好作为一个代码示例,因为我已经查看了 api 并广泛使用了谷歌,你们已经很友好地放在这里我以前已经找到的许多链接,我仍然在画一个空白......从字面上看!最接近我的是当它没有抛出“无当前上下文”异常但屏幕只是永久变黑!
opengl - OpenGL 和多个 GPU - 一般可能性
我想知道,是否可以同时在多个 GPU 上运行多窗口 OpenGL 应用程序?更具体地说,假设我创建了一个应用程序,其中有两个窗口,每个窗口都在彼此之间共享它的 GL 上下文。现在,如果我将其中一个窗口从显示器 1(在 GPU 1 上运行)移动到显示器 2(在 GPU 2 上运行),这真的可行吗?仅共享上下文就可以解决问题吗?
我的第一个猜测是否定的。如果这真的不是那么简单,有没有办法做到这一点?我也可以想象这取决于两个 GPU 是否由同一个驱动程序控制(或者更糟糕的是,让机器有一个 ATI 和一个 nVidia 卡,都支持不同的 GL 版本)。
我将不胜感激有关此主题的任何见解,纯粹是信息性的,因为在快速谷歌搜索后我找不到任何东西。有谁知道可能性?
编辑:顺便说一句,不幸的是,我目前没有一台具有多个 GPU 的机器,所以我会稍微测试一下。
opengl - 控制台中的openGL上下文
我想使用 openGL 的某些功能,但与渲染视觉内容无关。有没有办法在没有任何依赖项的情况下创建它(不是 Windows,也不是某些包 [SDL,SFML,GLUT])?只有允许的库是那些没有外部库的库,就像我使用的 GLEW 一样。
java - 将 GLSurfaceView 上下文传递给线程
我希望我的 GL 渲染器设置为“DIRTY”并使用线程来控制 FPS,但由于某种原因,requestRender
调用似乎被一起跳过了。我有一种感觉,这可能与线程没有获得正确的上下文有关。有人知道将GLSurfaceView
上下文传递给其他线程的好习惯吗?
这是我的线程:
这是我的表面视图的构造函数...
cocoa - CAOpenGLLayer 显示远程上下文
CAOpenGLLayer
class
我有一个覆盖 drawInCGLContext
在那里的子类 ,我用OpenGL
. 被CAOpenGLLayer
添加到 aCALayer
并显示。
所以当我想画一些东西时,我需要drawInCGLContext
用这个架构来做。
我想要的是一种其他class
人用来绘制、动画或渲染的上下文,但每次drawInCGLContext
发生时都会显示。
所以基本上我的子类唯一应该做的就是显示一个遥控器(OpenGL)context
,实现这一点的最佳方法是什么?还是我应该考虑另一种方法?
*不使用 aCALayer
不是一种选择。
c++ - 没有 VAO 的每个着色器属性的 VBO 或不同的方法?
我在我的应用程序中使用了各种“嵌套”上下文(用于着色器和几何共享),所以我不能使用 VAO,因为它们不能跨上下文共享。
我的网格数据作为唯一顶点的“池”存储在一个 VBO 中,在另一个 VBO 中存储构成面的索引。我目前正在我的 CAD 应用程序中成功地使用它进行线框渲染,但我想添加一个平面阴影模式 - 为此我需要面部法线。
如果我需要顶点法线,我只需将数据附加到顶点位置数据,但我不能在这里这样做,因为顶点将具有不同的面法线,具体取决于它属于哪个面正在被渲染。理想情况下,我想创建另一个 VBO 对来保存我的面部法线和索引,但是如果没有 VAO,我无法将两个 VBO 绑定到同一个目标 - 即使它们用于不同的属性。
我很欣赏正常的路线是使用 VAO,它可以让您将多个 VBO 分配给同一个目标,但我不能使用它们,因为我的几何上下文是共享的,而 VAO 不是。这个问题有其他解决方案吗?
java - 有没有办法将上下文传递给 onDrawFrame(GL10 gl)?
我正在用 Java 在 Android 上的 Open GLES 中设计一个游戏。
显然我使用了很多纹理,很快我就会耗尽内存。
我对 Android 和 Java 很陌生,但我认为解决这个问题的最简单方法是用位图销毁对象,我目前不需要,让垃圾收集器回收它们占用的内存,然后在我再次需要相应纹理的后期重新创建这些对象。
像这样的东西:
然后当我需要背景对象中的纹理时:
看起来很简单,除了上下文(我的班级背景需要它来运行,因为它通过 BitmapFactory 从它加载纹理)没有传递到onDrawFrame(GL10 gl)
我的主游戏循环所在的函数和我需要的函数中!
如果我尝试在 GL10 gl 之后添加上下文作为第二个参数,我会收到一个错误 - 这似乎是不可能的。
有谁知道如何将上下文传递到 onDrawFrame,或者如何从内存中清除上下文对象然后再次恢复它们?
opengl-es - 获取像素颜色不准确
我目前在我的应用程序中使用颜色选择。这适用于 PC,但是我无法让它在各种设备上运行。
这可能是由于上下文设置不同,具体取决于设备。例如,据我所知,PC 的颜色设置为 888,而设备可能默认设置为 565。
我想知道 OpenGL 中是否有办法获取当前的像素/颜色格式,以便我可以正确检索颜色数据?
这是我正在使用的功能,它在 PC 上运行良好:
有任何想法吗?
c++ - wglDeleteContext 访问冲突
我在使用 MFC 的 Visual C++ 中使用大型解决方案。在更改之前一切都运行良好。当我刚刚修改了一个对话框并添加了一个新对话框时。程序在以下第一行开始引发异常:
在文件 RenderDevice.cpp 中。
我正在使用 TortoiseSVN,因此我恢复了所有更改并重新编译了解决方案中的项目。但问题依然存在。
谁能告诉我可能出了什么问题?