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
FunctionVector::const_iterator FunctionVectorIterator
bool isBasicType(String &type)
Check if a string matches one of the GLSL ES basic types.
virtual ~GLSLESProgramWriter()
Class destructor.
FunctionMap::const_iterator FunctionMapIterator
void discoverFunctionDependencies(const FunctionInvocation &invoc, FunctionVector &depVector)
Search within a function body for non-builtin functions that a given function invocation depends on.
map< String, String >::type StringMap
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.
virtual void cacheDependencyFunctions(const String &libName)
Cache functions of a dependency.
void initializeStringMaps()
Initialize string maps.
static String TargetLanguage
String processOperand(Operand op, GpuProgramType gpuType)
StringMap mCachedFunctionLibraries
ParamSemanticToStringMap mParamSemanticMap
virtual const String & getTargetLanguage() const
vector< FunctionInvocation >::type FunctionVector
GpuConstTypeToStringMap::const_iterator GpuConstTypeToStringMapIterator
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.
map< Parameter::Content, constchar * >::type ParamContentToStringMap
map< Parameter::Semantic, constchar * >::type ParamSemanticToStringMap
map< GpuConstantType, constchar * >::type GpuConstTypeToStringMap
FunctionMap mFunctionCacheMap
map< FunctionInvocation, String >::type FunctionMap
virtual void writeSourceCode(std::ostream &os, Program *program)
StringVector mFragInputParams
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
vector< String >::type StringVector
GpuProgramType
Enumerates the types of programs which can run on the GPU.
std::map< K, V, P, A > type