Bubba-3D  0.9.0
Awesome game engine!
HudRenderer.h
1 /*
2  * This file is part of Bubba-3D.
3  *
4  * Bubba-3D is free software: you can redistribute it and/or modify
5  * it under the terms of the GNU Lesser General Public License as published by
6  * the Free Software Foundation, either version 3 of the License, or
7  * (at your option) any later version.
8  *
9  * Bubba-3D is distributed in the hope that it will be useful,
10  * but WITHOUT ANY WARRANTY; without even the implied warranty of
11  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12  * GNU Lesser General Public License for more details.
13  *
14  * You should have received a copy of the GNU Lesser General Public License
15  * along with Bubba-3D. If not, see http://www.gnu.org/licenses/.
16  */
17 #pragma once
18 
19 #include "IRenderComponent.h"
20 #include "GL/glew.h"
21 #include "Utils.h"
22 #include <map>
23 
24 class Texture;
25 class Layout;
26 class GLSquare;
27 class IHudDrawable;
28 class Camera;
29 
34 {
35 public:
36  HudRenderer();
37  ~HudRenderer();
38 
39  virtual void render();
40  virtual void renderShadow(ShaderProgram *shaderProgram);
41  virtual void update(float dt);
42 
49  virtual void updateLayout();
50 
54  virtual void setLayout(Layout* layout);
55 
60  virtual Layout* getLayoutById(std::string id);
61 
77  virtual IHudDrawable* getHudDrawableById(std::string id);
78 
79  void setWorldCamera(Camera* worldCamera);
80 
81  void addRelativeLayout(GameObject* relativeTo, Layout* layout);
82 
83 protected:
84  chag::float4x4 createOrthographicProjection();
85  std::map<std::string, IHudDrawable*> squares;
86  Layout* rootLayout;
87  Camera* worldCamera;
88  std::vector<std::pair<GameObject*,Layout*>> relativeLayouts;
89 
90 };
virtual void setLayout(Layout *layout)
Definition: HudRenderer.cpp:42
virtual IHudDrawable * getHudDrawableById(std::string id)
Definition: HudRenderer.cpp:72
Class for maintaining OpenGL shader programs.
Definition: ShaderProgram.h:39
virtual Layout * getLayoutById(std::string id)
Definition: HudRenderer.cpp:47
virtual void updateLayout()
Definition: HudRenderer.cpp:51
A class for containing all information about a object in the game world.
Definition: GameObject.h:67
Definition: Layout.h:33
Definition: Camera.h:26