Edit

kc3-lang/angle/src/compiler/translator/OutputGLSL.cpp

Branch :

  • Show log

    Commit

  • Author : Nicolas Capens
    Date : 2014-04-15 13:12:50
    Hash : 46485086
    Message : Implement EXT_shader_texture_lod BUG=angle:551 Change-Id: I81d7574a15861f1b24ddf6147cf71adbf20e10f3 Reviewed-on: https://chromium-review.googlesource.com/194960 Tested-by: Nicolas Capens <nicolascapens@chromium.org> Reviewed-by: Shannon Woods <shannonwoods@chromium.org>

  • src/compiler/translator/OutputGLSL.cpp
  • //
    // Copyright (c) 2002-2013 The ANGLE Project Authors. All rights reserved.
    // Use of this source code is governed by a BSD-style license that can be
    // found in the LICENSE file.
    //
    
    #include "compiler/translator/OutputGLSL.h"
    
    TOutputGLSL::TOutputGLSL(TInfoSinkBase& objSink,
                             ShArrayIndexClampingStrategy clampingStrategy,
                             ShHashFunction64 hashFunction,
                             NameMap& nameMap,
                             TSymbolTable& symbolTable,
                             int shaderVersion)
        : TOutputGLSLBase(objSink, clampingStrategy, hashFunction, nameMap, symbolTable, shaderVersion)
    {
    }
    
    bool TOutputGLSL::writeVariablePrecision(TPrecision)
    {
        return false;
    }
    
    void TOutputGLSL::visitSymbol(TIntermSymbol* node)
    {
        TInfoSinkBase& out = objSink();
    
        if (node->getSymbol() == "gl_FragDepthEXT")
        {
            out << "gl_FragDepth";
        }
        else
        {
            TOutputGLSLBase::visitSymbol(node);
        }
    }
    
    TString TOutputGLSL::translateTextureFunction(TString& name)
    {
        static const char *simpleRename[] = {
            "texture2DLodEXT", "texture2DLod",
            "texture2DProjLodEXT", "texture2DProjLod",
            "textureCubeLodEXT", "textureCubeLod",
            "texture2DGradEXT", "texture2DGradARB",
            "texture2DProjGradEXT", "texture2DProjGradARB",
            "textureCubeGradEXT", "textureCubeGradARB",
            NULL, NULL
        };
    
        for (int i = 0; simpleRename[i] != NULL; i += 2) {
            if (name == simpleRename[i]) {
                return simpleRename[i+1];
            }
        }
    
        return name;
    }