zoukankan      html  css  js  c++  java
  • cocos2dx 3.13 etc1 ClippingNode Bug 修正

    void TrianglesCommand::useMaterial() const
    {
        
        if(_stencl){
            
            /*******[solyess] etc1 mask的支持*****************/
            //Set texture
            //GL::bindTexture2D(_textureID);
            
            if (_alphaTextureID > 0)
            { // ANDROID ETC1 ALPHA supports.
                GL::bindTexture2D(_alphaTextureID);
            }
            else{
                GL::bindTexture2D(_textureID);
            }
            //set blend mode
            GL::blendFunc(_blendType.src, _blendType.dst);
            
            _glProgramState->apply(_mv);
            /*******[solyess]end etc1 mask的支持*****************/
        }else{
            //Set texture
            GL::bindTexture2D(_textureID);
            
            if (_alphaTextureID > 0)
            { // ANDROID ETC1 ALPHA supports.
                GL::bindTexture2DN(1, _alphaTextureID);
            }
            //set blend mode
            GL::blendFunc(_blendType.src, _blendType.dst);
            
            _glProgramState->apply(_mv);
        }
    }
    GLProgramState* GLProgramState::getOrCreateWithGLProgramName(const std::string& glProgramName, Texture2D* texture)
    {
        /*******[solyess] etc1 mask的支持*****************/
        if (texture != nullptr && texture->getAlphaTextureName() != 0 && texture->getisStencl() == false) {
            if (glProgramName == GLProgram::SHADER_NAME_POSITION_TEXTURE_COLOR) {
                return GLProgramState::getOrCreateWithGLProgramName(GLProgram::SHADER_NAME_ETC1AS_POSITION_TEXTURE_COLOR);
            }
            else if (glProgramName == GLProgram::SHADER_NAME_POSITION_TEXTURE_COLOR_NO_MVP) {
                return GLProgramState::getOrCreateWithGLProgramName(GLProgram::SHADER_NAME_ETC1AS_POSITION_TEXTURE_COLOR_NO_MVP);
            }
            else if (glProgramName == GLProgram::SHADER_NAME_POSITION_GRAYSCALE) {
                return GLProgramState::getOrCreateWithGLProgramName(GLProgram::SHADER_NAME_ETC1AS_POSITION_TEXTURE_GRAY_NO_MVP);
            }
        }
    
        return GLProgramState::getOrCreateWithGLProgramName(glProgramName);
    }
  • 相关阅读:
    Debian 8(jessie)下设置系统启动直接进入命令行,无GUI
    Unity 查找物体对象
    Unity的生命周期函数
    Unity脚本实现添加子物体
    Unity工程中 .Meta 文件
    Unity 中简单的第三人称摄像机跟随
    github删除自己的库--Deleting a repository
    TypeScript函数
    Egret引擎学习笔记
    Egret引擎list内单个渲染对象代码编写
  • 原文地址:https://www.cnblogs.com/czjone/p/5899141.html
Copyright © 2011-2022 走看看