CeresEngine 0.2.0
A game development framework
Loading...
Searching...
No Matches
RendererRendering.hpp
Go to the documentation of this file.
1//
2// CeresEngine - A game development framework
3//
4// Created by Rogiel Sulzbach.
5// Copyright (c) 2018-2022 Rogiel Sulzbach. All rights reserved.
6//
7
8#pragma once
9
11
14
15namespace CeresEngine {
16
19 public:
20 virtual ~RendererElement() = default;
21
22 public:
24 virtual void draw(GPUCommandBuffer& commandBuffer) const = 0;
25
26 public:
30
33
36
39
42
45 };
46
47} // namespace CeresEngine
Definition GPUCommandBuffer.hpp:77
Definition GPUBufferObject.hpp:169
Definition GPUBufferObject.hpp:126
A element (usually a sub-mesh) visible on the screen.
Definition RendererRendering.hpp:18
virtual const RendererMaterial & getMaterial() const noexcept=0
The material for the render element.
virtual const GPUIndexBuffer & getIndexBuffer() const noexcept=0
virtual const GPUVertexFormat & getVertexFormat() const noexcept=0
Returns the vertex format which the graphics pipeline must be compatible with.
virtual Sphere getBoundingSphere() const =0
Gets the renderable bounding sphere.
virtual ~RendererElement()=default
virtual AABox getBoundingBox() const =0
Gets the renderable bounding box.
virtual void draw(GPUCommandBuffer &commandBuffer) const =0
Submits a draw command with the given renderer element.
virtual const GPUVertexBuffer & getVertexBuffer() const noexcept=0
An abstract class that represents a renderer material.
Definition RendererMaterial.hpp:31
Definition Application.hpp:19
constexpr size_t hash(const T &v)
Generates a hash for the provided type.
Definition Hash.hpp:25
Definition GPUVertexFormat.hpp:77