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_SHADER_H_
00027 #define _OPENGL_GPU_SHADER_H_
00028
00029 #include "GL\glew.h"
00030 #include <string>
00031
00032 namespace GpuQuadraticCurveRender
00033 {
00034
00035 enum GpuShaderStage
00036 {
00037 Vertex,
00038 Pixel
00039 };
00040
00042 class OpenglGpuShader
00043 {
00044 public:
00048 OpenglGpuShader(const std::wstring& shaderFile, GpuShaderStage stage);
00049
00051 ~OpenglGpuShader(void);
00052
00055 GLint GetGlShaderId(void) const;
00056
00057 protected:
00059 GLint m_glShader;
00060
00064 GLint LoadShaderFromFile(const std::wstring& shaderFile, GpuShaderStage stage);
00065
00069 void ReadSourceFile(const std::wstring& shaderFile, std::string& source);
00070
00072 OpenglGpuShader(const OpenglGpuShader& shader);
00073
00075 OpenglGpuShader& operator=(const OpenglGpuShader& shader);
00076 };
00077
00078 }
00079
00080 #endif