Vital
|
A component that renders a full-screen overlay background using OpenGL. More...
#include <overlay.h>
Public Member Functions | |
OverlayBackgroundRenderer () | |
Constructs an OverlayBackgroundRenderer with default settings. | |
virtual | ~OverlayBackgroundRenderer () |
Destructor. | |
virtual void | init (OpenGlWrapper &open_gl) override |
Initializes the OpenGL shader and buffers. | |
virtual void | render (OpenGlWrapper &open_gl, bool animate) override |
Renders the overlay using OpenGL. | |
void | paintBackground (Graphics &g) override |
This overlay does not paint a background using JUCE's Graphics. | |
virtual void | destroy (OpenGlWrapper &open_gl) override |
Destroys OpenGL resources allocated for this overlay. | |
void | setColor (const Colour &color) |
Sets the overlay color. | |
force_inline void | setAdditiveBlending (bool additive_blending) |
Enables or disables additive blending. | |
![]() | |
OpenGlComponent (String name="") | |
Constructs an OpenGlComponent. | |
virtual | ~OpenGlComponent () |
Destructor. | |
virtual void | resized () override |
Called when the component is resized. | |
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 Public Attributes | |
static constexpr int | kNumVertices = 4 |
Number of vertices for the overlay quad. | |
static constexpr int | kNumFloatsPerVertex = 2 |
Floats per vertex (x and y). | |
static constexpr int | kTotalFloats = kNumVertices * kNumFloatsPerVertex |
Total floats for the quad (4 vertices * 2 floats). | |
static constexpr int | kIndices = 6 |
Number of indices (2 triangles * 3 indices). | |
Protected Member Functions | |
void | drawOverlay (OpenGlWrapper &open_gl) |
Draws the overlay quad. | |
![]() | |
bool | setViewPort (OpenGlWrapper &open_gl) |
Sets the viewport for this component using the current OpenGlWrapper. | |
Protected Attributes | |
OpenGLShaderProgram * | shader_ |
Shader program used for overlay drawing. | |
std::unique_ptr< OpenGLShaderProgram::Uniform > | color_uniform_ |
Uniform for overlay color. | |
std::unique_ptr< OpenGLShaderProgram::Attribute > | position_ |
Attribute for vertex positions. | |
Colour | color_ |
The overlay color. | |
bool | additive_blending_ |
Whether additive blending is enabled. | |
float | data_ [kTotalFloats] |
Vertex data for the overlay quad. | |
int | indices_ [kIndices] |
Index data for the overlay quad. | |
GLuint | data_buffer_ |
OpenGL buffer for vertex data. | |
GLuint | indices_buffer_ |
OpenGL buffer for index data. | |
![]() | |
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. | |
Additional Inherited Members | |
![]() | |
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. | |
A component that renders a full-screen overlay background using OpenGL.
The OverlayBackgroundRenderer draws a simple rectangular overlay covering its bounds, using a specified color and optional additive blending. It's designed to be used as the background layer for overlay components.
|
inline |
Constructs an OverlayBackgroundRenderer with default settings.
|
inlinevirtual |
Destructor.
|
inlineoverridevirtual |
Destroys OpenGL resources allocated for this overlay.
open_gl | The OpenGlWrapper with the OpenGL context. |
Reimplemented from OpenGlComponent.
|
inlineprotected |
Draws the overlay quad.
open_gl | The OpenGlWrapper with the current OpenGL context. |
|
inlineoverridevirtual |
Initializes the OpenGL shader and buffers.
open_gl | The OpenGlWrapper providing the current OpenGL context. |
Reimplemented from OpenGlComponent.
|
inlineoverridevirtual |
This overlay does not paint a background using JUCE's Graphics.
g | The graphics context. |
Reimplemented from OpenGlComponent.
|
inlineoverridevirtual |
Renders the overlay using OpenGL.
open_gl | The OpenGlWrapper with the current OpenGL context. |
animate | Whether animations are enabled (not typically needed for a static overlay). |
Implements OpenGlComponent.
|
inline |
Enables or disables additive blending.
additive_blending | True for additive blending, false for normal blending. |
|
inline |
Sets the overlay color.
color | The new overlay color. |
|
protected |
Whether additive blending is enabled.
|
protected |
The overlay color.
|
protected |
Uniform for overlay color.
|
protected |
Vertex data for the overlay quad.
|
protected |
OpenGL buffer for vertex data.
|
protected |
Index data for the overlay quad.
|
protected |
OpenGL buffer for index data.
|
staticconstexpr |
Number of indices (2 triangles * 3 indices).
|
staticconstexpr |
Floats per vertex (x and y).
|
staticconstexpr |
Number of vertices for the overlay quad.
|
staticconstexpr |
Total floats for the quad (4 vertices * 2 floats).
|
protected |
Attribute for vertex positions.
|
protected |
Shader program used for overlay drawing.