Ocular Engine
Shader.hpp
1 
17 #pragma once
18 #ifndef __H__OCULAR_GRAPHICS_SHADER__H__
19 #define __H__OCULAR_GRAPHICS_SHADER__H__
20 
21 #include "Resources/Resource.hpp"
22 
23 //------------------------------------------------------------------------------------------
24 
29 namespace Ocular
30 {
35  namespace Graphics
36  {
37  class ShaderProgram;
38 
42  class Shader : public Core::Resource
43  {
44  friend class ShaderProgram;
45 
46  public:
47 
48  Shader();
49  virtual ~Shader();
50 
51  virtual void unload() = 0;
52 
56  virtual void bind() = 0;
57 
61  virtual void unbind() = 0;
62 
66  ShaderProgram* getParent() const;
67 
68  protected:
69 
70  ShaderProgram* m_Parent;
71 
72  private:
73  };
74  }
78 }
83 //------------------------------------------------------------------------------------------
84 
85 #endif
virtual void unload()=0
Note: Once this library is made dynamic, this will no longer be needed.
Definition: Common.hpp:70
ShaderProgram * getParent() const
Definition: Shader.cpp:45
virtual void unbind()=0
Definition: ShaderProgram.hpp:54
Definition: Shader.hpp:42
virtual void bind()=0
Definition: Resource.hpp:46