HatchitGraphics
ht_pipeline.h
1 
27 #pragma once
28 
29 #include <ht_platform.h>
30 #include <ht_shader.h>
31 #include <ht_debug.h>
32 #include <ht_shadervariablechunk.h>
33 #include <ht_pipeline_resource.h>
34 #include <ht_shader_resource.h>
35 
36 #include <map>
37 
38 namespace Hatchit {
39 
40  namespace Graphics {
41 
42  class PipelineBase;
43 
44  class HT_API Pipeline : public Core::RefCounted<Pipeline>
45  {
46  public:
47  Pipeline(Core::Guid ID);
48 
49  ~Pipeline();
50 
51  bool Initialize(const std::string& file);
52 
53  /* Add a map of existing shader variables into this pipeline
54  * \param shaderVariables the map of existing shader variables you want to add
55  */
56  bool SetShaderVariables(ShaderVariableChunk* variables);
57 
58  bool SetInt(size_t offset, int data);
59  bool SetDouble(size_t offset, double data);
60  bool SetFloat(size_t offset, float data);
61  bool SetFloat2(size_t offset, Math::Vector2 data);
62  bool SetFloat3(size_t offset, Math::Vector3 data);
63  bool SetFloat4(size_t offset, Math::Vector4 data);
64  bool SetMatrix4(size_t offset, Math::Matrix4 data);
65 
67  bool Update();
68 
69  PipelineBase* const GetBase() const;
70 
71  protected:
72  PipelineBase* m_base;
73  };
74 
76  }
77 }
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