tor-browser

The Tor Browser
git clone https://git.dasho.dev/tor-browser.git
Log | Files | Refs | README | LICENSE

OutputESSL.cpp (1467B)


      1 //
      2 // Copyright 2002 The ANGLE Project Authors. All rights reserved.
      3 // Use of this source code is governed by a BSD-style license that can be
      4 // found in the LICENSE file.
      5 //
      6 
      7 #include "compiler/translator/OutputESSL.h"
      8 
      9 namespace sh
     10 {
     11 
     12 TOutputESSL::TOutputESSL(TCompiler *compiler,
     13                         TInfoSinkBase &objSink,
     14                         const ShCompileOptions &compileOptions)
     15    : TOutputGLSLBase(compiler, objSink, compileOptions)
     16 {}
     17 
     18 bool TOutputESSL::writeVariablePrecision(TPrecision precision)
     19 {
     20    if (precision == EbpUndefined)
     21        return false;
     22 
     23    if (precision == EbpHigh && !isHighPrecisionSupported())
     24    {
     25        precision = EbpMedium;
     26    }
     27 
     28    TInfoSinkBase &out = objSink();
     29    out << getPrecisionString(precision);
     30    return true;
     31 }
     32 
     33 ImmutableString TOutputESSL::translateTextureFunction(const ImmutableString &name,
     34                                                      const ShCompileOptions &option)
     35 {
     36    // Check WEBGL_video_texture invocation first.
     37    if (name == "textureVideoWEBGL")
     38    {
     39        if (option.takeVideoTextureAsExternalOES)
     40        {
     41            // TODO(http://anglebug.com/3889): Implement external image situation.
     42            UNIMPLEMENTED();
     43            return ImmutableString("");
     44        }
     45        else
     46        {
     47            // Default translating textureVideoWEBGL to texture2D.
     48            return ImmutableString("texture2D");
     49        }
     50    }
     51 
     52    return name;
     53 }
     54 
     55 }  // namespace sh