Main Page | Namespace List | Class Hierarchy | Alphabetical List | Data Structures | File List | Namespace Members | Data Fields | Globals

/Users/blackie/Documents/myRepository/phobosengine-vc2005/phobosengine/phobosengine/ShaderObject.h

Go to the documentation of this file.
00001 
00002 
00003 #ifndef SHADEROBJECT_H
00004 #define SHADEROBJECT_H
00005 
00006 
00007 #include "GPUProgram.h"
00008 
00009 
00010 namespace pge {
00011 
00012 
00013         class ShaderObject {
00014 
00015 
00016         public:
00017                 //************************************************************************
00018                 //
00019                 // Constructor
00020                 //
00021                 //************************************************************************
00023                 ShaderObject(const std::string &vertexSourceFile, const std::string &fragmentSourceFile) {
00024                         m_program = new GPUProgram(vertexSourceFile, fragmentSourceFile);
00025                 }
00026 
00027 
00028                 //************************************************************************
00029                 //
00030                 // Destructor
00031                 //
00032                 //************************************************************************
00034                 virtual ~ShaderObject(void) {
00035                         if(m_program != NULL) {
00036                                 delete m_program;
00037                                 m_program = NULL;
00038                         }
00039                 }
00040 
00041 
00042                 //************************************************************************
00043                 //
00044                 // Functions
00045                 //
00046                 //************************************************************************
00047                 void bind(void) {
00048                         m_program->bind();
00049                 }
00050 
00051                 virtual void preRender(void) = 0;
00052                 virtual void postRender(void) = 0;
00053 
00054 
00055                 void release(void) {
00056                         m_program->release();
00057                 }
00058 
00059 
00060         protected:
00061                 //************************************************************************
00062                 //
00063                 // Variables
00064                 //
00065                 //************************************************************************
00066                 GPUProgram *m_program;
00067         };
00068 };
00069 
00070 #endif

Generated on Mon Oct 16 12:08:11 2006 for Phobosengine by doxygen 1.3.4