libdonut 2.3.6
Application framework for cross-platform game development in C++20
Loading...
Searching...
No Matches
Renderer.hpp
Go to the documentation of this file.
1#ifndef DONUT_GRAPHICS_RENDERER_HPP
2#define DONUT_GRAPHICS_RENDERER_HPP
3
14#include <donut/shapes.hpp>
15
16#include <optional> // std::optional
17#include <vector> // std::vector
18
19namespace donut::graphics {
20
25
38class Renderer {
39public:
51 explicit Renderer(const RendererOptions& options = {});
52
55
57 Renderer(const Renderer&) = delete;
58
60 Renderer(Renderer&&) = delete;
61
63 Renderer& operator=(const Renderer&) = delete;
64
67
77
87 void clearFramebufferColor(Framebuffer& framebuffer, Color color);
88
99
114 void render(Framebuffer& framebuffer, const RenderPass& renderPass, const Viewport& viewport, const Camera& camera, std::optional<Rectangle<int>> scissor = {});
115
116private:
117 TexturedQuad texturedQuad{};
118 std::vector<Model::Object::Instance> modelInstances{};
119 std::vector<TexturedQuad::Instance> texturedQuadInstances{};
120 Text text{};
121};
122
123} // namespace donut::graphics
124
125#endif
Normalized floating-point RGBA color type with 32 bits per component.
Definition Color.hpp:11
Combined view-projection matrix, defining the perspective for a Renderer to render from.
Definition Camera.hpp:53
Unique resource handle with exclusive ownership of a GPU framebuffer.
Definition Framebuffer.hpp:15
Graphics drawing queue for batch rendering using a Renderer.
Definition RenderPass.hpp:718
Persistent system for rendering the batched draw commands of a RenderPass onto a Framebuffer,...
Definition Renderer.hpp:38
void clearFramebufferColorAndDepth(Framebuffer &framebuffer, Color color)
Clear the color and depth buffer contents of a Framebuffer.
Renderer(const Renderer &)=delete
Copying a renderer is not allowed, since it manages global state.
Renderer operator=(Renderer &&)=delete
Moving a renderer is not allowed, since it manages global state.
Renderer(Renderer &&)=delete
Moving a renderer is not allowed, since it manages global state.
Renderer & operator=(const Renderer &)=delete
Copying a renderer is not allowed, since it manages global state.
void clearFramebufferDepth(Framebuffer &framebuffer)
Clear the depth buffer contents of a Framebuffer.
void render(Framebuffer &framebuffer, const RenderPass &renderPass, const Viewport &viewport, const Camera &camera, std::optional< Rectangle< int > > scissor={})
Render the contents of a RenderPass to a Framebuffer.
void clearFramebufferColor(Framebuffer &framebuffer, Color color)
Clear the color contents of a Framebuffer.
Renderer(const RendererOptions &options={})
Construct a renderer.
Definition Buffer.hpp:7
Flat 2D axis-aligned rectangle shape with a position and size.
Definition shapes.hpp:128
Configuration options for a Renderer.
Definition Renderer.hpp:24
Square 2D mesh for textured rendering.
Definition TexturedQuad.hpp:18
Rectangular region of a framebuffer.
Definition Viewport.hpp:13