/* ZOpenGLShader.hpp Author: Chris Ertel , James Russell Created: 04/20/2011 Purpose: OpenGL implementation of the shader interface. License: TODO */ #pragma once #ifndef _ZOPENGLSHADER_HPP #define _ZOPENGLSHADER_HPP #include #include #include //Forward Declarations class ZOpenGLRenderer; /* OpenGL Shader Implementation. */ class ZOpenGLShader : public ZShaderBase { private: DISABLE_COPY_AND_ASSIGN(ZOpenGLShader); protected: //The renderer that created us ZOpenGLRenderer* Renderer; //Method used to compile the shader static void Compile_(ZThread* _thread, void* _shader); public: //OpenGL Shader Handle GLuint GLHandle; /* Constructor. @param _renderer - the current renderer instance @param _type - the type of shader */ ZOpenGLShader(ZOpenGLRenderer* _renderer, ZShaderType _type); /* Destructor. */ virtual ~ZOpenGLShader(); //Subclass Override virtual bool Compile(); }; #endif