A retain-release type of smart pointer.
Definition SmartPtr.hpp:132
Definition GPUCommandBuffer.hpp:77
A generator represents a coroutine type that produces a sequence of values of type T,...
Definition Generator.hpp:50
An interface that must be implemented by systems that provide RendererElement instances for rendering...
Definition RendererGeometry.hpp:56
virtual Generator< RendererGeometry > enumerateGeometry(const RendererGeometryEnumerationRequest &enumerationRequest=RendererGeometryEnumerationRequest()) const =0
Enumerates all geometry in the provider.
virtual ~IRendererGeometryProvider() noexcept=default
Definition Optional.hpp:17
An abstract class that represents a renderer material.
Definition RendererMaterial.hpp:31
Definition Application.hpp:19
std::uint32_t UInt32
Definition DataTypes.hpp:23
constexpr size_t hash(const T &v)
Generates a hash for the provided type.
Definition Hash.hpp:25
Parameters to customize a geometry enumeration request.
Definition RendererGeometry.hpp:47
Optional< const ConvexVolume & > frustum
An optional frustum to be used for frustum culling.
Definition RendererGeometry.hpp:51
A structure that contains information about a single geometry primitive to be drawn by the renderer.
Definition RendererGeometry.hpp:25
void draw(GPUCommandBuffer &commandBuffer, const UInt32 instanceCount=1, const UInt32 instanceOffset=0)
GPUUniformBuffer uniformBuffer
The object uniform buffer.
Definition RendererGeometry.hpp:35
bool frustumCull(const ConvexVolume &frustum) const noexcept
RendererMaterial * material
The renderer material to be used when rendering this geometry with.
Definition RendererGeometry.hpp:38
SubMesh subMesh
The renderer sub-mesh that contains the portion of the mesh that this geometry is represented by.
Definition RendererGeometry.hpp:31
RendererMeshPtr mesh
The renderer mesh that represents the geometry.
Definition RendererGeometry.hpp:27