14class StaticRenderProgram;
15class SpriteRenderProgram;
19class VertexDescription;
21class LowLevelRenderer;
97 void SetRenderSurfaceSize(
const glm::uvec2& size);
98 void UpdateLights(
const RenderScene& renderScene,
const uint32_t cameraIndex);
100 void RenderDepthPrePass(
const RenderScene& renderScene,
const std::vector<std::size_t>& culledMeshes,
const uint32_t cameraIndex);
101 void RenderOpaques(
const RenderScene& renderScene,
const std::vector<std::size_t>& culledMeshes,
const uint32_t cameraIndex);
102 void RenderDebugShapes(
const RenderScene& renderScene,
const uint32_t cameraIndex);
103 void RenderIcons(
const RenderScene& renderScene,
const uint32_t cameraIndex);
104 void PrepareRenderingIcons(
const uint32_t cameraIndex,
const glm::mat4& viewProjectionMatrix,
const glm::vec3& cameraPosition,
const glm::vec3& cameraUp);
105 void RenderIcon(
const uint32_t cameraIndex,
const glm::vec3& position);
106 void RenderSprites(
const RenderScene& renderScene,
const uint32_t cameraIndex);
111 glm::uvec2 outputSize;
112 glm::uvec2 renderSurfaceSize;
116 Texture* postProcessingTexture;
118 std::vector<CommandBuffer*> commandBuffers;
131 Shader* blitFragmentShader;
143 Shader* iconFragmentShader;
147 glm::vec3 cameraPosition;
Definition: Window.hpp:14
A buffer containing GPU accessible data.
Definition: Buffer.hpp:8
A buffer into which rendering commands are recorded.
Definition: CommandBuffer.hpp:24
Draws debug primitives.
Definition: DebugDrawing.hpp:19
Binds together a vertex description with buffers.
Definition: GeometryBinding.hpp:8
A graphics pipeline.
Definition: GraphicsPipeline.hpp:11
Low level renderer abstracting the underlaying graphics API (OpenGL or Vulkan).
Definition: LowLevelRenderer.hpp:27
Applies post-processing effects to the rendered image.
Definition: PostProcessing.hpp:18
Handles rendering using a low-level renderer.
Definition: Renderer.hpp:32
void Present()
Display the rendered results to back buffer and swap back and front buffers.
Definition: Renderer.cpp:264
GraphicsAPI
The supported graphics APIs.
Definition: Renderer.hpp:35
CommandBuffer * GetCommandBuffer()
Get the command buffer where commands are being recorded.
Definition: Renderer.cpp:278
const glm::uvec2 & GetRenderSurfaceSize() const
Get the size of the render surface.
Definition: Renderer.cpp:170
Utility::Window * GetWindow()
Get the window the renderer is using.
Definition: Renderer.cpp:282
void BeginFrame()
Begin new frame.
Definition: Renderer.cpp:174
void WaitForRender()
Wait until rendering and presentation is done.
Definition: Renderer.cpp:274
Renderer(GraphicsAPI graphicsAPI, Utility::Window *window)
Create new renderer.
Definition: Renderer.cpp:39
void Render(const RenderScene &renderScene)
Render a scene.
Definition: Renderer.cpp:183
LowLevelRenderer * GetLowLevelRenderer()
Get the low-level renderer.
Definition: Renderer.cpp:166
~Renderer()
Destructor.
Definition: Renderer.cpp:135
Determines how a texture should be sampled.
Definition: Sampler.hpp:6
Compiles and handles a shader. Shaders should be linked together into a ShaderProgram.
Definition: Shader.hpp:8
A shader program.
Definition: ShaderProgram.hpp:11
Render program to render a sprite.
Definition: SpriteRenderProgram.hpp:20
Render program to render an entity using default shader program.
Definition: StaticRenderProgram.hpp:23
A texture.
Definition: Texture.hpp:8
Describes how a vertex buffer is accessed by a shader.
Definition: VertexDescription.hpp:8
Handles binning and tiling of lights.
Definition: ZBinning.hpp:20
Definition: AssetEditor.hpp:5
Definition: ResourceView.hpp:12
Definition: Editor.hpp:18
A camera through which the scene should be rendered.
Definition: RenderScene.hpp:54
Contains all data needed to render a scene.
Definition: RenderScene.hpp:16