|
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. | |
Public Member Functions inherited from OpenGlComponent | |
| 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. | |
Protected Member Functions inherited from OpenGlComponent | |
| 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. | |
Protected Attributes inherited from OpenGlComponent | |
| 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 Public Member Functions inherited from OpenGlComponent | |
| 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.