DI-Guy SDK Documentation  13.7
diguyOsgGraphicsShaderProgram.h
Go to the documentation of this file.
1 #pragma once
2 
4 
5 #include <osg/Program>
6 #include <osg/Shader>
7 
8 
31 {
32 
33 public:
34 
35  diguyOsgGraphicsShaderProgram(void* internal_data);
37 
38  virtual int load_vertex_shader_source(const char* filename) override;
39  virtual int load_pixel_shader_source(const char* filename) override;
40  virtual int link() override;
41 
42  osg::Program* get_program() {return m_program.get();}
43  //osg::StateSet* get_state_set(){return m_shader_state_set;}
44 
45 
46 protected:
47 
48  char m_vertex_shader_filename[512];
50 
51  osg::ref_ptr<osg::Program> m_program;
52  osg::ref_ptr<osg::Shader> m_vertex_shader;
53  osg::ref_ptr<osg::Shader> m_fragment_shader;
54  //osg::ref_ptr<osg::StateSet> m_shader_state_set;
55 };
56 
osg::ref_ptr< osg::Shader > m_fragment_shader
Definition: diguyOsgGraphicsShaderProgram.h:51
char m_fragment_shader_filename[512]
Definition: diguyOsgGraphicsShaderProgram.h:47
Definition: diguyOsgGraphicsShaderProgram.h:29
diguyGraphicsShaderProgram * diguyOsgGraphicsShaderProgram_create_func(void *internal_data)
Create function declaration.
Definition: diguyOsgGraphicsShaderProgram.cpp:423
virtual int load_vertex_shader_source(const char *filename) override
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:163
char m_vertex_shader_filename[512]
Definition: diguyOsgGraphicsShaderProgram.h:46
osg::ref_ptr< osg::Program > m_program
Definition: diguyOsgGraphicsShaderProgram.h:49
osg::ref_ptr< osg::Shader > m_vertex_shader
Definition: diguyOsgGraphicsShaderProgram.h:50
~diguyOsgGraphicsShaderProgram()
Definition: diguyOsgGraphicsShaderProgram.cpp:107
diguyOsgGraphicsShaderProgram(void *internal_data)
Definition: diguyOsgGraphicsShaderProgram.cpp:36
virtual int load_pixel_shader_source(const char *filename) override
This function is the pixel shader (AKA fragment shader in OpenGL) equivalent of load_vertex_shader_so...
Definition: diguyOsgGraphicsShaderProgram.cpp:243
osg::Program * get_program()
Definition: diguyOsgGraphicsShaderProgram.h:41
virtual int link() override
This function will be called by DI-Guy when it is time for the shader program to be linked...
Definition: diguyOsgGraphicsShaderProgram.cpp:333
This class implements shader programs for use with DI-Guy character graphics.
Definition: diguyGraphicsShaderProgram.h:94