Kinetic Visualization
 All Classes Functions Variables Pages
MyRenderer.h
1 #pragma once
2 #include "utility.hpp"
3 #include "FBO.h"
4 #include "VertexGeometry.h"
5 #include "View.h"
6 #include "RenderStates.h"
7 
8 #include <glm/gtx/transform.hpp>
9 #include <glm/gtc/type_ptr.hpp>
10 #include <glm\gtc\matrix_projection.hpp>
11 #include <glm\gtc\matrix_transform.hpp>
12 
13 
15 {
16 public:
20  MyRenderer(void);
24  ~MyRenderer(void);
25 
26 public:
27  //Bei Inline Operationen wird einfach der Code im Aufrufteil kopiert, sollte etwas bei der Performance bringen, dafür ist das Programm größer...
31  inline virtual void ClearColorBuffer() = 0;
35  inline virtual void ClearDepthBuffer() = 0;
39  inline virtual void ClearStencilBuffer() = 0;
43  inline virtual void ClearAccumBuffer() = 0;
48  inline virtual void SetClearColor(glm::vec4 color) = 0;
49 
53  inline virtual void SwapBuffer() = 0;
57  inline virtual void GetErrors() = 0;
58 
62  inline virtual void SetFrontCulling()=0;
66  inline virtual void SetBackCulling()=0;
70  inline virtual void EnableBackFaceCulling()=0;
74  inline virtual void DisableBackFaceCulling()=0;
75 
79  void SetUniformsObject();
83  void BindShader();
87  void SetUniformsGlobal();
88 
92  void EnableTextures();
96  void DisableTextures();
97 
101  void DrawView(View* node);
102 
103  bool m_clear_depth_buffer;
104 
105 protected:
111  inline virtual void EnableTexture(Texture::TexturePtr texture, int i) = 0;
117  inline virtual void DisableTexture(Texture::TexturePtr texture, int i) = 0;
118 
122  virtual void DrawVertexGeometry() = 0;
123 
127  virtual void DrawGeometry() = 0;
128 
134  void MyRenderer::TraverseSceneGraph(INode* inode, glm::mat4 m);
135 
136  glm::mat4 m_modelMatrix;
137 
138  float m_duration;
139 
140  View* m_view;
141  Geometry* m_pkGeometry;
142 };
143