|
| OpenGlMultiImage (int max_images) |
| Constructs an OpenGlMultiImage with a given maximum number of quads.
|
|
virtual | ~OpenGlMultiImage () |
| Destructor. Frees any allocated OpenGL resources.
|
|
virtual void | init (OpenGlWrapper &open_gl) override |
| Initializes OpenGL buffers and shader attributes for rendering.
|
|
virtual void | render (OpenGlWrapper &open_gl, bool animate) override |
| Renders the set of image quads using OpenGL.
|
|
virtual void | destroy (OpenGlWrapper &open_gl) override |
| Destroys the OpenGL resources used by this class.
|
|
void | paintBackground (Graphics &g) override |
| Override to suppress default background painting.
|
|
void | resized () override |
| Called when the component is resized, marks vertex data as dirty to recalculate.
|
|
void | lock () |
| Locks the internal mutex for thread-safe image updates.
|
|
void | unlock () |
| Unlocks the mutex locked by lock().
|
|
void | setOwnImage (Image &image) |
| Sets an owned image by making a copy and uses it for rendering.
|
|
void | setImage (Image *image) |
| Sets the image to render without ownership.
|
|
void | setNumQuads (int num_quads) |
| Sets the number of quads currently drawn.
|
|
void | setColor (Colour color) |
| Sets the color tint applied to all image quads.
|
|
void | setQuad (int i, float x, float y, float w, float h) |
| Sets the position and size of a quad.
|
|
int | getImageWidth () |
| Gets the width of the current image.
|
|
int | getImageHeight () |
| Gets the height of the current image.
|
|
void | setAdditive (bool additive) |
| Enables or disables additive blending for the image quads.
|
|
| OpenGlComponent (String name="") |
| Constructs an OpenGlComponent.
|
|
virtual | ~OpenGlComponent () |
| Destructor.
|
|
virtual void | parentHierarchyChanged () override |
| Called when the component's parent hierarchy changes.
|
|
void | addRoundedCorners () |
| Adds rounded corners to the component's edges.
|
|
void | addBottomRoundedCorners () |
| Adds rounded corners only at the bottom of the component.
|
|
void | renderCorners (OpenGlWrapper &open_gl, bool animate, Colour color, float rounding) |
| Renders the corner shapes using the given color and rounding amount.
|
|
void | renderCorners (OpenGlWrapper &open_gl, bool animate) |
| Renders corners with default body color and rounding.
|
|
void | repaintBackground () |
| Requests a repaint of the component's background on the OpenGL layer.
|
|
Colour | getBodyColor () const |
| Retrieves the component's body color.
|
|
void | setParent (const SynthSection *parent) |
| Sets a pointer to the parent SynthSection for skin value lookups.
|
|
float | findValue (Skin::ValueId value_id) |
| Finds a float value from the skin associated with this component's parent.
|
|
void | setSkinValues (const Skin &skin) |
| Applies the skin overrides to this component's colors.
|
|
void | setSkinOverride (Skin::SectionOverride skin_override) |
| Sets a skin override to control the component's color scheme.
|
|
force_inline void | checkGlError () |
| Checks for and asserts that there are no OpenGL errors.
|
|
void | setBackgroundColor (const Colour &color) |
| Sets the background color of the component for painting operations.
|
|
|
static bool | setViewPort (Component *component, Rectangle< int > bounds, OpenGlWrapper &open_gl) |
| Sets the OpenGL viewport to match a specified rectangle within a component.
|
|
static bool | setViewPort (Component *component, OpenGlWrapper &open_gl) |
| Convenience overload that sets the viewport for the entire component's local bounds.
|
|
static void | setScissor (Component *component, OpenGlWrapper &open_gl) |
| Sets the OpenGL scissor region to the entire component's local bounds.
|
|
static void | setScissorBounds (Component *component, Rectangle< int > bounds, OpenGlWrapper &open_gl) |
| Sets the OpenGL scissor region to a specified rectangle within a component.
|
|
static std::unique_ptr< OpenGLShaderProgram::Uniform > | getUniform (const OpenGlWrapper &open_gl, const OpenGLShaderProgram &program, const char *name) |
| Retrieves a uniform from the shader program if it exists.
|
|
static std::unique_ptr< OpenGLShaderProgram::Attribute > | getAttribute (const OpenGlWrapper &open_gl, const OpenGLShaderProgram &program, const char *name) |
| Retrieves an attribute from the shader program if it exists.
|
|
static String | translateFragmentShader (const String &code) |
| Translates a fragment shader code snippet to be compatible with the current GL version.
|
|
static String | translateVertexShader (const String &code) |
| Translates a vertex shader code snippet to be compatible with the current GL version.
|
|
bool | setViewPort (OpenGlWrapper &open_gl) |
| Sets the viewport for this component using the current OpenGlWrapper.
|
|
std::unique_ptr< OpenGlCorners > | corners_ |
| Optional corners for rounded edges.
|
|
bool | only_bottom_corners_ |
| Flag to round only the bottom corners.
|
|
Colour | background_color_ |
| The background color of the component.
|
|
Colour | body_color_ |
| The body color of the component.
|
|
const SynthSection * | parent_ |
| Pointer to parent SynthSection for skin lookups.
|
|
Skin::SectionOverride | skin_override_ |
| Skin override for custom appearance.
|
|
const vital::StatusOutput * | num_voices_readout_ |
| StatusOutput for voice count lookups.
|
|
A component for rendering multiple image quads using OpenGL.
The OpenGlMultiImage class manages a set of quads, each displaying a portion (or the entirety) of a single image texture. It supports drawing a configurable number of these image quads at once, each positioned and sized independently. This enables rendering multiple image instances efficiently with a single texture.