All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Macros Pages
ShaderOld.h
1 // Copyright eeGeo Ltd (2012-2014), All Rights Reserved
2 
3 #pragma once
4 
5 #include "Types.h"
6 #include "Graphics.h"
7 
8 namespace Eegeo
9 {
10 class Allocator;
11 
12 class ShaderOld
13 {
14 public:
15  enum Type
16  {
17  kVertexShader,
18  kFragmentShader
19  };
20 
21  ShaderOld ( Type type, const char* filename );
22  ShaderOld ( Type type, Allocator* pAllocator, void* pData, u32 size );
23  ~ShaderOld ();
24 
25  GLuint GetProgram () const { return m_program; }
26 
27  void* GetData () const { return m_pData; }
28  u32 GetSize () const { return m_size; }
29  Type GetType () const { return m_type; }
30 
31 private:
32  Type m_type;
33  GLuint m_program;
34 
35  Allocator* m_pAllocator;
36  void* m_pData;
37  u32 m_size;
38 };
39 
40 class GLShader
41 {
42 public:
43  GLShader ( ShaderOld* pVS, ShaderOld* pFS);
44  ~GLShader ();
45 
46  int GetUniformLocation ( const char* name );
47  int GetAttributeLocation ( const char* name );
48 
49  GLuint GetProgram () const { return m_program; }
50 
51 private:
52  ShaderOld* m_pVS;
53  ShaderOld* m_pFS;
54  GLuint m_program;
55 };
56 
57 }