A component for rendering lines with optional filling and boost effects using OpenGL.  
 More...
 | 
|   | OpenGlLineRenderer (int num_points, bool loop=false) | 
|   | Constructs an OpenGlLineRenderer for a given number of points.  
  | 
|   | 
| virtual  | ~OpenGlLineRenderer () | 
|   | Destructor.  
  | 
|   | 
| virtual void  | init (OpenGlWrapper &open_gl) override | 
|   | Initializes OpenGL resources for rendering the line.  
  | 
|   | 
| virtual void  | render (OpenGlWrapper &open_gl, bool animate) override | 
|   | Renders the line using OpenGL.  
  | 
|   | 
| virtual void  | destroy (OpenGlWrapper &open_gl) override | 
|   | Destroys OpenGL resources allocated by this line renderer.  
  | 
|   | 
| force_inline void  | setColor (Colour color) | 
|   | Sets the line color.  
  | 
|   | 
| force_inline void  | setLineWidth (float width) | 
|   | Sets the line width in pixels.  
  | 
|   | 
| force_inline void  | setBoost (float boost) | 
|   | Sets a global boost value affecting line thickness.  
  | 
|   | 
| force_inline float  | boostLeftAt (int index) const | 
|   | Gets the left-side boost at a given point index.  
  | 
|   | 
| force_inline float  | boostRightAt (int index) const | 
|   | Gets the right-side boost at a given point index.  
  | 
|   | 
| force_inline float  | yAt (int index) const | 
|   | Gets the y-coordinate of a point at a given index.  
  | 
|   | 
| force_inline float  | xAt (int index) const | 
|   | Gets the x-coordinate of a point at a given index.  
  | 
|   | 
| force_inline void  | setBoostLeft (int index, float val) | 
|   | Sets the left-side boost for a point, marking data as dirty.  
  | 
|   | 
| force_inline void  | setBoostRight (int index, float val) | 
|   | Sets the right-side boost for a point, marking data as dirty.  
  | 
|   | 
| force_inline void  | setYAt (int index, float val) | 
|   | Sets the y-coordinate of a point, marking data as dirty.  
  | 
|   | 
| force_inline void  | setXAt (int index, float val) | 
|   | Sets the x-coordinate of a point, marking data as dirty.  
  | 
|   | 
| void  | setFillVertices (bool left) | 
|   | Sets fill vertices according to the current line and boost data.  
  | 
|   | 
| void  | setLineVertices (bool left) | 
|   | Sets line vertices according to the current line and boost data.  
  | 
|   | 
| force_inline void  | setFill (bool fill) | 
|   | Enables or disables filling below the line.  
  | 
|   | 
| force_inline void  | setFillColor (Colour fill_color) | 
|   | Sets a uniform fill color if only one color is needed.  
  | 
|   | 
| force_inline void  | setFillColors (Colour fill_color_from, Colour fill_color_to) | 
|   | Sets a gradient fill from one color to another.  
  | 
|   | 
| force_inline void  | setFillCenter (float fill_center) | 
|   | Sets the vertical center for the fill area.  
  | 
|   | 
| force_inline void  | setFit (bool fit) | 
|   | Enables fitting the line inside the available area.  
  | 
|   | 
| force_inline void  | setBoostAmount (float boost_amount) | 
|   | Sets the boost amount that affects line thickness.  
  | 
|   | 
| force_inline void  | setFillBoostAmount (float boost_amount) | 
|   | Sets the boost amount that affects fill thickness.  
  | 
|   | 
| force_inline void  | setIndex (int index) | 
|   | Sets an index used for custom behavior (e.g., multiple line sets).  
  | 
|   | 
| void  | boostLeftRange (float start, float end, int buffer_vertices, float min) | 
|   | Boosts left-side range of the line.  
  | 
|   | 
| void  | boostRightRange (float start, float end, int buffer_vertices, float min) | 
|   | Boosts right-side range of the line.  
  | 
|   | 
| void  | boostRange (float *boosts, float start, float end, int buffer_vertices, float min) | 
|   | Boosts a range for the given boost array.  
  | 
|   | 
| void  | boostRange (vital::poly_float start, vital::poly_float end, int buffer_vertices, vital::poly_float min) | 
|   | Boosts left and right arrays using poly_float parameters.  
  | 
|   | 
| void  | decayBoosts (vital::poly_float mult) | 
|   | Decays all boosts by a multiplicative factor, allowing animated damping.  
  | 
|   | 
| void  | enableBackwardBoost (bool enable) | 
|   | Enables backward boost calculation for symmetrical line deformation.  
  | 
|   | 
| force_inline int  | numPoints () const | 
|   | Gets the number of points in the line.  
  | 
|   | 
| force_inline Colour  | color () const | 
|   | Gets the current line color.  
  | 
|   | 
| void  | drawLines (OpenGlWrapper &open_gl, bool left) | 
|   | Draws the line and optional fill using OpenGL.  
  | 
|   | 
| bool  | anyBoostValue () | 
|   | Checks if any boost value is set.  
  | 
|   | 
|   | 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.  
  | 
|   | 
| virtual void  | paintBackground (Graphics &g) | 
|   | Paints a standard background for the component.  
  | 
|   | 
| 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 lines with optional filling and boost effects using OpenGL. 
The OpenGlLineRenderer class takes a set of points and renders them as a smooth line using OpenGL, optionally adding fill and adjustable "boost" effects to create animated line deformations. It supports looping lines, color customization, and variable line widths.