关于CCTexure2D使用opengl实现绘制的原理分析
2013-08-18 19:55
579 查看
CCTexure2D中在指定的位置中绘制图元的如下示例代码:
OpenGL函数。
void glVertexAttribPointer( GLuint index, GLint size, GLenum type, GLboolean normalized, GLsizei stride,const GLvoid * pointer);
参数:
pointer
指定一个指针,指向数组中第一个顶点属性的第一个组件。初始值为0。
stride
指定连续顶点属性之间的偏移量。如果为0,那么顶点属性会被理解为:它们是紧密排列在一起的。初始值为0。
normalized
指定当被访问时,固定点数据值是否应该被归一化(GL_TRUE)或者直接转换为固定点值(GL_FALSE)。
type
指定数组中每个组件的数据类型。可用的符号常量有GL_BYTE, GL_UNSIGNED_BYTE, GL_SHORT,GL_UNSIGNED_SHORT, GL_FIXED, 和 GL_FLOAT,初始值为GL_FLOAT。
size
指定每个顶点属性的组件数量。必须为1、2、3或者4。初始值为4。(梦维:如position是由3个(x,y,z)组成,而颜色是4个(r,g,b,a))
index
指定要修改的顶点属性的索引值
cocos2D-x中CCNode的画图函数 void CCTexture2D::drawAtPoint(const CCPoint& point) { GLfloat coordinates[] = { 0.0f, m_fMaxT, m_fMaxS,m_fMaxT, 0.0f, 0.0f, m_fMaxS,0.0f }; GLfloat width = (GLfloat)m_uPixelsWide * m_fMaxS, height = (GLfloat)m_uPixelsHigh * m_fMaxT; GLfloat vertices[] = { point.x, point.y, width + point.x, point.y, point.x, height + point.y, width + point.x, height + point.y }; ccGLEnableVertexAttribs( kCCVertexAttribFlag_Position | kCCVertexAttribFlag_TexCoords ); m_pShaderProgram->use(); m_pShaderProgram->setUniformsForBuiltins(); ccGLBindTexture2D( m_uName ); glVertexAttribPointer(kCCVertexAttrib_Position, 2, GL_FLOAT, GL_FALSE, 0, vertices); glVertexAttribPointer(kCCVertexAttrib_TexCoords, 2, GL_FLOAT, GL_FALSE, 0, coordinates); glDrawArrays(GL_TRIANGLE_STRIP, 0, 4); }
OpenGL函数。
void glVertexAttribPointer( GLuint index, GLint size, GLenum type, GLboolean normalized, GLsizei stride,const GLvoid * pointer);
参数:
pointer
指定一个指针,指向数组中第一个顶点属性的第一个组件。初始值为0。
stride
指定连续顶点属性之间的偏移量。如果为0,那么顶点属性会被理解为:它们是紧密排列在一起的。初始值为0。
normalized
指定当被访问时,固定点数据值是否应该被归一化(GL_TRUE)或者直接转换为固定点值(GL_FALSE)。
type
指定数组中每个组件的数据类型。可用的符号常量有GL_BYTE, GL_UNSIGNED_BYTE, GL_SHORT,GL_UNSIGNED_SHORT, GL_FIXED, 和 GL_FLOAT,初始值为GL_FLOAT。
size
指定每个顶点属性的组件数量。必须为1、2、3或者4。初始值为4。(梦维:如position是由3个(x,y,z)组成,而颜色是4个(r,g,b,a))
index
指定要修改的顶点属性的索引值
相关文章推荐
- 关于使用synchronized实现线程安全的原理分析
- 关于函数strtok和strtok_r的使用要点和实现原理(二)
- 编译原理:使用flex和bison工具实现语法分析树的建立
- 关于Java的数据结构HashMap,ArrayList的使用总结及使用场景和原理分析
- 关于函数strtok和strtok_r的使用要点和实现原理
- 【堆调试工具】pageheap的使用和原理分析&Linux下相似的功能实现
- 关于函数strtok和strtok_r的使用要点和实现原理(二)
- 关于函数strtok和strtok_r的使用要点和实现原理2
- 关于函数strtok和strtok_r的使用要点和实现原理(一)
- 关于函数strtok和strtok_r的使用要点和实现原理
- Spring3.1.0实现原理分析(五).关于循环引用的探讨
- 用户从手机的浏览器访问www.baidu.com,看到的可能跟桌面PC电脑,是不太一样的网页效果,会更适合移动设备使用。请简要分析一下,实现这种网页区分显示的原因及技术原理。
- 关于函数strtok和strtok_r的使用要点和实现原理(一)
- 全屏、沉浸式、fitSystemWindow使用及原理分析:全方位控制“沉浸式”的实现
- 关于函数strtok和strtok_r的使用要点和实现原理(一)
- Android中View(视图)绘制不同状态背景图片原理深入分析以及StateListDrawable使用详解
- 关于函数strtok和strtok_r的使用要点和实现原理(一)
- [Android]使用HorizontalScrollView实现广告栏Banner及相关原理分析
- 关于函数strtok和strtok_r的使用要点和实现原理(二)
- 关于函数strtok和strtok_r的使用要点和实现)原理(一