我如何知道我正在使用哪个版本的 OpenGL?

2024-04-07

我开始使用 GLFW 和 OpenGL 用 C(目前)编写程序。我的问题是,我如何知道我的程序将使用哪个版本的 OpenGL?我的笔记本电脑显示我的显卡支持 OpenGL 3.3。输入“glxinfo | grep -i opengl”返回:

OpenGL vendor string: NVIDIA Corporation
OpenGL renderer string: GeForce 9600M GT/PCI/SSE2
OpenGL version string: 3.3.0 NVIDIA 285.05.09
OpenGL shading language version string: 3.30 NVIDIA via Cg compiler
OpenGL extensions:

那么OpenGL 3.3会自动被使用吗?


只需致电glGetString(GL_VERSION)(当然,一旦上下文初始化)并输出结果(我想这实际上与 glxinfo 所做的相同):

printf("%s\n", glGetString(GL_VERSION));

您的程序应该自动使用您的硬件和驱动程序支持的最高版本,在您的情况下似乎是 3.3。但要为 OpenGL 3+ 创建核心配置文件上下文(已完全删除已弃用的功能),您必须采取特殊措施。但自版本 2.7 GLFW 开始,可以使用glfwOpenWindowHint功能。但是,如果您不想明确禁止已弃用的功能,则可以使用 GLFW 默认上下文创建函数提供的上下文,这将支持您的硬件和驱动程序的最高版本。

但还要记住,要使用高于版本 1.1 的 OpenGL 功能,您需要检索相应的函数指针或使用为您处理此问题的库,例如GLEW http://glew.sourceforge.net/.

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

我如何知道我正在使用哪个版本的 OpenGL? 的相关文章

  • glDeleteShader - 顺序无关吗?

    在 OpenGL 中 顺序为glAttachShader无关紧要 这是否相同glDeleteShader 如果正在进行一些动态内存分配 我会说是的 但也许在 opengl 上下文中处理方式不同 简单的答案是 没关系 您可以在将它们附加到程序
  • 什么时候应该调用 glGetError?

    glLoadIdentity http www opengl org sdk docs man xhtml glLoadIdentity xml says GL INVALID OPERATION如果生成glLoadIdentity之间执行
  • 在 OpenGL 着色器中检测 NaN 的最佳方法

    今天早上我遇到了一个似乎神秘的错误 我很幸运能够很快找到解决方案 我除以计数器以生成片段着色器内部的平均值 当然 当计数器为零时 所得的颜色值变为 NaN 在混合过程中 NVidia 优雅地将 NaN 视为 0 值 但 Intel 没有这样
  • 曲面细分着色器 - OpenGL

    layout vertices 3 out void main void if gl InvocationID 0 gl TessLevelInner 0 5 0 gl TessLevelOuter 0 5 0 gl TessLevelOu
  • glDrawElements 在 PyOpenGL 中绘制立方体

    我最近开始通过 Python 学习 OpenGL 这要归功于几个教程 尤其是 Nicolas P Rougier 的教程 http www labri fr perso nrougier teaching opengl http www l
  • glGenerateMipmap 是否在 sRGB 纹理的线性空间中执行平均?

    OpenGL 3 3 规范似乎没有要求 mipmap 生成在线性空间中完成 我能找到的只有以下内容 派生的 mipmap 数组的内部格式都与 levelbase 数组和派生数组的维度如下 第 3 8 14 节中描述的要求 的内容 派生数组是
  • OpenGL 将着色器附加到程序

    有没有办法访问附加到程序的着色器 也就是说 给定一个程序 我可以做类似的事情 vertexShader getVertexShaderFromProgram program 我想在验证我的程序的函数中记录着色器编译状态 但我只保留对程序的引
  • 静态链接库时出现 glew 链接器错误

    我正在尝试在 Visual Studio 2012 中构建一个 opengl 项目 我想静态包含 glew 库 因此我从源代码构建它并将生成的 glew32sd lib 复制到我的 lib 目录 我将此 lib 路径提供给 Visual S
  • 对 VBO 中的特定三角形使用不同的纹理

    我有 9 个由三角形组成的四边形 如下所示 我在用着VBO存储有关它们的数据 它们的位置和纹理坐标 我的问题是 是否可以仅使用一个来使四边形 5 具有与其余四边形不同的纹理VBO and shader 绿色代表纹理 1 黄色代表纹理 2 到
  • 退出 glutFullScreen()

    我不明白为什么当我按 f 时它进入全屏但不退出全屏 在这个方法的开头我已经设置了bool fullscreen false 这是我的切换代码 case f toggle screenmode if fullscreen glutFullSc
  • 使用 Opengl 绘制立方体 3D

    我想使用 OpenGL 绘制 3D 立方体这是我的代码如何纠正错误 float ver 8 3 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0
  • 如何用opengl制作2D地形?

    我想制作一个简单的二维地形 只有一些颠簸和高度变化 我想过只使用随机数来描述某个顶点的高度 但我不知道如何从中制作一个网格 我正在寻找一种方法来查找地形的顶点和索引缓冲区 我该怎么做呢 您可以仅将 GL POLYGON 与所有顶点的列表一起
  • 三角形未在 OSX 上的 OpenGL 2.1 中绘制

    我正在学习有关使用 OpenGL 在 Java 中创建游戏引擎的教程 我正在尝试在屏幕上渲染一个三角形 一切运行良好 我可以更改背景颜色 但三角形不会显示 我还尝试运行作为教程系列的一部分提供的代码 但它仍然不起作用 教程链接 http b
  • QOpenGLFunctions 缺少重要的 OpenGL 函数

    QOpenGLFunctions 似乎缺少重要的函数 例如 glInvalidateFramebuffer 和 glMapBuffer 据我了解 QOpenGLFunctions 加载桌面 OpenGL 函数和 ES 函数的交集 如果是这样
  • gluPerspective 与 gluOrtho2D

    我查看了 MSDN 上关于这两个函数的文档 但是 我不太明白这两个功能之间的区别 一个是用于设置 3D 相机视图 另一个是用于设置 2D 相机视图 如果能得到解答就太好了 预先感谢您的评论 正交投影基本上是没有透视的 3D 投影 本质上 这
  • glEnableVertexAttribArray 中“index”参数的含义以及(可能)OS X OpenGL 实现中的错误

    1 我是否正确理解 要使用顶点数组或VBO进行绘制 我需要所有属性在着色器程序链接之前调用glBindAttribLocation 或者在着色器程序成功链接后调用glGetAttribLocation 然后使用glVertexAttribP
  • OpenGL 着色器不与着色器程序链接

    我正在尝试使用 GLFW GLEW 添加着色器 我收到一个错误 指出着色器已加载 但它们没有有效的对象代码 这是我用于加载着色器的代码 class SHADER public void LoadShaders const char vert
  • OpenGL 中连续暂停

    void keyPress unsigned char key int x int y int i switch key case f i 3 while i x pos 3 sleep 100 glutPostRedisplay 上面是在
  • 阻止 OpenGL.framework 在 Cocoa 应用程序中加载

    我的应用程序链接到这些框架 Cocoa Framework AppKit Framework CoreData Framework Foundation Framework 请注意 OpenGL Framework 是NOT已链接 但是 设
  • 将像素传递给 glTexImage2D() 后会发生什么?

    例如 如果我创建一个像素数组 如下所示 int getPixels int pixels new int 10 pixels 0 1 pixels 1 0 pixels 1 1 etc glTexImage2D getPixels glTe

随机推荐

  • 符号化 Swift Package Manager 构建

    Swift Package Manager可以是构建快速项目的便捷方法 并且 如果您 删除它添加到二进制文件中的绝对工具链 rpath https github com apple swift package manager blob 2d
  • cygwin_exception::open_stackdumpfile:将堆栈跟踪转储到 *.exe.stackdump

    我收到 cygwin exception open stackdumpfile 将堆栈跟踪转储到 TestProject exe stackdump 错误 我的项目只不过是一个 C HalloWorld 项目 其中包含一个附加类 我在其中设
  • Knockback.js 生产准备好了吗? [关闭]

    就目前情况而言 这个问题不太适合我们的问答形式 我们希望答案得到事实 参考资料或专业知识的支持 但这个问题可能会引发辩论 争论 民意调查或扩展讨论 如果您觉得这个问题可以改进并可能重新开放 访问帮助中心 help reopen questi
  • UIButton 调整大小以适合其 titleLabel

    我有一个UIButton我将其添加到故事板中的视图控制器的视图中 我添加居中约束来定位它 并添加前导空间约束来限制其宽度 在代码中我添加 self button titleLabel numberOfLines 0 self button
  • 玩!框架+DynamoDB

    作为 Play 框架的新手 我想知道它是否比我想象的更容易 但是是否可以将 DynamoDB 与 Play 框架一起使用 由于 DynamoDB 是一个 NoSQL 数据库 我预计您需要使用特定的模块 而由于 Dynamo 最近才发布 因此
  • jQuery TABS 无法在新的 ASP .NET MVC4 项目下工作

    我所做的是 我已经创建了新的 ASP NET MVC4 项目 我用过http jqueryui com tabs http jqueryui com tabs 示例代码 所以我得到了这个 布局 cshtml Style
  • 在运行时获取本地对象/变量的列表

    我正在尝试创建一个简单的记录器来检查客户端发生的情况 如何获取本地列表 调试时在 Visual Studio 上显示 有点像当断点被击中时 对象 变量的当前现有实例显示在 本地 选项卡上 或者我应该在写入日志时获取变量的当前值吗 有趣的事情
  • 在 Windows 虚拟机中运行 Docker

    Using 适用于 Windows 10 的 Docker 桌面 MobaXterm 到 RDP 到 Windows 10 VM 硒 3 141 59 我目前正在尝试在 docker 容器中运行 selenium Grid 但遇到了一些问题
  • 如何在 jQuery 中设置文本框值?

    如何使用 jQuery 将某个值正确加载到文本框中 尝试了下面的 但我得到了 object Object 作为输出 请告诉我这一点 我是 jQuery 的新手 proc function x y var str1 pid value var
  • 使用整数作为模板参数时出现编译错误

    下面这段代码有什么问题 template
  • lxml 更改 Unicode 字符

    我正在使用 lxml 读取 xml 文件并更改一些详细信息 但是 运行时我发现即使我只是使用lxml读取文件然后再次写出来 如下所示 fil iTunes Music Library XML tre etree parse fil tre
  • Bootstrap 图标未显示在已发布的 ASP.NET MVC 应用程序中

    注意 请前往编辑 2 部分查看摘要 我有一个 ASP NET MVC 4 应用程序 我将 twitter Bootstrap 集成到其中 Bootstrap 工作正常 但当我发布应用程序时 图标无法正确显示 我尝试重新发布该应用程序 但没有
  • 在 XAML 中设置命令目标

    我很难理解 RoutedCommand 的 CommandTarget 属性 基本上 我有一些在用户控件 而不是窗口 中实现的静态命令 我在用户控件中创建命令绑定 如果我在用户控件中声明按钮 那么我就可以使用我的路由事件 但是 当按钮位于用
  • C++0x 右值引用和临时值

    我在 comp std c 上问了这个问题的变体 但没有得到答案 为什么调用f arg 在此代码中调用 const ref 重载f void f const std string less efficient void f std stri
  • 我不应该调用 HostingEnvironment.UnregisterObject 吗?

    在尝试在我的 ASP Net MVC 3 应用程序中通过 smtp 实现异步电子邮件时 我遇到了问题SO SmtpClient SendAsync 阻止我的 ASP NET MVC 请求 https stackoverflow com qu
  • 使用 dplyr 连接组内的所有行

    假设我有一个像这样的数据框 hand id card id card name card class A 1 p alpha A 2 q beta A 3 r theta B 2 q beta B 3 r theta B 4 s gamma
  • 在msbuild中过滤项目的元数据

    我想使用修改后的元数据创建一个新的项目集合 例如 更改 ClCompile AdditionalIncludeDirectories 的分隔符 为此 我首先从AdditionalIncludeDirectories 元数据创建一个项目集合
  • 如何更改 Scalatra 应用程序的“webapp”目录位置?

    默认情况下 Scalatra 期望 webapp 目录位于src main webapp 如何将其更改为 例如content doc root sbt 允许使用如下内容自定义其默认目录 scalaSource lt lt baseDirec
  • 获取 iPhone 上当前的系统音量级别

    有什么方法可以获取 iPhone 上当前的系统音量级别吗 我在想也许有一种方法可以制作MPVolumeView并从中获取价值 musicPlayer MPMusicPlayerController iPodMusicPlayer curre
  • 我如何知道我正在使用哪个版本的 OpenGL?

    我开始使用 GLFW 和 OpenGL 用 C 目前 编写程序 我的问题是 我如何知道我的程序将使用哪个版本的 OpenGL 我的笔记本电脑显示我的显卡支持 OpenGL 3 3 输入 glxinfo grep i opengl 返回 Op