1//
2// Copyright (c) 2002-2013 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
9namespace sh
10{
11
12TOutputESSL::TOutputESSL(TInfoSinkBase &objSink,
13 ShArrayIndexClampingStrategy clampingStrategy,
14 ShHashFunction64 hashFunction,
15 NameMap &nameMap,
16 TSymbolTable *symbolTable,
17 sh::GLenum shaderType,
18 int shaderVersion,
19 bool forceHighp,
20 ShCompileOptions compileOptions)
21 : TOutputGLSLBase(objSink,
22 clampingStrategy,
23 hashFunction,
24 nameMap,
25 symbolTable,
26 shaderType,
27 shaderVersion,
28 SH_ESSL_OUTPUT,
29 compileOptions),
30 mForceHighp(forceHighp)
31{}
32
33bool TOutputESSL::writeVariablePrecision(TPrecision precision)
34{
35 if (precision == EbpUndefined)
36 return false;
37
38 TInfoSinkBase &out = objSink();
39 if (mForceHighp)
40 out << getPrecisionString(EbpHigh);
41 else
42 out << getPrecisionString(precision);
43 return true;
44}
45
46} // namespace sh
47