Conquer Space 0.0.0
A space themed grand strategy game set in the near future, with realistic orbital mechanics, and an emphasis on economics and politics.
Classes | Public Member Functions | Static Public Attributes | Private Member Functions | Private Attributes | Static Private Attributes | List of all members
RenderInterface_GL3 Class Reference

#include <RmlUi_Renderer_GL3.h>

Inheritance diagram for RenderInterface_GL3:

Classes

struct  GLStateBackup
 
class  RenderLayerStack
 

Public Member Functions

 RenderInterface_GL3 ()
 
 ~RenderInterface_GL3 ()
 
 operator bool () const
 
void SetViewport (int viewport_width, int viewport_height)
 
void BeginFrame ()
 
void EndFrame ()
 
void Clear ()
 
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) 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_data, Rml::Vector2i source_dimensions) override
 
void ReleaseTexture (Rml::TextureHandle texture_handle) override
 
void EnableScissorRegion (bool enable) override
 
void SetScissorRegion (Rml::Rectanglei region) override
 
void EnableClipMask (bool enable) override
 
void RenderToClipMask (Rml::ClipMaskOperation mask_operation, Rml::CompiledGeometryHandle geometry, Rml::Vector2f translation) override
 
void SetTransform (const Rml::Matrix4f *transform) override
 
Rml::LayerHandle PushLayer () override
 
void CompositeLayers (Rml::LayerHandle source, Rml::LayerHandle destination, Rml::BlendMode blend_mode, Rml::Span< const Rml::CompiledFilterHandle > filters) override
 
void PopLayer () override
 
Rml::TextureHandle SaveLayerAsTexture () override
 
Rml::CompiledFilterHandle SaveLayerAsMaskImage () override
 
Rml::CompiledFilterHandle CompileFilter (const Rml::String &name, const Rml::Dictionary &parameters) override
 
void ReleaseFilter (Rml::CompiledFilterHandle filter) override
 
Rml::CompiledShaderHandle CompileShader (const Rml::String &name, const Rml::Dictionary &parameters) 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
 

Static Public Attributes

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

Private Member Functions

void UseProgram (ProgramId program_id)
 
int GetUniformLocation (UniformId uniform_id) const
 
void SubmitTransformUniform (Rml::Vector2f translation)
 
void BlitLayerToPostprocessPrimary (Rml::LayerHandle layer_handle)
 
void RenderFilters (Rml::Span< const Rml::CompiledFilterHandle > filter_handles)
 
void SetScissor (Rml::Rectanglei region, bool vertically_flip=false)
 
void DrawFullscreenQuad ()
 
void DrawFullscreenQuad (Rml::Vector2f uv_offset, Rml::Vector2f uv_scaling=Rml::Vector2f(1.f))
 
void RenderBlur (float sigma, const Gfx::FramebufferData &source_destination, const Gfx::FramebufferData &temp, Rml::Rectanglei window_flipped)
 

Private Attributes

std::bitset< MaxNumProgramsprogram_transform_dirty
 
Rml::Matrix4f transform
 
Rml::Matrix4f projection
 
ProgramId active_program = {}
 
Rml::Rectanglei scissor_state
 
int viewport_width = 0
 
int viewport_height = 0
 
Rml::CompiledGeometryHandle fullscreen_quad_geometry = {}
 
Rml::UniquePtr< const Gfx::ProgramDataprogram_data
 
RenderLayerStack render_layers
 
GLStateBackup glstate_backup = {}
 

Static Private Attributes

static constexpr size_t MaxNumPrograms = 32
 

Constructor & Destructor Documentation

◆ RenderInterface_GL3()

RenderInterface_GL3::RenderInterface_GL3 ( )

◆ ~RenderInterface_GL3()

RenderInterface_GL3::~RenderInterface_GL3 ( )

Member Function Documentation

◆ BeginFrame()

void RenderInterface_GL3::BeginFrame ( )

◆ BlitLayerToPostprocessPrimary()

void RenderInterface_GL3::BlitLayerToPostprocessPrimary ( Rml::LayerHandle  layer_handle)
private

◆ Clear()

void RenderInterface_GL3::Clear ( )

◆ CompileFilter()

Rml::CompiledFilterHandle RenderInterface_GL3::CompileFilter ( const Rml::String &  name,
const Rml::Dictionary &  parameters 
)
override

◆ CompileGeometry()

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

◆ CompileShader()

Rml::CompiledShaderHandle RenderInterface_GL3::CompileShader ( const Rml::String &  name,
const Rml::Dictionary &  parameters 
)
override

◆ CompositeLayers()

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

◆ DrawFullscreenQuad() [1/2]

void RenderInterface_GL3::DrawFullscreenQuad ( )
private

◆ DrawFullscreenQuad() [2/2]

void RenderInterface_GL3::DrawFullscreenQuad ( Rml::Vector2f  uv_offset,
Rml::Vector2f  uv_scaling = Rml::Vector2f(1.f) 
)
private

◆ EnableClipMask()

void RenderInterface_GL3::EnableClipMask ( bool  enable)
override

◆ EnableScissorRegion()

void RenderInterface_GL3::EnableScissorRegion ( bool  enable)
override

◆ EndFrame()

void RenderInterface_GL3::EndFrame ( )

◆ GenerateTexture()

Rml::TextureHandle RenderInterface_GL3::GenerateTexture ( Rml::Span< const Rml::byte >  source_data,
Rml::Vector2i  source_dimensions 
)
override

◆ GetUniformLocation()

int RenderInterface_GL3::GetUniformLocation ( UniformId  uniform_id) const
private

◆ LoadTexture()

Rml::TextureHandle RenderInterface_GL3::LoadTexture ( Rml::Vector2i &  texture_dimensions,
const Rml::String &  source 
)
override

◆ operator bool()

RenderInterface_GL3::operator bool ( ) const
inlineexplicit

◆ PopLayer()

void RenderInterface_GL3::PopLayer ( )
override

◆ PushLayer()

Rml::LayerHandle RenderInterface_GL3::PushLayer ( )
override

◆ ReleaseFilter()

void RenderInterface_GL3::ReleaseFilter ( Rml::CompiledFilterHandle  filter)
override

◆ ReleaseGeometry()

void RenderInterface_GL3::ReleaseGeometry ( Rml::CompiledGeometryHandle  handle)
override

◆ ReleaseShader()

void RenderInterface_GL3::ReleaseShader ( Rml::CompiledShaderHandle  effect_handle)
override

◆ ReleaseTexture()

void RenderInterface_GL3::ReleaseTexture ( Rml::TextureHandle  texture_handle)
override

◆ RenderBlur()

void RenderInterface_GL3::RenderBlur ( float  sigma,
const Gfx::FramebufferData source_destination,
const Gfx::FramebufferData temp,
Rml::Rectanglei  window_flipped 
)
private

◆ RenderFilters()

void RenderInterface_GL3::RenderFilters ( Rml::Span< const Rml::CompiledFilterHandle >  filter_handles)
private

◆ RenderGeometry()

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

◆ RenderShader()

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

◆ RenderToClipMask()

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

◆ SaveLayerAsMaskImage()

Rml::CompiledFilterHandle RenderInterface_GL3::SaveLayerAsMaskImage ( )
override

◆ SaveLayerAsTexture()

Rml::TextureHandle RenderInterface_GL3::SaveLayerAsTexture ( )
override

◆ SetScissor()

void RenderInterface_GL3::SetScissor ( Rml::Rectanglei  region,
bool  vertically_flip = false 
)
private

◆ SetScissorRegion()

void RenderInterface_GL3::SetScissorRegion ( Rml::Rectanglei  region)
override

◆ SetTransform()

void RenderInterface_GL3::SetTransform ( const Rml::Matrix4f *  transform)
override

◆ SetViewport()

void RenderInterface_GL3::SetViewport ( int  viewport_width,
int  viewport_height 
)

◆ SubmitTransformUniform()

void RenderInterface_GL3::SubmitTransformUniform ( Rml::Vector2f  translation)
private

◆ UseProgram()

void RenderInterface_GL3::UseProgram ( ProgramId  program_id)
private

Member Data Documentation

◆ active_program

ProgramId RenderInterface_GL3::active_program = {}
private

◆ fullscreen_quad_geometry

Rml::CompiledGeometryHandle RenderInterface_GL3::fullscreen_quad_geometry = {}
private

◆ glstate_backup

GLStateBackup RenderInterface_GL3::glstate_backup = {}
private

◆ MaxNumPrograms

constexpr size_t RenderInterface_GL3::MaxNumPrograms = 32
staticconstexprprivate

◆ program_data

Rml::UniquePtr<const Gfx::ProgramData> RenderInterface_GL3::program_data
private

◆ program_transform_dirty

std::bitset<MaxNumPrograms> RenderInterface_GL3::program_transform_dirty
private

◆ projection

Rml::Matrix4f RenderInterface_GL3::projection
private

◆ render_layers

RenderLayerStack RenderInterface_GL3::render_layers
private

◆ scissor_state

Rml::Rectanglei RenderInterface_GL3::scissor_state
private

◆ TextureEnableWithoutBinding

constexpr Rml::TextureHandle RenderInterface_GL3::TextureEnableWithoutBinding = Rml::TextureHandle(-1)
staticconstexpr

◆ TexturePostprocess

constexpr Rml::TextureHandle RenderInterface_GL3::TexturePostprocess = Rml::TextureHandle(-2)
staticconstexpr

◆ transform

Rml::Matrix4f RenderInterface_GL3::transform
private

◆ viewport_height

int RenderInterface_GL3::viewport_height = 0
private

◆ viewport_width

int RenderInterface_GL3::viewport_width = 0
private

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