Home | History | Annotate | Download | only in GLES_V2
      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