cocos2d 重写顶点着色语言
来源:互联网 发布:js按钮点击增加div 编辑:程序博客网 时间:2024/06/06 15:37
bool CCShaderSprite::initWithFile( const char *pszFilename )
{
bool ret=false;
do
{
ret=CCSprite::initWithFile(pszFilename);
//
CCGLProgram* shader = new CCGLProgram();
shader->initWithVertexShaderFilename("example_Water.vsh","example_Water.fsh");
shader->addAttribute(kCCAttributeNamePosition, kCCVertexAttrib_Position);
shader->addAttribute(kCCAttributeNameColor, kCCVertexAttrib_Color);
shader->addAttribute(kCCAttributeNameTexCoord, kCCVertexAttrib_TexCoords);
shader->link();
shader->updateUniforms();
m_uniformPos = glGetUniformLocation(shader->getProgram(), "f_point");
//m_uniformTime = glGetUniformLocation(shader->getProgram(), "f_time");
m_uniformMapHeight = glGetUniformLocation(shader->getProgram(), "f_height");
m_uniformMapWidth = glGetUniformLocation(shader->getProgram(), "f_width");
//m_uniformMonsterTex = glGetUniformLocation(shader->getProgram(), "CC_Texture1");
this->setShaderProgram(shader);
shader->release();
CHECK_GL_ERROR_DEBUG();
CCSize size = CCDirector::sharedDirector()->getWinSize();
m_Pos.x = size.width*0.5;
m_Pos.y = size.height*0.5;
} while (0);
return ret;
}
void CCShaderSprite::draw( void )
{
//--you can set Uniform in here
CC_NODE_DRAW_SETUP();
//getShaderProgram()->setUniformLocationWith1i(m_uniformMonsterTex,1);
getShaderProgram()->setUniformLocationWith1f(m_uniformMapHeight,sUniformMapHeight);
getShaderProgram()->setUniformLocationWith1f(m_uniformMapWidth,sUniformMapWidth);
getShaderProgram()->setUniformLocationWith2f(m_uniformPos,m_Pos.x,m_Pos.y);
//getShaderProgram()->setUniformLocationWith1f(m_uniformTime,m_RippleTime);
//ccGLBindTexture2DN(1,m_MonsterTexture->getName());
CCSprite::draw();
}
- cocos2d 重写顶点着色语言
- HLSL高级顶点着色语言基础(1)
- HLSL高级顶点着色语言基础(2)
- 在directx10 如何获得顶点着色器语言的错误信息
- 顶点着色器入门
- 顶点着色问题应用
- HLSL顶点着色器
- 顶点、片段着色器
- 顶点,片段着色器
- opengl顶点着色器
- 顶点着色问题
- OGLES顶点着色器
- 顶点着色器(vertex shader)
- I 顶点着色器基础
- 顶点和片段着色器
- 给图的顶点着色
- 顶点和片段着色器
- DirectX11 顶点着色器阶段
- VSD2PDF源代码,帮做你做好类似百度文库的在线文档浏览器
- spring的自动装配(default-autowire="byName")
- 用matlab实现完全重建两通道滤波器组的程序详解
- 计算出的地球两地之间的距离
- 各大IT公司待遇
- cocos2d 重写顶点着色语言
- ThinkPhp查询数据库的几种方式
- 一分钟掌握Spring中bean的生命周期!
- 移除“下载额外数据不成功”的恼人提示通知
- 编译原理课设——《TINY编译器》,用lex和yacc生成词法语法分析源码,实现编译器
- 操作系统--------基本知识整理持续更新
- PHP 代替 shell 批量修改文件名
- const char and static const char
- 堆排序