OpenGLShader 编程系列 - 查询shader中的Uniforms

GLint maxUniformLen;

GLint numUniforms;

GLint index;

glGetProgramiv(this->_program, GL_ACTIVE_UNIFORMS, &numUniforms);

glGetProgramiv(this->_program, GL_ACTIVE_UNIFORM_MAX_LENGTH, &maxUniformLen);

GLchar* uniformName = (GLchar*)malloc(sizeof(GLchar)*maxUniformLen);

for(index = 0; index < numUniforms; index++)

{

GLint size;

GLenum type;

GLint location;

GLint length;

glGetActiveUniform(this->_program, index, maxUniformLen, &length, &size, &type, uniformName);

location = glGetUniformLocation(this->_program, uniformName);

switch(type)

{

case GL_FLOAT:

//

break;

case GL_FLOAT_VEC2:

//

break;

case GL_FLOAT_VEC3:

//

break;

case GL_FLOAT_VEC4:

//

break;

case GL_INT:

//

break;

//.....all type

default:

//

break;

}

}

free(uniformName);

时间: 2024-07-30 21:14:13

OpenGLShader 编程系列 - 查询shader中的Uniforms的相关文章

Shader中的Uniforms(只读标识)

Unity ShaderLab里面的Uniforms: 定义变量:sampler2D _MainTex; float4 _MainTex_ST; 以上变量为可赋值的. 在前面加上uniforms之后该变量会变为只读. 外部赋值之后,Shader里面不可再对其值进行改变. uniforms sampler2D _MainTex; uniforms float4 _MainTex_ST; 类似于readonly的功能.

OpenGLShader 编程系列-属性变量,一致变量的传递

int Init ( ESContext *esContext ) { esContext->userData = malloc(sizeof(UserData)); UserData *userData = esContext->userData; GLbyte vShaderStr[] = "uniform mat4 u_mvpMatrix;                   \n" "attribute vec4 a_position;          

学习ASP.NET Core Razor 编程系列九——增加查询功能

学习ASP.NET Core Razor 编程系列目录 学习ASP.NET Core Razor 编程系列一 学习ASP.NET Core Razor 编程系列二——添加一个实体 学习ASP.NET Core Razor 编程系列三——创建数据表及创建项目基本页面 学习ASP.NET Core Razor 编程系列四——Asp.Net Core Razor列表模板页面 学习ASP.NET Core Razor 编程系列五——Asp.Net Core Razor新建模板页面 学习ASP.NET C

火云开发课堂 - 《Shader从入门到精通》系列 第八节:在Shader中实现黑白滤镜

<Shader从入门到精通>系列在线课程 第七节:在Shader中实现黑白滤镜 视频地址: http://edu.csdn.net/course/detail/1441/22672?auto_start=1 交流论坛:http://www.firestonegames.com/bbs/forum.php 工程下载地址:请成为正式学员获取工程 课程截图: 版权声明:本文为博主原创文章,未经博主允许不得转载.

.net中的并行编程系列-1.基础知识

最近半年一直研究用.net进行并行程序的开发与设计,再研究的过程中颇有收获,所以画了一个图总结了一下并行编程的基础知识点,这些知识点是并行编程的基础,有助于我们编程高性能的程序,里面的某些结构实现机制也蕴含着丰富的软件设计思想,在后续的文章中我会对图里面提到某些数据结构或同步机制的源码进行分析. 注:虽然使用的平台是.net ,但大部分知识点和平台以及语言无关,相关数据结构其他相关平台都有实现,包括优化手段都非常相似. .net中的并行编程系列-1.基础知识,布布扣,bubuko.com

火云开发课堂 - 《Shader从入门到精通》系列 第十节:在Shader中实现模糊滤镜

<Shader从入门到精通>系列在线课程 第十节:在Shader中实现模糊滤镜 视频地址: http://edu.csdn.net/course/detail/1441/22674?auto_start=1 交流论坛:http://www.firestonegames.com/bbs/forum.php 工程下载地址:请成为正式学员获取工程 课程截图: 版权声明:本文为博主原创文章,未经博主允许不得转载.

RxJava入门系列四,Android中的响应式编程

RxJava入门系列四,Android中的响应式编程 在入门系列1,2,3中,我基本介绍了RxJava是如何使用的.但是作为一名Android开发人员,你怎么让RxJava能为你所用呢?这篇博客我将针对Android开发来介绍一下RxJava的使用场景. RxAndroid RxAndroid是为Android打造的RxJava扩展.通过RxAndroid可以让你的Android开发变得更轻松. 首先,RxAndroid中提供了AndroidSchedulers,你可以用它来切换Android线

火云开发课堂 - 《Shader从入门到精通》系列 第二十一节:在Shader中对3D模型进行区域遮罩

<Shader从入门到精通>系列在线课程 优惠链接:http://edu.csdn.net/combo/detail/90 第二十一节:在Shader中对3D模型进行区域遮罩 视频地址: http://edu.csdn.net/course/detail/1441/22685?auto_start=1 交流论坛:http://www.firestonegames.com/bbs/forum.php 工程下载地址:请成为正式学员获取工程 课程截图: 版权声明:本文为博主原创文章,未经博主允许不得

火云开发课堂 - 《Shader从入门到精通》系列 第十九节:在Shader中实现3D模型的UV动画

<Shader从入门到精通>系列在线课程 优惠链接:http://edu.csdn.net/combo/detail/90 第十一节:在Shader中实现3D模型的UV动画 视频地址: http://edu.csdn.net/course/detail/1441/22683?auto_start=1 交流论坛:http://www.firestonegames.com/bbs/forum.php 工程下载地址:请成为正式学员获取工程 课程截图: 版权声明:本文为博主原创文章,未经博主允许不得转