Vital
Loading...
Searching...
No Matches
OpenGlImage Class Reference

A utility class for rendering a single image using OpenGL. More...

#include <open_gl_image.h>

Public Member Functions

 OpenGlImage ()
 Constructs an OpenGlImage with default settings.
 
virtual ~OpenGlImage ()
 Destructor.
 
void init (OpenGlWrapper &open_gl)
 Initializes the OpenGL buffers and shader attributes needed for rendering the image.
 
void drawImage (OpenGlWrapper &open_gl)
 Draws the image to the current OpenGL context.
 
void destroy (OpenGlWrapper &open_gl)
 Releases any OpenGL resources allocated by this object.
 
void lock ()
 Locks the internal mutex for thread-safe operations.
 
void unlock ()
 Unlocks the mutex previously locked with lock().
 
void setOwnImage (Image &image)
 Sets the image from an owned copy.
 
void setImage (Image *image)
 Sets the image to render without taking ownership.
 
void setColor (Colour color)
 Sets the color tint applied to the image.
 
void setPosition (float x, float y, int index)
 Sets a specific vertex position by index.
 
void setTopLeft (float x, float y)
 Sets the top-left corner position of the image quad.
 
void setBottomLeft (float x, float y)
 Sets the bottom-left corner position of the image quad.
 
void setBottomRight (float x, float y)
 Sets the bottom-right corner position of the image quad.
 
void setTopRight (float x, float y)
 Sets the top-right corner position of the image quad.
 
int getImageWidth ()
 Gets the width of the currently set image.
 
int getImageHeight ()
 Gets the height of the currently set image.
 
void setAdditive (bool additive)
 Enables or disables additive blending mode.
 
void setUseAlpha (bool use_alpha)
 Enables or disables alpha blending.
 
void setScissor (bool scissor)
 Enables or disables scissor test when drawing the image.
 

Detailed Description

A utility class for rendering a single image using OpenGL.

The OpenGlImage class manages loading an Image into an OpenGL texture and provides methods for drawing that image in a specified position using OpenGL. It supports thread-safe image updates and can apply various blending modes.

Constructor & Destructor Documentation

◆ OpenGlImage()

OpenGlImage::OpenGlImage ( )

Constructs an OpenGlImage with default settings.

◆ ~OpenGlImage()

OpenGlImage::~OpenGlImage ( )
virtual

Destructor.

Ensures that OpenGL resources are properly released if still allocated.

Member Function Documentation

◆ destroy()

void OpenGlImage::destroy ( OpenGlWrapper & open_gl)

Releases any OpenGL resources allocated by this object.

Parameters
open_glThe OpenGlWrapper that provides the OpenGL context.

◆ drawImage()

void OpenGlImage::drawImage ( OpenGlWrapper & open_gl)

Draws the image to the current OpenGL context.

Parameters
open_glThe OpenGlWrapper that provides the OpenGL context.

The image is drawn using the currently set vertex positions, color, and blending mode. If a new image was provided, it will load it before drawing.

◆ getImageHeight()

int OpenGlImage::getImageHeight ( )
inline

Gets the height of the currently set image.

Returns
The image height in pixels.

◆ getImageWidth()

int OpenGlImage::getImageWidth ( )
inline

Gets the width of the currently set image.

Returns
The image width in pixels.

◆ init()

void OpenGlImage::init ( OpenGlWrapper & open_gl)

Initializes the OpenGL buffers and shader attributes needed for rendering the image.

Parameters
open_glThe OpenGlWrapper that provides the OpenGL context and shaders.

◆ lock()

void OpenGlImage::lock ( )
inline

Locks the internal mutex for thread-safe operations.

Call unlock() to release the lock.

◆ setAdditive()

void OpenGlImage::setAdditive ( bool additive)
inline

Enables or disables additive blending mode.

Parameters
additiveTrue for additive blending, false for normal blending.

◆ setBottomLeft()

void OpenGlImage::setBottomLeft ( float x,
float y )
inline

Sets the bottom-left corner position of the image quad.

◆ setBottomRight()

void OpenGlImage::setBottomRight ( float x,
float y )
inline

Sets the bottom-right corner position of the image quad.

◆ setColor()

void OpenGlImage::setColor ( Colour color)
inline

Sets the color tint applied to the image.

Parameters
colorThe tint color.

◆ setImage()

void OpenGlImage::setImage ( Image * image)
inline

Sets the image to render without taking ownership.

Parameters
imagePointer to an Image, must remain valid during the usage.

No copy is made. The provided image must remain valid while this object uses it.

◆ setOwnImage()

void OpenGlImage::setOwnImage ( Image & image)
inline

Sets the image from an owned copy.

Parameters
imageThe image to copy and use internally.

A copy of the image is made and stored internally. This is thread-safe.

◆ setPosition()

void OpenGlImage::setPosition ( float x,
float y,
int index )
inline

Sets a specific vertex position by index.

Parameters
xThe x-coordinate in normalized device space.
yThe y-coordinate in normalized device space.
indexThe starting index in the position vertex array (0, 4, 8, 12).

◆ setScissor()

void OpenGlImage::setScissor ( bool scissor)
inline

Enables or disables scissor test when drawing the image.

Parameters
scissorTrue to enable scissor test, false to disable.

◆ setTopLeft()

void OpenGlImage::setTopLeft ( float x,
float y )
inline

Sets the top-left corner position of the image quad.

Parameters
xThe x-coordinate in normalized device space.
yThe y-coordinate in normalized device space.

◆ setTopRight()

void OpenGlImage::setTopRight ( float x,
float y )
inline

Sets the top-right corner position of the image quad.

◆ setUseAlpha()

void OpenGlImage::setUseAlpha ( bool use_alpha)
inline

Enables or disables alpha blending.

Parameters
use_alphaTrue to respect image alpha, false to ignore it.

◆ unlock()

void OpenGlImage::unlock ( )
inline

Unlocks the mutex previously locked with lock().


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