text: //
  // Copyright 2002 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/OutputESSL.h"
  
  namespace sh
  {
  
  TOutputESSL::TOutputESSL(TInfoSinkBase &objSink,
                           ShArrayIndexClampingStrategy clampingStrategy,
                           ShHashFunction64 hashFunction,
                           NameMap &nameMap,
                           TSymbolTable *symbolTable,
                           sh::GLenum shaderType,
                           int shaderVersion,
                           bool forceHighp,
                           ShCompileOptions compileOptions)
      : TOutputGLSLBase(objSink,
                        clampingStrategy,
                        hashFunction,
                        nameMap,
                        symbolTable,
                        shaderType,
                        shaderVersion,
                        SH_ESSL_OUTPUT,
                        compileOptions),
        mForceHighp(forceHighp)
  {}
  
  bool TOutputESSL::writeVariablePrecision(TPrecision precision)
  {
      if (precision == EbpUndefined)
          return false;
  
      TInfoSinkBase &out = objSink();
      if (mForceHighp)
          out << getPrecisionString(EbpHigh);
      else
          out << getPrecisionString(precision);
      return true;
  }
  
  }  // namespace sh
  