67 lines
1.0 KiB
C++
67 lines
1.0 KiB
C++
/*
|
|
ZOpenGLShader.hpp
|
|
Author: Chris Ertel <crertel@762studios.com>,
|
|
James Russell <jcrussell@762studios.com>
|
|
Created: 04/20/2011
|
|
|
|
Purpose:
|
|
|
|
OpenGL implementation of the shader interface.
|
|
|
|
License:
|
|
|
|
TODO
|
|
*/
|
|
|
|
#pragma once
|
|
|
|
#ifndef _ZOPENGLSHADER_HPP
|
|
#define _ZOPENGLSHADER_HPP
|
|
|
|
#include <ZRenderer/ZShaderBase.hpp>
|
|
|
|
#include <ZUtil/ZUtil.hpp>
|
|
|
|
#include <SST/SST_GLAPI.h>
|
|
|
|
//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
|