1 #ifndef SHADER_PARSER_H 2 #define SHADER_PARSER_H 3 4 #include "GLESv2Context.h" 5 #include <string> 6 #include <GLES2/gl2.h> 7 #include <GLcommon/objectNameManager.h> 8 9 class ShaderParser:public ObjectData{ 10 public: 11 ShaderParser(); 12 ShaderParser(GLenum type); 13 void setSrc(const Version& ver,GLsizei count,const GLchar** strings,const GLint* length); 14 const char* getOriginalSrc(); 15 const GLchar** parsedLines(); 16 GLenum getType(); 17 ~ShaderParser(); 18 19 void setInfoLog(GLchar * infoLog); 20 GLchar* getInfoLog(); 21 22 private: 23 void parseOriginalSrc(); 24 void parseGLSLversion(); 25 void parseBuiltinConstants(); 26 void parseOmitPrecision(); 27 void parseExtendDefaultPrecision(); 28 void parseLineNumbers(); 29 void clearParsedSrc(); 30 31 GLenum m_type; 32 char* m_originalSrc; 33 std::string m_src; 34 std::string m_parsedSrc; 35 GLchar* m_parsedLines; 36 GLchar* m_infoLog; 37 }; 38 #endif 39