All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Macros Pages
DebugLineRendererScreenSpace.h
1 // Copyright (c) 2014 eeGeo. All rights reserved.
2 
3 #pragma once
4 
5 #include "VectorMath.h"
6 #include "DynamicBuffer.h"
7 #include "Rendering.h"
8 #include "AllVertexTypes.h"
9 #include "Streaming.h"
10 #include "CameraFrustumStreamingVolume.h"
11 #include "DebugLineRenderable.h"
12 #include "IRenderableFilter.h"
13 
14 namespace Eegeo
15 {
16  namespace DebugRendering
17  {
18  namespace Renderers
19  {
21  {
22 
23  struct DebugLineScreenSpace
24  {
25  v4 Color;
26  v2 P0;
27  v2 P1;
28  float Lifetime;
29  };
30 
31  public:
33  const Rendering::VertexLayouts::VertexBinding& vertexBinding,
34  int vertexBufferSize,
35  float lineWidth);
36 
38 
39  void SetLineWidth(float lineWidth);
40 
41  void DrawLine(
42  const v2& screenPointA,
43  const v2& screenPointB,
44  const v4& color,
45  const float lifetime = 0.0f
46  );
47 
48  void Update(float dt);
49  void GenerateGeometry();
50 
51  void EnqueueRenderables(const Rendering::RenderContext& renderContext, Rendering::RenderQueue& renderQueue);
52 
53  void SetDepthEnabled(const bool depthEnabled);
54 
55  private:
56 
57  std::vector<DebugLineScreenSpace> m_drawData;
58 
59  DebugLineRenderable* m_pDebugLineRenderable;
60  };
61  }
62  }
63 }
64 
65