zoukankan      html  css  js  c++  java
  • cocos2d 重写顶点着色语言

    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();
    }

  • 相关阅读:
    常用 JS代码
    java中的变量各占得字节数
    70种简单好用的js代码
    JavaScript window.document的属性、方法和事件小结
    JS的event对象使用总结
    PHP魔术函数执行时间和顺序解析
    javascript event详解
    JS获取鼠标点击对象
    ThinkPHP实例化模型的四种方法
    实践:服务器编写/系统架构/cache
  • 原文地址:https://www.cnblogs.com/yfceshi/p/6736799.html
Copyright © 2011-2022 走看看