27#ifndef _ShaderProgramWriterGLSLES_
28#define _ShaderProgramWriterGLSLES_
A class that represents function invocation code from shader based program function.
A class that represents a shader based program function.
GLSL ES target language writer implementation.
StringMap mInputToGLStatesMap
vector< FunctionInvocation >::type FunctionVector
bool isBasicType(String &type)
Check if a string matches one of the GLSL ES basic types.
virtual ~GLSLESProgramWriter()
Class destructor.
void discoverFunctionDependencies(const FunctionInvocation &invoc, FunctionVector &depVector)
Search within a function body for non-builtin functions that a given function invocation depends on.
map< FunctionInvocation, String >::type FunctionMap
map< Parameter::Semantic, constchar * >::type ParamSemanticToStringMap
FunctionMap::const_iterator FunctionMapIterator
ParamContentToStringMap mContentToPerVertexAttributes
void writeProgramDependencies(std::ostream &os, Program *program)
Write the program dependencies.
GpuConstTypeToStringMap mGpuConstTypeMap
void writeInputParameters(std::ostream &os, Function *function, GpuProgramType gpuType)
Write the input params of the function.
GLSLESProgramWriter()
Class constructor.
void writeLocalParameter(std::ostream &os, ParameterPtr parameter)
Write a local parameter.
FunctionVector::const_iterator FunctionVectorIterator
virtual void cacheDependencyFunctions(const String &libName)
Cache functions of a dependency.
void initializeStringMaps()
Initialize string maps.
GpuConstTypeToStringMap::const_iterator GpuConstTypeToStringMapIterator
static String TargetLanguage
String processOperand(Operand op, GpuProgramType gpuType)
StringMap mCachedFunctionLibraries
ParamSemanticToStringMap mParamSemanticMap
map< String, String >::type StringMap
virtual const String & getTargetLanguage() const
map< Parameter::Content, constchar * >::type ParamContentToStringMap
void writeOutParameters(std::ostream &os, Function *function, GpuProgramType gpuType)
Write the output params of the function.
FunctionInvocation * createInvocationFromString(const String &input)
Create a FunctionInvocation object from a string taken out of a shader library.
FunctionMap mFunctionCacheMap
virtual void writeSourceCode(std::ostream &os, Program *program)
StringVector mFragInputParams
map< GpuConstantType, constchar * >::type GpuConstTypeToStringMap
A class that represents a function operand (its the combination of a parameter the in/out semantic an...
Interface definition for factories of ShaderProgramWriter.
Base class interface for shader program writers.
A class that represents a shader based program.
GLSL ES program writer factory implementation.
virtual ProgramWriter * create(void)
ShaderProgramWriterGLSLESFactory()
virtual ~ShaderProgramWriterGLSLESFactory()
virtual const String & getTargetLanguage(void) const
Reference-counted shared pointer, used for objects where implicit destruction is required.
GpuProgramType
Enumerates the types of programs which can run on the GPU.
std::map< K, V, P, A > type