lmgl 1.0.0
A lightweight OpenGL graphics engine library written in C++
Loading...
Searching...
No Matches
lmgl::ui::Image Class Reference

Image UI element for rendering textures. More...

#include <image.hpp>

Inheritance diagram for lmgl::ui::Image:
lmgl::ui::UIElement

Public Member Functions

 Image (const std::string &name="Image")
 Constructor for Image.
 ~Image () override=default
 Destructor for Image.
void set_texture (std::shared_ptr< renderer::Texture > texture)
 Set the texture to display.
std::shared_ptr< renderer::Textureget_texture () const
 Get the current texture.
void set_tint (const glm::vec4 &color)
 Set the tint color for the image.
const glm::vec4 & get_tint () const
 Get the tint color.
void render (float canvas_width, float canvas_height, const glm::mat4 &projection) override
 Render the image.
Public Member Functions inherited from lmgl::ui::UIElement
 UIElement (const std::string &name="UIElement")
 Constructor for UIElement.
virtual ~UIElement ()=default
 Virtual destructor.
void set_position (const glm::vec2 &position)
 Set the position of the UI element.
void set_size (const glm::vec2 &size)
 Set the size of the UI element.
void set_anchor (Anchor anchor)
 Set the anchor of the UI element.
void set_render_order (int order)
 Set the render order (z-index).
void set_visible (bool visible)
 Set visibility of the UI element.
void set_name (const std::string &name)
 Set the name of the UI element.
const glm::vec2 & get_position () const
 Get the position of the UI element.
const glm::vec2 & get_size () const
 Get the size of the UI element.
Anchor get_anchor () const
 Get the anchor of the UI element.
int get_render_order () const
 Get the render order.
bool is_visible () const
 Check if the UI element is visible.
const std::string & get_name () const
 Get the name of the UI element.
std::shared_ptr< UIElementget_parent () const
 Get the parent UI element.
void add_child (const std::shared_ptr< UIElement > child)
 Add a child UI element.
void remove_child (const std::shared_ptr< UIElement > child)
 Remove a child UI element.
std::vector< std::shared_ptr< UIElement > > get_children () const
 Get all child UI elements.
glm::vec2 get_absolute_position (float canvas_width, float canvas_height) const
 Compute the absolute screen position based on anchor and parent.

Additional Inherited Members

Protected Attributes inherited from lmgl::ui::UIElement
std::string m_name
 Name of the UI element.
glm::vec2 m_position {0.0f, 0.0f}
 Position in pixels (relative to anchor).
glm::vec2 m_size {100.0f, 100.0f}
 Size in pixels.
Anchor m_anchor {Anchor::TopLeft}
 Anchor preset.
int m_render_order {0}
 Render order (z-index).
bool m_visible {true}
 Visibility flag.
std::weak_ptr< UIElementm_parent
 Parent UI element.
std::vector< std::shared_ptr< UIElement > > m_children
 Child UI elements.

Detailed Description

Image UI element for rendering textures.

The Image class displays a texture on a rectangle with optional tint color and transparency support.

Constructor & Destructor Documentation

◆ Image()

lmgl::ui::Image::Image ( const std::string & name = "Image")

Constructor for Image.

Parameters
nameOptional name for the image.

Member Function Documentation

◆ get_texture()

std::shared_ptr< renderer::Texture > lmgl::ui::Image::get_texture ( ) const
inline

Get the current texture.

Returns
Shared pointer to the texture.

◆ get_tint()

const glm::vec4 & lmgl::ui::Image::get_tint ( ) const
inline

Get the tint color.

Returns
RGBA tint color.

◆ render()

void lmgl::ui::Image::render ( float canvas_width,
float canvas_height,
const glm::mat4 & projection )
overridevirtual

Render the image.

Parameters
canvas_widthWidth of the canvas in pixels.
canvas_heightHeight of the canvas in pixels.
projectionProjection matrix for UI rendering.

Implements lmgl::ui::UIElement.

◆ set_texture()

void lmgl::ui::Image::set_texture ( std::shared_ptr< renderer::Texture > texture)
inline

Set the texture to display.

Parameters
textureShared pointer to the texture.

◆ set_tint()

void lmgl::ui::Image::set_tint ( const glm::vec4 & color)
inline

Set the tint color for the image.

Parameters
colorRGBA color to tint the texture (values 0.0-1.0).

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