cocos2dx GLProgram

简介: cocos2dx GLProgram

glBindAttribLocation是手动给attribute分配一个location,方便后续直接使用

void glBindAttribLocation(GLuint program, GLuint index, const GLchar* name);

如果program里面没有对应name的attribute,并不会报错,仅仅会将index和attribute name对应起来。

void GLProgram::bindPredefinedVertexAttribs()
{
    static const struct {
        const char *attributeName;
        int location;
    } attribute_locations[] =
    {
        {GLProgram::ATTRIBUTE_NAME_POSITION, GLProgram::VERTEX_ATTRIB_POSITION},
        {GLProgram::ATTRIBUTE_NAME_COLOR, GLProgram::VERTEX_ATTRIB_COLOR},
        {GLProgram::ATTRIBUTE_NAME_TEX_COORD, GLProgram::VERTEX_ATTRIB_TEX_COORD},
        {GLProgram::ATTRIBUTE_NAME_TEX_COORD1, GLProgram::VERTEX_ATTRIB_TEX_COORD1},
        {GLProgram::ATTRIBUTE_NAME_TEX_COORD2, GLProgram::VERTEX_ATTRIB_TEX_COORD2},
        {GLProgram::ATTRIBUTE_NAME_TEX_COORD3, GLProgram::VERTEX_ATTRIB_TEX_COORD3},
        {GLProgram::ATTRIBUTE_NAME_NORMAL, GLProgram::VERTEX_ATTRIB_NORMAL},
    };
    const int size = sizeof(attribute_locations) / sizeof(attribute_locations[0]);
    for(int i=0; i<size;i++) {
        glBindAttribLocation(_program, attribute_locations[i].location, attribute_locations[i].attributeName);
    }
}

GLProgramState

更像是对GLProgram的一个状态,GLProgram有点像类的声明,GLProgramState更像是类的示例,state里面可以给具体的uniform、attribute等赋值,形成一个状态。

glGetProgramiv 函数可以用来查询 shader program 对象的一些信息,其中 GL_ACTIVE_ATTRIBUTES 枚举值可以用来获取当前 shader program 中定义的 attribute 变量数量。

目录
相关文章
|
缓存 知识图谱 异构计算
Cocos2dx实现多重纹理
Cocos2dx实现多重纹理
258 0
|
Android开发 C++ 开发者
《Cocos2D-x权威指南》——1.3 Cocos2D-x与Cocos2D-iPhone的比较
本节书摘来自华章计算机《Cocos2D-x权威指南》一书中的第1章,第1.3节,作者:满硕泉著, 更多章节内容可以访问云栖社区“华章计算机”公众号查看。
1028 0
《Cocos2D-x权威指南》——第1章 认识Cocos2D-x
本节书摘来自华章计算机《Cocos2D-x权威指南》一书中的第1章,作者:满硕泉著, 更多章节内容可以访问云栖社区“华章计算机”公众号查看。
1095 0
|
定位技术 C++ 开发者
《Cocos2D权威指南》——1.1 什么是Cocos2D
本节书摘来自华章计算机《Cocos2D权威指南》一书中的第1章,第1.1节,作者:王寒,屈光辉,周雪彬著, 更多章节内容可以访问云栖社区“华章计算机”公众号查看。
1370 0
|
JavaScript Android开发 C++
《Cocos2D-x权威指南》——1.2 什么是Cocos2D-x
本节书摘来自华章计算机《Cocos2D-x权威指南》一书中的第1章,第1.2节,作者:满硕泉著, 更多章节内容可以访问云栖社区“华章计算机”公众号查看。
1366 0
|
Android开发 iOS开发 开发者
《Cocos2D-x权威指南》——1.1 什么是Cocos2D
本节书摘来自华章计算机《Cocos2D-x权威指南》一书中的第1章,第1.1节,作者:满硕泉著, 更多章节内容可以访问云栖社区“华章计算机”公众号查看。
1774 0