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

  • 相关阅读:
    微信公众号Markdown编辑器, 适合代码排版
    Java8-如何构建一个Stream
    Java8-Stream之数值流
    Java8学习(4)-Stream流
    Dubbo学习1-Hello world
    深入理解JVM垃圾收集机制(JDK1.8)
    持久层框架JPA与Mybatis该如何选型
    淇℃伅 [main] org.apache.catalina.startup.VersionLoggerListener.log Server.鏈嶅姟鍣
    Apache Tomcat下载、安装、配置图文教程
    IIS8.0 配置应用程序初始化功能
  • 原文地址:https://www.cnblogs.com/yfceshi/p/6736799.html
Copyright © 2011-2022 走看看