Unravel Engine C++ Reference
Loading...
Searching...
No Matches
unravel::RmlUi_RenderInterface Class Reference

RmlUi render interface implementation using bgfx. More...

#include <RmlUi_RenderInterface.h>

Inheritance diagram for unravel::RmlUi_RenderInterface:

Public Member Functions

 RmlUi_RenderInterface ()
 
 ~RmlUi_RenderInterface ()
 
auto init (rtti::context &ctx) -> bool
 Initialize the renderer with engine context.
 
void shutdown ()
 Cleanup renderer resources.
 
 operator bool () const
 Returns true if the renderer was successfully constructed.
 
void set_viewport (int viewport_width, int viewport_height, int viewport_offset_x=0, int viewport_offset_y=0)
 Set viewport dimensions.
 
void begin_frame ()
 Setup bgfx state for RmlUi rendering.
 
void end_frame (const gfx::frame_buffer::ptr &framebuffer=nullptr)
 Finish frame and restore previous state.
 
void clear ()
 Clear the current render target.
 
auto CompileGeometry (Rml::Span< const Rml::Vertex > vertices, Rml::Span< const int > indices) -> Rml::CompiledGeometryHandle override
 
void RenderGeometry (Rml::CompiledGeometryHandle handle, Rml::Vector2f translation, Rml::TextureHandle texture) override
 
void ReleaseGeometry (Rml::CompiledGeometryHandle handle) override
 
auto LoadTexture (Rml::Vector2i &texture_dimensions, const Rml::String &source) -> Rml::TextureHandle override
 
auto GenerateTexture (Rml::Span< const Rml::byte > source_data, Rml::Vector2i source_dimensions) -> Rml::TextureHandle override
 
void ReleaseTexture (Rml::TextureHandle texture_handle) override
 
void EnableScissorRegion (bool enable) override
 
void SetScissorRegion (Rml::Rectanglei region) override
 
void SetScissor (Rml::Rectanglei region, bool vertically_flip=false)
 
void EnableClipMask (bool enable) override
 
void RenderToClipMask (Rml::ClipMaskOperation mask_operation, Rml::CompiledGeometryHandle geometry, Rml::Vector2f translation) override
 
void SetTransform (const Rml::Matrix4f *new_transform) override
 
auto PushLayer () -> Rml::LayerHandle override
 
void CompositeLayers (Rml::LayerHandle source, Rml::LayerHandle destination, Rml::BlendMode blend_mode, Rml::Span< const Rml::CompiledFilterHandle > filters) override
 
void PopLayer () override
 
auto SaveLayerAsTexture () -> Rml::TextureHandle override
 
auto SaveLayerAsMaskImage () -> Rml::CompiledFilterHandle override
 
auto CompileFilter (const Rml::String &name, const Rml::Dictionary &parameters) -> Rml::CompiledFilterHandle override
 
void ReleaseFilter (Rml::CompiledFilterHandle filter) override
 
auto CompileShader (const Rml::String &name, const Rml::Dictionary &parameters) -> Rml::CompiledShaderHandle override
 
void RenderShader (Rml::CompiledShaderHandle shader_handle, Rml::CompiledGeometryHandle geometry_handle, Rml::Vector2f translation, Rml::TextureHandle texture) override
 
void ReleaseShader (Rml::CompiledShaderHandle effect_handle) override
 
auto get_transform () const -> const Rml::Matrix4f &
 
void reset_program ()
 

Static Public Attributes

static constexpr Rml::TextureHandle TextureEnableWithoutBinding = Rml::TextureHandle(-1)
 
static constexpr Rml::TextureHandle TexturePostprocess = Rml::TextureHandle(-2)
 

Detailed Description

RmlUi render interface implementation using bgfx.

This class implements the RmlUi rendering interface using the engine's gfx system (bgfx wrapper) for hardware-accelerated rendering.

Definition at line 220 of file RmlUi_RenderInterface.h.

Constructor & Destructor Documentation

◆ RmlUi_RenderInterface()

unravel::RmlUi_RenderInterface::RmlUi_RenderInterface ( )

Definition at line 198 of file RmlUi_RenderInterface.cpp.

◆ ~RmlUi_RenderInterface()

unravel::RmlUi_RenderInterface::~RmlUi_RenderInterface ( )

Definition at line 203 of file RmlUi_RenderInterface.cpp.

Member Function Documentation

◆ begin_frame()

void unravel::RmlUi_RenderInterface::begin_frame ( )

Setup bgfx state for RmlUi rendering.

Definition at line 290 of file RmlUi_RenderInterface.cpp.

◆ clear()

void unravel::RmlUi_RenderInterface::clear ( )

Clear the current render target.

Definition at line 372 of file RmlUi_RenderInterface.cpp.

◆ CompileFilter()

auto unravel::RmlUi_RenderInterface::CompileFilter ( const Rml::String & name,
const Rml::Dictionary & parameters ) -> Rml::CompiledFilterHandle
override

Definition at line 1126 of file RmlUi_RenderInterface.cpp.

◆ CompileGeometry()

auto unravel::RmlUi_RenderInterface::CompileGeometry ( Rml::Span< const Rml::Vertex > vertices,
Rml::Span< const int > indices ) -> Rml::CompiledGeometryHandle
override

Definition at line 380 of file RmlUi_RenderInterface.cpp.

◆ CompileShader()

auto unravel::RmlUi_RenderInterface::CompileShader ( const Rml::String & name,
const Rml::Dictionary & parameters ) -> Rml::CompiledShaderHandle
override

Definition at line 1264 of file RmlUi_RenderInterface.cpp.

◆ CompositeLayers()

void unravel::RmlUi_RenderInterface::CompositeLayers ( Rml::LayerHandle source,
Rml::LayerHandle destination,
Rml::BlendMode blend_mode,
Rml::Span< const Rml::CompiledFilterHandle > filters )
override

Definition at line 900 of file RmlUi_RenderInterface.cpp.

◆ EnableClipMask()

void unravel::RmlUi_RenderInterface::EnableClipMask ( bool enable)
override

Definition at line 763 of file RmlUi_RenderInterface.cpp.

◆ EnableScissorRegion()

void unravel::RmlUi_RenderInterface::EnableScissorRegion ( bool enable)
override

Definition at line 743 of file RmlUi_RenderInterface.cpp.

◆ end_frame()

void unravel::RmlUi_RenderInterface::end_frame ( const gfx::frame_buffer::ptr & framebuffer = nullptr)

Finish frame and restore previous state.

Definition at line 310 of file RmlUi_RenderInterface.cpp.

◆ GenerateTexture()

auto unravel::RmlUi_RenderInterface::GenerateTexture ( Rml::Span< const Rml::byte > source_data,
Rml::Vector2i source_dimensions ) -> Rml::TextureHandle
override

Definition at line 650 of file RmlUi_RenderInterface.cpp.

◆ get_transform()

auto unravel::RmlUi_RenderInterface::get_transform ( ) const -> const Rml::Matrix4f&
inline

Definition at line 308 of file RmlUi_RenderInterface.h.

◆ init()

auto unravel::RmlUi_RenderInterface::init ( rtti::context & ctx) -> bool

Initialize the renderer with engine context.

Parameters
ctxEngine context for accessing graphics systems
Returns
True if initialization was successful

Definition at line 210 of file RmlUi_RenderInterface.cpp.

◆ LoadTexture()

auto unravel::RmlUi_RenderInterface::LoadTexture ( Rml::Vector2i & texture_dimensions,
const Rml::String & source ) -> Rml::TextureHandle
override

Definition at line 609 of file RmlUi_RenderInterface.cpp.

◆ operator bool()

unravel::RmlUi_RenderInterface::operator bool ( ) const
inlineexplicit

Returns true if the renderer was successfully constructed.

Definition at line 241 of file RmlUi_RenderInterface.h.

◆ PopLayer()

void unravel::RmlUi_RenderInterface::PopLayer ( )
override

Definition at line 915 of file RmlUi_RenderInterface.cpp.

◆ PushLayer()

auto unravel::RmlUi_RenderInterface::PushLayer ( ) -> Rml::LayerHandle
override

Definition at line 895 of file RmlUi_RenderInterface.cpp.

◆ ReleaseFilter()

void unravel::RmlUi_RenderInterface::ReleaseFilter ( Rml::CompiledFilterHandle filter)
override

Definition at line 1244 of file RmlUi_RenderInterface.cpp.

◆ ReleaseGeometry()

void unravel::RmlUi_RenderInterface::ReleaseGeometry ( Rml::CompiledGeometryHandle handle)
override

Definition at line 582 of file RmlUi_RenderInterface.cpp.

◆ ReleaseShader()

void unravel::RmlUi_RenderInterface::ReleaseShader ( Rml::CompiledShaderHandle effect_handle)
override

Definition at line 1520 of file RmlUi_RenderInterface.cpp.

◆ ReleaseTexture()

void unravel::RmlUi_RenderInterface::ReleaseTexture ( Rml::TextureHandle texture_handle)
override

Definition at line 716 of file RmlUi_RenderInterface.cpp.

◆ RenderGeometry()

void unravel::RmlUi_RenderInterface::RenderGeometry ( Rml::CompiledGeometryHandle handle,
Rml::Vector2f translation,
Rml::TextureHandle texture )
override

Definition at line 462 of file RmlUi_RenderInterface.cpp.

◆ RenderShader()

void unravel::RmlUi_RenderInterface::RenderShader ( Rml::CompiledShaderHandle shader_handle,
Rml::CompiledGeometryHandle geometry_handle,
Rml::Vector2f translation,
Rml::TextureHandle texture )
override

Definition at line 1361 of file RmlUi_RenderInterface.cpp.

◆ RenderToClipMask()

void unravel::RmlUi_RenderInterface::RenderToClipMask ( Rml::ClipMaskOperation mask_operation,
Rml::CompiledGeometryHandle geometry,
Rml::Vector2f translation )
override

Definition at line 771 of file RmlUi_RenderInterface.cpp.

◆ reset_program()

void unravel::RmlUi_RenderInterface::reset_program ( )

Definition at line 1540 of file RmlUi_RenderInterface.cpp.

◆ SaveLayerAsMaskImage()

auto unravel::RmlUi_RenderInterface::SaveLayerAsMaskImage ( ) -> Rml::CompiledFilterHandle
override

Definition at line 1050 of file RmlUi_RenderInterface.cpp.

◆ SaveLayerAsTexture()

auto unravel::RmlUi_RenderInterface::SaveLayerAsTexture ( ) -> Rml::TextureHandle
override

Definition at line 920 of file RmlUi_RenderInterface.cpp.

◆ set_viewport()

void unravel::RmlUi_RenderInterface::set_viewport ( int viewport_width,
int viewport_height,
int viewport_offset_x = 0,
int viewport_offset_y = 0 )

Set viewport dimensions.

Parameters
viewport_widthWidth in pixels
viewport_heightHeight in pixels
viewport_offset_xX offset (default 0)
viewport_offset_yY offset (default 0)

Definition at line 259 of file RmlUi_RenderInterface.cpp.

◆ SetScissor()

void unravel::RmlUi_RenderInterface::SetScissor ( Rml::Rectanglei region,
bool vertically_flip = false )

Definition at line 752 of file RmlUi_RenderInterface.cpp.

◆ SetScissorRegion()

void unravel::RmlUi_RenderInterface::SetScissorRegion ( Rml::Rectanglei region)
override

Definition at line 758 of file RmlUi_RenderInterface.cpp.

◆ SetTransform()

void unravel::RmlUi_RenderInterface::SetTransform ( const Rml::Matrix4f * new_transform)
override

Definition at line 885 of file RmlUi_RenderInterface.cpp.

◆ shutdown()

void unravel::RmlUi_RenderInterface::shutdown ( )

Cleanup renderer resources.

Definition at line 245 of file RmlUi_RenderInterface.cpp.

Member Data Documentation

◆ TextureEnableWithoutBinding

Rml::TextureHandle unravel::RmlUi_RenderInterface::TextureEnableWithoutBinding = Rml::TextureHandle(-1)
staticconstexpr

Definition at line 303 of file RmlUi_RenderInterface.h.

◆ TexturePostprocess

Rml::TextureHandle unravel::RmlUi_RenderInterface::TexturePostprocess = Rml::TextureHandle(-2)
staticconstexpr

Definition at line 304 of file RmlUi_RenderInterface.h.


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