00001 00002 00003 00004 00005 00006 00007 00008 00009 00010 00011 00012 00013 00014 00015 00016 00017 00018 00019 00020 00025 00026 #ifndef _OPENGL_GPU_PROGRAM_H 00027 #define _OPENGL_GPU_PROGRAM_H 00028 00029 #include "OpenglGpuShader.h" 00030 00031 #include "GL\glew.h" 00032 #include <string> 00033 00034 namespace GpuQuadraticCurveRender 00035 { 00036 00039 class OpenglGpuProgram 00040 { 00041 public: 00045 OpenglGpuProgram(const std::wstring& vertexShader, 00046 const std::wstring& pixelShader); 00047 00049 ~OpenglGpuProgram(void); 00050 00053 GLint getGlProgramId(void) const; 00054 00055 private: 00057 OpenglGpuShader m_vertexShader; 00058 00060 OpenglGpuShader m_pixelShader; 00061 00063 GLint m_glProgram; 00064 00066 OpenglGpuProgram(const OpenglGpuProgram&); 00067 00069 OpenglGpuProgram& operator=(const OpenglGpuProgram&); 00070 00075 GLint CreateProgram(const OpenglGpuShader& vertexShader, 00076 const OpenglGpuShader& pixelShader); 00077 }; 00078 00079 } 00080 00081 #endif