[翻译]opengl扩展教程2
[翻译]opengl扩展教程2
原文地址https://www.opengl.org/sdk/docs/tutorials/ClockworkCoders/extensions_part2.php
OpenGL着色器语言扩展#
实际上现在我们知道足够多的扩展,对于我们GLSL程序使用。
检测存在的GLSL版本#
若要检查OpenGL着色语言
当前是否支持,扩展"GL_ARB_shading_language_100"
必须可用。如果存在此扩展,则实际版本的OpenGL着色语言
可以用glGetString(GL_SHADING_LANGUAGE_VERSION_ARB)
进行查询。返回字符串的格式是:
"major.minor.release vendor_info_string"
。(其中"release"
和"vendor_info_string"
是可选)。版本号可以是1
位或多位数。
不幸的是,这是不可能用 OpenGL 着色语言的初始版本。如果查询返回一个"GL_INVALID_ENUM"
的错误,那么你可以假设它是版本1.051
(major=1, minor=0, revision=51)(主版本号=1, 次版本号=0, 修订版本号=51)。
if (glewIsSupported("GL_ARB_shading_language_100")) { int major, minor, revision; const GLubyte* sVersion = glGetString(GL_SHADING_LANGUAGE_VERSION_ARB); if (glGetError() == GL_INVALID_ENUM) { major = 1; minor = 0; revision=51; } else { // parse string sVersion to get major, minor, revision } }
如果"GL_ARB_shading_language_100"
是当前支持的,那么着色器语言相关其他的扩展也一定存在:"GL_ARB_shader_objects"
, "GL_ARB_fragment_shader"
, 和"GL_ARB_vertex_shader"
。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· winform 绘制太阳,地球,月球 运作规律
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· AI与.NET技术实操系列(五):向量存储与相似性搜索在 .NET 中的实现
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理