Main Page | Namespace List | Class Hierarchy | Class List | Directories | File List | Namespace Members | Class Members

mitkGLSLProgram.h

00001 /*=========================================================================
00002 
00003   Program:   3DMed
00004   Date:      $Date: 2014-02-25 18:30:00 +0800 $
00005   Version:   $Version: 4.6.0 $
00006   Copyright: MIPG, Institute of Automation, Chinese Academy of Sciences
00007 
00008 =========================================================================*/
00009 
00010 #ifndef __mitkGLSLProgram_h
00011 #define __mitkGLSLProgram_h
00012 
00013 #include "mitkVisualization2Includes.h"
00014 
00015 #include "mitkObject.h"
00016 #include "GL/glew.h"
00017 
00018 class MITK_VISUALIZATION2_API mitkGLSLShader : public mitkObject
00019 {
00020 public:
00021     MITK_TYPE(mitkGLSLShader,mitkObject)
00022     mitkGLSLShader();
00023     typedef enum
00024     {
00025         Vertex,
00026         Fragment
00027     } ShaderType;
00028     void SetCode(const char* code,ShaderType type);
00029     GLhandleARB GetShader() const;
00030 
00031 protected:
00032     virtual ~mitkGLSLShader();
00033 private:
00034     mitkGLSLShader(const mitkGLSLShader&);
00035     void operator = (const mitkGLSLShader&);
00036 private:
00037     const char* m_Code;
00038     GLhandleARB m_Shader;
00039 };
00040 
00041 #include "mitkList.h"
00042 
00043 class MITK_VISUALIZATION2_API mitkGLSLProgram : public mitkObject
00044 {
00045 public:
00046     MITK_TYPE(mitkGLSLProgram,mitkObject)
00047     mitkGLSLProgram();
00048     void AddVertexShader(const char* code);
00049     void AddFragmentShader(const char* code);
00050     void Link();
00051     GLhandleARB GetProgram() { return m_GLSLProgram; }
00052     GLint GetUniformLocation(const char* name);
00053     void Use();
00054     void FinishUsing();
00055 
00056 protected:
00057     virtual ~mitkGLSLProgram();
00058 private:
00059     mitkGLSLProgram(const mitkGLSLProgram&);
00060     void operator = (const mitkGLSLProgram&);
00061 
00062 private:
00063     GLhandleARB m_GLSLProgram;
00064     mitkList m_ShaderList;
00065 };
00066 
00067 #endif

Generated on Tue Feb 25 15:00:37 2014 for MITK (Medical Imaging ToolKit) by  doxygen 1.4.3