Oxygen Engine
Modern C++ 3D Engine using OpenGL
Loading...
Searching...
No Matches
renderer.h
1#ifndef OE_GUI_RENDERER_H
2#define OE_GUI_RENDERER_H
3
4#include <vector>
5#include <memory>
6#include <glm/vec2.hpp>
7#include <glm/vec4.hpp>
8
9struct nk_context;
10struct nk_buffer;
11struct nk_convert_config;
12struct nk_font_atlas;
13struct nk_draw_null_texture;
14
15namespace oe
16{
17 namespace render
18 {
19 class Shader;
20 class Texture;
21 class DynamicMesh;
22 }
23 namespace gui
24 {
25 class Manager;
26
28 {
29 public:
35 explicit Renderer();
36
41
52 void setFontBlankData(const render::Texture* texture, const glm::vec2& uv);
53
57 void render(const Manager& manager);
58
62 void render(nk_context* ctx, const glm::uvec2& dimensions);
63
91 std::unique_ptr<oe::render::Shader> shader;
92
93 protected:
94
95 std::unique_ptr<nk_convert_config> _nk_config;
96
97 std::unique_ptr<nk_buffer> _cmd_buffer;
98
99 std::unique_ptr<oe::render::DynamicMesh> _mesh;
100 };
101 }
102}
103#endif
Definition manager.h:39
Definition renderer.h:28
void render(const Manager &manager)
Draw the UI using a manager.
void render(nk_context *ctx, const glm::uvec2 &dimensions)
Draw the UI using nuklear context and dimensions.
std::unique_ptr< oe::render::Shader > shader
Shader used for rendering the GUI.
Definition renderer.h:91
void setFontBlankData(const render::Texture *texture, const glm::vec2 &uv)
Set uv coordinates and texture containing a white pixel.
Renderer()
Constructor. Prepare the renderer.
~Renderer()
Destructor.
Definition texture.h:27
Oxygen Engine common namespace.
Definition cursor.h:8