问题标签 [glx]

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 投票
2 回答
1562 浏览

x11 - 在窗口的特定区域创建 GLX 上下文

我想在窗口内创建一个带有 GLX 的 OpenGL 上下文。但是,我不希望它跨越整个窗口区域。相反,它应该只覆盖一个子区域。

例如,GLUT 为这种行为提供了一个函数。像 GTK+ 或 QT 这样的主要工具包也提供了 GL 小部件,它们只是 X 窗口的子区域。但是我需要在底层工作。

glXMakeCurrent() 接受一个 X Drawable 标识符。是否可以将 Drawable 定义为窗口的子区域?还是有其他方法可以将上下文绑定到窗口区域?

GLX 参考(蓝皮书)

编辑:添加了令人敬畏的赏金!

0 投票
2 回答
2625 浏览

opengl - OpenGL 色彩空间转换

有谁知道如何使用 YUV 颜色空间创建纹理,以便我们可以在无需使用片段着色器的情况下进行基于硬件的 YUV 到 RGB 颜色空间转换?我使用的是 NVidia 9400,但没有看到明显的 GL 扩展似乎可以解决问题。我找到了如何使用片段着色器的示例,但我目前正在处理的项目仅支持 OpenGL 1.1,我没有时间将其转换为 2.0 并执行所有必要的回归测试。这也是针对 Linux 的。在其他平台上,我一直在使用 MESA 扩展,但它在 Nvidia 卡上不起作用。

0 投票
1 回答
1010 浏览

c - 为什么我的简单 GLX 应用程序会泄漏内存?

下面的代码显示了 valgrind 中的一个小的 48 字节泄漏。

这段代码所做的只是初始化一个用于 GLX 渲染的窗口,然后将其拆除。有趣的是,只要我调用 glXMakeCurrent(),我就会泄漏 48 个字节...... valgrind 输出如下所示:

如果您在睡眠前注释掉对 glXMakeCurrent() 的调用,泄漏就会消失……当然,我需要进行调用才能渲染任何东西!

真正的问题是我的应用程序创建了许多子窗口,每个子窗口都关联了 GLX 上下文......并且每个窗口都泄漏了相同的 48 个字节......我不知道还能尝试什么(代码正在清理 GLX 上下文)。 .. 有任何想法吗?

0 投票
1 回答
1240 浏览

opengl - 将 OpenGL FBO 纹理渲染到 GLXPixmap

我正在编写一些代码,旨在: 1. 使用 FBO 渲染成 OpenGL 纹理。2. 从 FBO 纹理绘制到附加到 X Pixmap 的 GLXPixmap。3. 将 X Pixmap 绘制到屏幕上的一个窗口。

第 3 步效果很好,如果我用普通的 OpenGL 绘图替换 FBO 纹理,第 2 步效果很好。

但是,如果我执行上述操作,至少使用我拥有的代码,它就行不通了。如果我给 GLXPixmap 一个彩色背景,然后执行 1-3,屏幕上的窗口会变成白色,但我绘制的其他任何内容都不会出现。

所以我希望有人可以提供提示,或者给我一些简单的示例代码。我为此获得的代码相当复杂,但如果需要,我可以尝试编写一个简单的示例版本以在此处发布以供审查。

0 投票
1 回答
681 浏览

opengl - 使用 gl/glx 在多个窗口中绘图

我正在查看 NeHe OpenGL 教程 (nehe.gamedev.net),几乎每个示例也适用于 Linux/glx。

但是如何打开几个窗口并绘制到所有窗口中呢?谢谢!

0 投票
1 回答
1277 浏览

opengl - 如何使用 xlib 和 glx 创建具有透明背景的支持 OpenGL 的窗口

我想创建一个具有透明背景的窗口,然后使用 OpenGL 在其上渲染一些东西。我不想使用捕获窗口后面的任何内容然后绘制为背景的技巧 - 我想要真正的透明度(我正在运行合成管理器)。我没有使用任何 GUI 库(GTK、QT、...),只使用原始 xlib 和 glx。

有谁知道该怎么做?

0 投票
1 回答
642 浏览

linux - 多线程游戏程序突然锁定在 glXSwapBuffers

我正在完善自己编写的 Linux 游戏程序,玩了大约 10 分钟后,它突然减速到每 30 秒左右 1 帧左右,整个系统也变慢了。即使在中断该过程之后,系统仍会持续缓慢大约一分钟。

在多个测试中,当减速发生时,我中断了 GDB 中的进程,并且它始终处于调用glXSwapBuffers.

无论游戏状态或输入如何,它都会发生。唯一阻止它的是不在单独的线程中开始播放重复的音乐曲目:线程仍在运行,但它不会不断地写入声卡缓冲区。我已确保正确锁定了两个共享列表。

有没有人遇到过glXSwapBuffers其他看似不相关的线程的问题?

操作系统是 Ubuntu 9,使用 OpenGL 的 Mesa 7.6.0 实现和 ALSA libasound2 1.0.20-3。今天早上我更新了我的 GeForce 6800 显卡的 NVIDIA 驱动程序,但无济于事。

(相关?)代码如下。

显示功能:

回放线程函数:

0 投票
1 回答
957 浏览

c++ - 使用 GLX(opengl 和 Xlib)设置图像(jpeg | png)背景

我创建了一个具有 opengl 功能的 x11 窗口,我需要在其背景上加载一个图像(jpeg | png),其中窗口的大小大于图像,没关系。我上网获得了像使用 DevIL 或免费图像这样的资源。我不知道该使用哪一个。我使用示例代码链接中给出的示例代码设置了 opengl 窗口, 我想在 void renderGL() 中编写代码,以便将图像作为背景。如果可能的话,你能告诉我使用哪个图像库并提供代码吗?

以及在opengl中绘制颜色像素要做什么。我需要一个在窗口中绘制像素的函数,为此我必须单独提供 x,y 像素位置和 rgb 颜色(无符号整数).....

0 投票
2 回答
68314 浏览

opengl - 不支持 OpenGL GLX 扩展

我在 Ubuntu 10.04 中安装了 OpenGL 和 freeglut,它在 10.04 和 10.10 中运行良好。但是在我升级到 11.04 之后,我使用 OpenGL 开发的应用程序无法正常运行。它们编译时没有错误,但是当我尝试执行它们时,出现错误:

对于过剩:

仅针对 OpenGL:

我尝试了几件事:

编辑:这不太可能是因为我没有图形驱动程序,因为我只有板载图形。

这是我来自 sysinfo 的系统图形信息

编辑2:似乎我为此安装了驱动程序。

看“配置:驱动=”

0 投票
2 回答
1264 浏览

c# - 在 Linux 上使用 Mono-C# 时 glXChooseVisual 失败

当我调用“glXChooseVisual”(在 C# 中也称为 GLX.ChooseVisual)时,它返回一个空 IntPtr。现在让我感到困惑的是,当我构建 NeHe 课程 02 时,基本上使用它工作的相同代码(它是用 C 编写的唯一区别)。

此外,当我从 OpenTK 进入代码并找到它何时调用“glXChooseVisual”时,它会返回一个有效的 Visual ptr,但我目前还找不到任何我丢失的东西。

另外,让我感到困扰的是,我在一年前就曾做过这项工作。我这样做的原因是为了一个跨平台的 API,它不仅限于 OpenGL,所以任何帮助都会很棒。

我已经在 [Ubuntu 11.10 Nvidia 5700] 和 [Fedora 16 Nvidia 6100] 上尝试了所有这些,但它们都失败了。您可以在 Mono-C# 控制台应用程序中复制并粘贴此代码以对其进行测试。