Engine²
Open-source game engine written in C++.
Loading...
Searching...
No Matches
Rmlui::Utils::RenderInterface Class Reference

#include <RenderInterface.hpp>

Inheritance diagram for Rmlui::Utils::RenderInterface:
Rmlui::Utils::IRenderer

Classes

struct  GeometryData
struct  TextureData
struct  DrawCommand

Public Member Functions

 RenderInterface ()=delete
 RenderInterface (Engine::Core &core)
 ~RenderInterface () override=default
void FlushDrawCommands (wgpu::RenderPassEncoder const &renderPass)
Rml::CompiledGeometryHandle CompileGeometry (Rml::Span< const Rml::Vertex > vertices, Rml::Span< const int > indices) override
void RenderGeometry (Rml::CompiledGeometryHandle handle, Rml::Vector2f translation, Rml::TextureHandle texture_handle) override
void ReleaseGeometry (Rml::CompiledGeometryHandle handle) override
Rml::TextureHandle LoadTexture (Rml::Vector2i &texture_dimensions, const Rml::String &source) override
Rml::TextureHandle GenerateTexture (Rml::Span< const Rml::byte > source, Rml::Vector2i dimensions) override
Rml::TextureHandle CreateTexture (Rml::Span< const Rml::byte > source_data, Rml::Vector2i source_dimensions, wgpu::TextureFormat format)
void ReleaseTexture (Rml::TextureHandle handle) override
void EnableScissorRegion (bool enable) override
void SetScissorRegion (Rml::Rectanglei region) override
void SetScissor (Rml::Rectanglei region, bool vertically_flip)
void BeginFrame () override
void EndFrame () override
void DrawFullscreenQuad ()
void SetTransform (const Rml::Matrix4f *new_transform) override

Static Public Member Functions

static RenderInterfaceGetActive ()

Private Member Functions

wgpu::BindGroup ResolveTextureBindGroup (Rml::TextureHandle texture_handle)

Private Attributes

Engine::Core_core
std::unordered_map< Rml::CompiledGeometryHandle, std::unique_ptr< GeometryData > > _geometries
std::unordered_map< Rml::TextureHandle, std::unique_ptr< TextureData > > _textures
size_t _textureCounter = 0
Rml::TextureHandle _nextTextureHandle = 1
std::vector< DrawCommand_drawCommands
std::unique_ptr< TextureData_defaultTexture
wgpu::Buffer _screenBuffer
wgpu::BindGroup _screenBindGroup
bool _scissorEnabled = false
Rml::Rectanglei _scissorRegion
std::optional< Rml::Matrix4f > _transform

Static Private Attributes

static RenderInterface_active = nullptr

Constructor & Destructor Documentation

◆ RenderInterface() [1/2]

Rmlui::Utils::RenderInterface::RenderInterface ( )
delete

◆ RenderInterface() [2/2]

Rmlui::Utils::RenderInterface::RenderInterface ( Engine::Core & core)
explicit

◆ ~RenderInterface()

Rmlui::Utils::RenderInterface::~RenderInterface ( )
overridedefault

Member Function Documentation

◆ BeginFrame()

void Rmlui::Utils::RenderInterface::BeginFrame ( )
overridevirtual

◆ CompileGeometry()

Rml::CompiledGeometryHandle Rmlui::Utils::RenderInterface::CompileGeometry ( Rml::Span< const Rml::Vertex > vertices,
Rml::Span< const int > indices )
override

◆ CreateTexture()

Rml::TextureHandle Rmlui::Utils::RenderInterface::CreateTexture ( Rml::Span< const Rml::byte > source_data,
Rml::Vector2i source_dimensions,
wgpu::TextureFormat format )

◆ DrawFullscreenQuad()

void Rmlui::Utils::RenderInterface::DrawFullscreenQuad ( )

◆ EnableScissorRegion()

void Rmlui::Utils::RenderInterface::EnableScissorRegion ( bool enable)
override

◆ EndFrame()

void Rmlui::Utils::RenderInterface::EndFrame ( )
overridevirtual

◆ FlushDrawCommands()

void Rmlui::Utils::RenderInterface::FlushDrawCommands ( wgpu::RenderPassEncoder const & renderPass)

◆ GenerateTexture()

Rml::TextureHandle Rmlui::Utils::RenderInterface::GenerateTexture ( Rml::Span< const Rml::byte > source,
Rml::Vector2i dimensions )
override

◆ GetActive()

RenderInterface * Rmlui::Utils::RenderInterface::GetActive ( )
static

◆ LoadTexture()

Rml::TextureHandle Rmlui::Utils::RenderInterface::LoadTexture ( Rml::Vector2i & texture_dimensions,
const Rml::String & source )
override

◆ ReleaseGeometry()

void Rmlui::Utils::RenderInterface::ReleaseGeometry ( Rml::CompiledGeometryHandle handle)
override

◆ ReleaseTexture()

void Rmlui::Utils::RenderInterface::ReleaseTexture ( Rml::TextureHandle handle)
override

◆ RenderGeometry()

void Rmlui::Utils::RenderInterface::RenderGeometry ( Rml::CompiledGeometryHandle handle,
Rml::Vector2f translation,
Rml::TextureHandle texture_handle )
override

◆ ResolveTextureBindGroup()

wgpu::BindGroup Rmlui::Utils::RenderInterface::ResolveTextureBindGroup ( Rml::TextureHandle texture_handle)
private

◆ SetScissor()

void Rmlui::Utils::RenderInterface::SetScissor ( Rml::Rectanglei region,
bool vertically_flip )

◆ SetScissorRegion()

void Rmlui::Utils::RenderInterface::SetScissorRegion ( Rml::Rectanglei region)
override

◆ SetTransform()

void Rmlui::Utils::RenderInterface::SetTransform ( const Rml::Matrix4f * new_transform)
override

Member Data Documentation

◆ _active

RenderInterface * Rmlui::Utils::RenderInterface::_active = nullptr
staticprivate

◆ _core

Engine::Core& Rmlui::Utils::RenderInterface::_core
private

◆ _defaultTexture

std::unique_ptr<TextureData> Rmlui::Utils::RenderInterface::_defaultTexture
private

◆ _drawCommands

std::vector<DrawCommand> Rmlui::Utils::RenderInterface::_drawCommands
private

◆ _geometries

std::unordered_map<Rml::CompiledGeometryHandle, std::unique_ptr<GeometryData> > Rmlui::Utils::RenderInterface::_geometries
private

◆ _nextTextureHandle

Rml::TextureHandle Rmlui::Utils::RenderInterface::_nextTextureHandle = 1
private

◆ _scissorEnabled

bool Rmlui::Utils::RenderInterface::_scissorEnabled = false
private

◆ _scissorRegion

Rml::Rectanglei Rmlui::Utils::RenderInterface::_scissorRegion
private

◆ _screenBindGroup

wgpu::BindGroup Rmlui::Utils::RenderInterface::_screenBindGroup
private

◆ _screenBuffer

wgpu::Buffer Rmlui::Utils::RenderInterface::_screenBuffer
private

◆ _textureCounter

size_t Rmlui::Utils::RenderInterface::_textureCounter = 0
private

◆ _textures

std::unordered_map<Rml::TextureHandle, std::unique_ptr<TextureData> > Rmlui::Utils::RenderInterface::_textures
private

◆ _transform

std::optional<Rml::Matrix4f> Rmlui::Utils::RenderInterface::_transform
private

The documentation for this class was generated from the following files: