HatchitGraphics
ht_meshrenderer.h
1 
25 #pragma once
26 
27 #include <ht_renderpass.h>
28 #include <ht_objectrenderer.h>
29 #include <ht_shadervariablechunk.h>
30 #include <ht_material.h>
31 #include <ht_mesh.h>
32 #include <ht_model.h>
33 #include <ht_renderer.h>
34 
35 namespace Hatchit
36 {
37  namespace Graphics
38  {
39  class HT_API MeshRenderer : public IObjectRenderer
40  {
41  public:
42  MeshRenderer(Renderer* renderer);
43  virtual ~MeshRenderer();
44 
45  /* Set which material you want to render with
46  * \param material the material you want to render with
47  * The material should also store the appropriate pipeline
48  */
49  virtual void SetMaterial(MaterialHandle material);
50 
51  /* Set which mesh will be rendered
52  * \param mesh A pointer to the mesh you want to render
53  */
54  virtual void SetMesh(MeshHandle mesh);
55 
56  /*Sets the instance data to be used with this particular mesh renderer
57  */
58  virtual void SetInstanceData(ShaderVariableChunk* data);
59 
60  //Override to submit a render request with a graphics language
61  virtual void Render();
62 
63 
64  protected:
65  Renderer* m_renderer;
66  RenderPassHandle m_renderPass;
67  PipelineHandle m_pipeline;
68  MaterialHandle m_material;
69  MeshHandle m_mesh;
70  ShaderVariableChunk* m_instanceData;
71  };
72  }
73 }
Definition: ht_objectrenderer.h:33
Definition: ht_meshrenderer.h:39
Definition: ht_renderer.h:81
Hatchit Engine Copyright(c) 2015-2016 Third-Degree.
Definition: ht_color.h:19
Definition: ht_shadervariablechunk.h:38