[翻译]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"。
[翻译]opengl扩展教程2的更多相关文章
- [翻译]opengl扩展教程1
[翻译]opengl扩展教程1 原文地址https://www.opengl.org/sdk/docs/tutorials/ClockworkCoders/extensions.php [翻译]ope ...
- OpenGL官方教程——着色器语言概述
OpenGL官方教程——着色器语言概述 OpenGL官方教程——着色器语言概述 可编程图形硬件管线(流水线) 可编程顶点处理器 可编程几何处理器 可编程片元处理器 语言 可编程图形硬件管线(流水线) ...
- OpenGL ES教程系列(经典合集)
为了搞透播放器的开发,花了些时间收集这些资料,虽然我已经搞定opengles渲染视频的内容,但是想玩玩opengles,往深里玩,图像处理这块是个好的方向,所以opengles是值得好好学的. O ...
- windows7下安装php的imagick和imagemagick扩展教程
这篇文章主要介绍了windows7下安装php的imagick和imagemagick扩展教程,同样也适应XP操作系统,Win8下就没测试过了,需要的朋友可以参考下 最近的PHP项目中,需要用到切图和 ...
- 中文翻译:pjsip教程(一)之PJNATH简介
在学习pjsip的过程中,发现只是单单的阅读英文官方文档,对于里边概念的理解还是不够透彻,并且苦于pjsip没有发现全一点的中文版本,所以想尽自己所能为建设和谐社会而贡献一份力量,文中定会有所疏漏,希 ...
- QT OpenGL中文教程在QT4版本后的错误代码更改(一)
由于教程中说的已经够可以了,这里就不对代码进行分析了,有兴趣可以自己去看看.这个教程来源于原来的NeHeOpenGL中文教程 (http://www.yakergong.net/nehe/) ,但其有 ...
- Firefox离线安装扩展教程
Firefox离线安装扩展教程 解决问题博文:解决stackoverflow打开慢不能注册登录 应网友求助在上传了需要的扩展资源后,顺便写个离线安装方法,其实百度也行,这不写下来后为需求者省事.(*^ ...
- ubuntu 下编译glew (opengl扩展库)
最近在研究咋样在QT 下使用opengl 扩展库glew.首先需要明白的是QT中对glut等库进行了封装,但是对glew和glfw等库需要自己编译后使用. 安装步骤: 1.下载Ubuntu下的glew ...
- OpenGL 完全教程(写给Delphi的开发者) 前言
前言 在开发了许多2D图形程序之后,许多人开始对3D图形编程产生了兴趣.学习一套3D API,是进行3D图形编程的基础.在有趣的3D图形编程中,3D API只不过充当着一种低级的工具而已.因此,在这里 ...
随机推荐
- bs4_3select()
Finding an Element with the select() Method 调用select()方法从BeautifulSoup对象索取网页元素,并用CSS 选择器传递你寻找的元素 ...
- 10月23日上午PHP数组
正则表达式 1.替换 $s = "hello5world"; $s = preg_replace("/\d/","#",$s); echo ...
- 通过Ajax方式上传文件,使用FormData进行Ajax请求
通过传统的form表单提交的方式上传文件: <form id= "uploadForm" action= "http://localhost:8080/cfJAX_ ...
- ast模块
有这么一个需求,你想从文件中读取字典,方法有很多,这里用的是ast模块 import ast with open("account","r",encoding= ...
- Array subscript is not an integer
字典的字母写成大写了,也不能查成出来,没有报没有这个字典,反而报这个错……找了好久
- ReSharper 配置及用法(转)
1:安装后,Resharper会用他自己的英文智能提示,替换掉 vs2010的智能提示,所以我们要换回到vs2010的智能提示 2:快捷键.是使用vs2010的快捷键还是使用 Resharper的快捷 ...
- Win7系统中提示:本地无法启动MySQL服务,报的错误:1067,进程意外终止的解决方法。
Win7系统中提示:本地无法启动MySQL服务,报的错误:1067,进程意外终止的解决方法. 在本地计算机无法启动MYSQL服务错误1067进程意外终止.这种情况一般是my.ini文件配置出错了1.首 ...
- 深入Spring IOC源码之ResourceLoader
在<深入Spring IOC源码之Resource>中已经详细介绍了Spring中Resource的抽象,Resource接口有很多实现类,我们当然可以使用各自的构造函数创建符合需求的Re ...
- UvaLive6662 The Last Ant 模拟
UvaLive6662 PDF题目 题意:给出隧道长度L,蚂蚁数量N,各蚂蚁位置Pi.前进方向Di,都为整数(前进方向为L或R),蚂蚁速度为1cm每秒,两蚂蚁若在整数点相遇则都反向,若不在整数点相遇则 ...
- Backbone☞View中的events...click事件失效
<div id="container"> <input type="button" id="test_click" val ...