DI-Guy SDK Documentation  13.1
diguyOsgGraphicsShaderProgram.h
Go to the documentation of this file.
1 #ifndef diguyOsgGraphicsShaderProgram_h__
2 #define diguyOsgGraphicsShaderProgram_h__
3 
4 
5 /*********************************************************************
6  **
7  *2 diguyOsgGraphicsShaderProgram
8  **
9  */
10 
12 
13 #include <osg/Program>
14 #include <osg/Shader>
15 
16 /**********************************************************************
17  **
18  ** Class declaration. diguyOsgGraphicsShaderProgram publicly inherits
19  ** diguyGraphicsShaderProgram. Virtual functions are declared for some of
20  ** the virtual functions in the base class.
21  */
23 {
24 
25 public:
26 
27  diguyOsgGraphicsShaderProgram(void* internal_data);
29 
30  virtual int load_vertex_shader_source(const char* filename);
31  virtual int load_pixel_shader_source(const char* filename);
32  virtual int reload();
33  virtual int link();
34 
35  osg::Program* get_program() {return m_program.get();}
36  osg::StateSet* get_state_set(){return m_state_set;}
37 
38 
39 protected:
40 
43 
44  osg::ref_ptr<osg::Program> m_program;
45  osg::ref_ptr<osg::Shader> m_vertex_shader;
46  osg::ref_ptr<osg::Shader> m_fragment_shader;
47  osg::ref_ptr<osg::StateSet> m_state_set;
48 };
49 
50 
56 
57 #endif // diguyOsgGraphicsShaderProgram_h__
osg::ref_ptr< osg::Shader > m_fragment_shader
Definition: diguyOsgGraphicsShaderProgram.h:45
char m_fragment_shader_filename[512]
Definition: diguyOsgGraphicsShaderProgram.h:41
Definition: diguyOsgGraphicsShaderProgram.h:22
diguyGraphicsShaderProgram * diguyOsgGraphicsShaderProgram_create_func(void *internal_data)
Create function declaration.
Definition: diguyOsgGraphicsShaderProgram.cpp:439
virtual int reload()
This function will be called by DI-Guy if this shader program should be reloaded. ...
Definition: diguyOsgGraphicsShaderProgram.cpp:416
char m_vertex_shader_filename[512]
Definition: diguyOsgGraphicsShaderProgram.h:40
osg::ref_ptr< osg::Program > m_program
Definition: diguyOsgGraphicsShaderProgram.h:43
virtual int link()
This function will be called by DI-Guy when it is time for the shader program to be linked...
Definition: diguyOsgGraphicsShaderProgram.cpp:326
osg::ref_ptr< osg::Shader > m_vertex_shader
Definition: diguyOsgGraphicsShaderProgram.h:44
osg::ref_ptr< osg::StateSet > m_state_set
Definition: diguyOsgGraphicsShaderProgram.h:46
~diguyOsgGraphicsShaderProgram()
Definition: diguyOsgGraphicsShaderProgram.cpp:125
diguyOsgGraphicsShaderProgram(void *internal_data)
4 Header files and forward declarations
Definition: diguyOsgGraphicsShaderProgram.cpp:60
osg::Program * get_program()
Definition: diguyOsgGraphicsShaderProgram.h:35
virtual int load_pixel_shader_source(const char *filename)
This function is the pixel shader (AKA fragment shader in OpenGL) equivalent of load_vertex_shader_so...
Definition: diguyOsgGraphicsShaderProgram.cpp:232
virtual int load_vertex_shader_source(const char *filename)
This function will be called by DI-Guy when it is time for the vertex part of this shader to be loade...
Definition: diguyOsgGraphicsShaderProgram.cpp:156
This class implements shader programs for use with DI-Guy character graphics.
Definition: diguyGraphicsShaderProgram.h:94
osg::StateSet * get_state_set()
Definition: diguyOsgGraphicsShaderProgram.h:36