HatchitGraphics
ht_pipeline_base.h
1 
15 #pragma once
16 
17 #include <ht_platform.h>
18 #include <ht_string.h> //std::string
19 #include <ht_math.h> //Vectors and matricies
20 #include <ht_texture.h> //TextureHandle
21 #include <ht_shadervariablechunk.h>
22 
23 namespace Hatchit {
24 
25  namespace Core
26  {
27  template<typename VarType>
28  class Handle;
29  }
30 
31  namespace Resource
32  {
33  class Pipeline;
34  class ShaderVariable;
35  }
36 
37  namespace Graphics {
38 
39  class HT_API PipelineBase
40  {
41  public:
42  virtual ~PipelineBase() {};
43 
44  virtual bool VSetShaderVariables(ShaderVariableChunk* variables) = 0;
45 
46  virtual bool VSetInt(size_t offset, int data) = 0;
47  virtual bool VSetDouble(size_t offset, double data) = 0;
48  virtual bool VSetFloat(size_t offset, float data) = 0;
49  virtual bool VSetFloat2(size_t offset, Math::Vector2 data) = 0;
50  virtual bool VSetFloat3(size_t offset, Math::Vector3 data) = 0;
51  virtual bool VSetFloat4(size_t offset, Math::Vector4 data) = 0;
52  virtual bool VSetMatrix4(size_t offset, Math::Matrix4 data) = 0;
53 
54  virtual bool VUpdate() = 0;
55  protected:
56  ShaderVariableChunk* m_shaderVariables;
57 
58  friend class Pipeline;
59  };
60  }
61 }
Hatchit Engine Copyright(c) 2015-2016 Third-Degree.
Definition: ht_color.h:19
Definition: ht_pipeline_base.h:39
Definition: ht_pipeline.h:44
Definition: ht_shadervariablechunk.h:38