Source code

Revision control

Copy as Markdown

Other Tools

//
// 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