using glGetString()
GL_SHADING_LANGUAGE_VERSION
使用 glGetString() 查看 shade 版本
OpenGLES shading language 预处理包含以下几个
__LINE__
__FILE__
__VERSION__
GL_ES
简单使用方法
#version [the version returned by GL query]
#if (__VERSION__ > 120)
# define IN in
#else
# define IN varying
#endif // __VERSION __
#version [the version returned by GL query]
#if (__VERSION__ > 120)
# define IN in
# define OUT out
#else
# define IN attribute
# define OUT varying
#endif // __VERSION
GLuint res = glCreateShader(type);
const GLchar* sources[3] = {
// Define GLSL version
#ifdef GL_ES_VERSION_2_0
"#version 100\n"
#else
"#version 120\n"
#endif
,
// GLES2 precision specifiers
#ifdef GL_ES_VERSION_2_0
// Define default float precision for fragment shaders:
(type == GL_FRAGMENT_SHADER) ?
"#ifdef GL_FRAGMENT_PRECISION_HIGH\n"
"precision highp float; \n"
"#else \n"
"precision mediump float; \n"
"#endif \n"
: ""
// Note: OpenGL ES automatically defines this:
// #define GL_ES
#else
// Ignore GLES 2 precision specifiers:
"#define lowp \n"
"#define mediump\n"
"#define highp \n"
#endif
,
source };
glShaderSource(res, 3, sources, NULL);