风吹过


以前,晚餐后在学校田径场的大榕树下,散散步吹吹风,累了就去图书馆看看书,感觉真好。


[翻译]opengl扩展教程2

[TOC] 博客园文章地址 http://www.cnblogs.com/oloroso/archive/2016/01/15/5133975.html

[翻译]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”