// // 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; } ImmutableString TOutputESSL::translateTextureFunction(const ImmutableString &name, const ShCompileOptions &option) { // Check WEBGL_video_texture invocation first. if (name == "textureVideoWEBGL") { if (option & SH_TAKE_VIDEO_TEXTURE_AS_EXTERNAL_OES) { // TODO(http://anglebug.com/3889): Implement external image situation. UNIMPLEMENTED(); return ImmutableString(""); } else { // Default translating textureVideoWEBGL to texture2D. return ImmutableString("texture2D"); } } return name; } } // namespace sh