• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
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