博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
[翻译]opengl扩展教程2
阅读量:7207 次
发布时间:2019-06-29

本文共 903 字,大约阅读时间需要 3 分钟。

[翻译]opengl扩展教程2

原文地址

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"

转载地址:http://uqrum.baihongyu.com/

你可能感兴趣的文章
STM32 CANBus RAM Layout
查看>>
压力测试相关之ab命令
查看>>
crontab 中 python(cx_Oracle)脚本执行时需要用户环境变量,怎么办??
查看>>
angular-file-upload 中文API
查看>>
angular指令中,require和transclude同时设置为true时的作用
查看>>
C++ 实用的小程序
查看>>
CentOS6.4/6.7下Mysql数据库的安装与配置(转载)
查看>>
10+年程序员总结的20+条经验教训
查看>>
百度地图API示例之设置级别setZoom与禁止拖拽disableDragging
查看>>
设置mysql远程连接root权限
查看>>
Yii2的Debug工具
查看>>
快速幂算法
查看>>
【基础进阶】URL详解与URL编码
查看>>
apache日志分析
查看>>
java 反射: 当Timestamp类型的属性值为null时,设置默认值
查看>>
vue-resource和vue-async-data两个插件的使用
查看>>
UISegmentedControl的基本用法
查看>>
ASP.NET 4.5.256 has not been registered on the Web server
查看>>
shell编程之文本与日志过滤
查看>>
重构中对设计模式的反思
查看>>