| // |
| // 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(TCompiler *compiler, |
| TInfoSinkBase &objSink, |
| const ShCompileOptions &compileOptions) |
| : TOutputGLSLBase(compiler, objSink, compileOptions) |
| {} |
| |
| bool TOutputESSL::writeVariablePrecision(TPrecision precision) |
| { |
| if (precision == EbpUndefined) |
| return false; |
| |
| if (precision == EbpHigh && !isHighPrecisionSupported()) |
| { |
| precision = EbpMedium; |
| } |
| |
| TInfoSinkBase &out = objSink(); |
| 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.takeVideoTextureAsExternalOES) |
| { |
| // 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 |