|
| OffOverlay () |
|
void | paintBackground (Graphics &g) override |
| Paints a standard background for the component.
|
|
| OpenGlQuad (Shaders::FragmentShader shader) |
| Constructs a single quad with a given fragment shader.
|
|
| OpenGlMultiQuad (int max_quads, Shaders::FragmentShader shader=Shaders::kColorFragment) |
| Constructs an OpenGlMultiQuad with a given maximum number of quads.
|
|
virtual | ~OpenGlMultiQuad () |
| Destructor. Frees any allocated OpenGL resources.
|
|
virtual void | init (OpenGlWrapper &open_gl) override |
| Initializes OpenGL buffers and shader attributes.
|
|
virtual void | render (OpenGlWrapper &open_gl, bool animate) override |
| Renders the quads using OpenGL.
|
|
virtual void | destroy (OpenGlWrapper &open_gl) override |
| Releases OpenGL resources when the component is destroyed.
|
|
void | paintBackground (Graphics &g) override |
| Suppresses background painting; rendering is handled by OpenGL.
|
|
void | resized () override |
| Called when the component is resized. Marks data as dirty to recalculate positions if needed.
|
|
void | markDirty () |
| Marks all vertex data as dirty, prompting a refresh on the next render.
|
|
void | setFragmentShader (Shaders::FragmentShader shader) |
| Sets the fragment shader used to render the quads.
|
|
void | setNumQuads (int num_quads) |
| Sets how many quads will actually be drawn (up to max_quads).
|
|
force_inline void | setColor (Colour color) |
| Sets the base color for the quads.
|
|
force_inline Colour | getColor () |
| Gets the current base color.
|
|
force_inline void | setAltColor (Colour color) |
| Sets an alternate color, often used by custom shaders.
|
|
force_inline void | setModColor (Colour color) |
| Sets a modulation color for custom effects in the shader.
|
|
force_inline void | setThumbColor (Colour color) |
| Sets a "thumb" color, potentially for scroll bars or similar widgets.
|
|
force_inline void | setThumbAmount (float amount) |
| Sets the amount of thumb exposure (used in certain shader effects).
|
|
force_inline void | setStartPos (float pos) |
| Sets a starting position used by some shaders (e.g., arc start).
|
|
force_inline void | setMaxArc (float max_arc) |
| Sets the maximum arc angle or similar parameter used by some shaders.
|
|
force_inline float | getMaxArc () |
| Gets the current maximum arc value.
|
|
force_inline float | getQuadX (int i) const |
| Gets the x-position of a specified quad.
|
|
force_inline float | getQuadY (int i) const |
| Gets the y-position of a specified quad.
|
|
force_inline float | getQuadWidth (int i) const |
| Gets the width of the specified quad.
|
|
force_inline float | getQuadHeight (int i) const |
| Gets the height of the specified quad.
|
|
float * | getVerticesData (int i) |
| Gets a pointer to the vertex data for a given quad.
|
|
void | setRotatedCoordinates (int i, float x, float y, float w, float h) |
| Sets rotated coordinates for a quad, adjusting its texture mapping.
|
|
void | setCoordinates (int i, float x, float y, float w, float h) |
| Sets coordinates for a quad in normalized device space.
|
|
void | setShaderValue (int i, float shader_value, int value_index=0) |
| Sets a shader value for all four vertices of a quad.
|
|
void | setDimensions (int i, float quad_width, float quad_height, float full_width, float full_height) |
| Sets dimensions for a quad, typically to scale based on component size.
|
|
void | setQuadHorizontal (int i, float x, float w) |
| Sets horizontal position and width for a quad.
|
|
void | setQuadVertical (int i, float y, float h) |
| Sets vertical position and height for a quad.
|
|
void | setQuad (int i, float x, float y, float w, float h) |
| Sets the position and size of a quad in normalized device space.
|
|
void | setActive (bool active) |
| Activates or deactivates rendering of this component.
|
|
void | setThickness (float thickness, bool reset=false) |
| Sets the thickness used by some shaders and can reset to this thickness.
|
|
void | setRounding (float rounding) |
| Sets the rounding radius of the quads.
|
|
void | setTargetComponent (Component *target_component) |
| Sets a target component to help position the quads.
|
|
void | setScissorComponent (Component *scissor_component) |
| Sets a component for scissoring (clipping) rendering area.
|
|
OpenGLShaderProgram * | shader () |
| Gets the current OpenGL shader program.
|
|
void | setAdditive (bool additive) |
| Enables or disables additive blending for rendering.
|
|
void | setAlpha (float alpha, bool reset=false) |
| Sets the alpha blending multiplier, can reset to this alpha.
|
|
void | setDrawWhenNotVisible (bool draw) |
| Sets whether to draw even if the component is not visible.
|
|
| 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.
|
|
static constexpr int | kNumVertices = 4 |
| Number of vertices per quad.
|
|
static constexpr int | kNumFloatsPerVertex = 10 |
| Number of floats per vertex (x, y, w, h, plus custom shader values).
|
|
static constexpr int | kNumFloatsPerQuad = kNumVertices * kNumFloatsPerVertex |
| Number of floats total per quad (4 vertices * 10 floats each).
|
|
static constexpr int | kNumIndicesPerQuad = 6 |
| Number of indices per quad (2 triangles forming a rectangle).
|
|
static constexpr float | kThicknessDecay = 0.4f |
| Decay factor for thickness adjustments over time.
|
|
static constexpr float | kAlphaInc = 0.2f |
| Increment for alpha blending adjustments.
|
|
bool | setViewPort (OpenGlWrapper &open_gl) |
| Sets the viewport for this component using the current OpenGlWrapper.
|
|
Component * | target_component_ |
| The component this relates to for sizing/positioning.
|
|
Component * | scissor_component_ |
| The component used for scissoring (clipping).
|
|
Shaders::FragmentShader | fragment_shader_ |
| The fragment shader used for rendering.
|
|
int | max_quads_ |
| Maximum number of quads.
|
|
int | num_quads_ |
| Current number of quads to draw.
|
|
bool | draw_when_not_visible_ |
| If true, draw even if the component is not visible.
|
|
bool | active_ |
| If false, nothing is rendered.
|
|
bool | dirty_ |
| If true, vertex data is dirty and needs re-upload.
|
|
Colour | color_ |
| Base color tint.
|
|
Colour | alt_color_ |
| Alternate color for shader use.
|
|
Colour | mod_color_ |
| Modulation color for shader.
|
|
Colour | thumb_color_ |
| Color for a "thumb" element (e.g., in a slider).
|
|
float | max_arc_ |
| Maximum arc for certain shader effects.
|
|
float | thumb_amount_ |
| Amount parameter for thumb effects.
|
|
float | start_pos_ |
| Start position parameter for shader effects.
|
|
float | current_alpha_mult_ |
| Current alpha multiplier for gradual changes.
|
|
float | alpha_mult_ |
| Target alpha multiplier.
|
|
bool | additive_blending_ |
| Use additive blending if true.
|
|
float | current_thickness_ |
| Current thickness for gradual changes.
|
|
float | thickness_ |
| Target thickness.
|
|
float | rounding_ |
| Rounding radius for corners.
|
|
std::unique_ptr< float[]> | data_ |
| Vertex data for all quads.
|
|
std::unique_ptr< int[]> | indices_ |
| Index data for drawing quads.
|
|
OpenGLShaderProgram * | shader_ |
|
std::unique_ptr< OpenGLShaderProgram::Uniform > | color_uniform_ |
|
std::unique_ptr< OpenGLShaderProgram::Uniform > | alt_color_uniform_ |
|
std::unique_ptr< OpenGLShaderProgram::Uniform > | mod_color_uniform_ |
|
std::unique_ptr< OpenGLShaderProgram::Uniform > | background_color_uniform_ |
|
std::unique_ptr< OpenGLShaderProgram::Uniform > | thumb_color_uniform_ |
|
std::unique_ptr< OpenGLShaderProgram::Uniform > | thickness_uniform_ |
|
std::unique_ptr< OpenGLShaderProgram::Uniform > | rounding_uniform_ |
|
std::unique_ptr< OpenGLShaderProgram::Uniform > | max_arc_uniform_ |
|
std::unique_ptr< OpenGLShaderProgram::Uniform > | thumb_amount_uniform_ |
|
std::unique_ptr< OpenGLShaderProgram::Uniform > | start_pos_uniform_ |
|
std::unique_ptr< OpenGLShaderProgram::Uniform > | alpha_mult_uniform_ |
|
std::unique_ptr< OpenGLShaderProgram::Attribute > | position_ |
|
std::unique_ptr< OpenGLShaderProgram::Attribute > | dimensions_ |
|
std::unique_ptr< OpenGLShaderProgram::Attribute > | coordinates_ |
|
std::unique_ptr< OpenGLShaderProgram::Attribute > | shader_values_ |
|
GLuint | vertex_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.
|
|
A semi-transparent overlay shown when the section is inactive.