zenilib  0.5.3.0
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Groups Pages
TranslatorGLSL.cpp
Go to the documentation of this file.
1 //
2 // Copyright (c) 2002-2010 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 
8 
9 #include "compiler/OutputGLSL.h"
10 #include "compiler/VersionGLSL.h"
11 
14  TVersionGLSL versionGLSL(type);
15  root->traverse(&versionGLSL);
16  int version = versionGLSL.getVersion();
17  // We need to write version directive only if it is greater than 110.
18  // If there is no version directive in the shader, 110 is implied.
19  if (version > 110) {
20  sink << "#version " << version << "\n";
21  }
22 }
23 
25  : TCompiler(type, spec) {
26 }
27 
30 
31  // Write GLSL version.
32  writeVersion(getShaderType(), root, sink);
33 
34  // Write emulated built-in functions if needed.
36  sink, false);
37 
38  // Write array bounds clamping emulation if needed.
40 
41  // Write translated shader.
43  root->traverse(&outputGLSL);
44 }
TSymbolTable & getSymbolTable()
Definition: ShHandle.h:77
GLsizei GLenum GLboolean sink
Definition: glew.h:4448
GLint GLenum GLsizei GLsizei GLsizei GLint GLenum GLenum type
Definition: gl2ext.h:845
ShShaderType getShaderType() const
Definition: ShHandle.h:80
const BuiltInFunctionEmulator & getBuiltInFunctionEmulator() const
Definition: Compiler.cpp:405
int const char * version
Definition: zlib.h:813
int getVersion()
Definition: VersionGLSL.h:37
virtual void translate(TIntermNode *root)
const ArrayBoundsClamper & getArrayBoundsClamper() const
Definition: Compiler.cpp:395
TInfoSink & getInfoSink()
Definition: ShHandle.h:70
ShHashFunction64 getHashFunction() const
Definition: ShHandle.h:75
ShArrayIndexClampingStrategy getArrayIndexClampingStrategy() const
Definition: Compiler.cpp:400
virtual void traverse(TIntermTraverser *)=0
TranslatorGLSL(ShShaderType type, ShShaderSpec spec)
void OutputClampingFunctionDefinition(TInfoSinkBase &out) const
ShShaderType
Definition: ShaderLang.h:48
ShShaderSpec
Definition: ShaderLang.h:53
TInfoSinkBase obj
Definition: InfoSink.h:112
NameMap & getNameMap()
Definition: ShHandle.h:76
void OutputEmulatedFunctionDefinition(TInfoSinkBase &out, bool withPrecision) const
static void writeVersion(ShShaderType type, TIntermNode *root, TInfoSinkBase &sink)