A component that uses OpenGL to render a cached image of a JUCE component or custom drawing.
More...
|
| OpenGlImageComponent (String name="") |
| Constructs an OpenGlImageComponent.
|
|
virtual | ~OpenGlImageComponent ()=default |
| Destructor.
|
|
virtual void | paintBackground (Graphics &g) override |
| Paints the background by redrawing the image if needed.
|
|
virtual void | paintToImage (Graphics &g) |
| Renders the associated component (or itself) into the provided Graphics context.
|
|
virtual void | init (OpenGlWrapper &open_gl) override |
| Initializes any OpenGL resources for rendering this component.
|
|
virtual void | render (OpenGlWrapper &open_gl, bool animate) override |
| Renders the image using OpenGL.
|
|
virtual void | destroy (OpenGlWrapper &open_gl) override |
| Destroys OpenGL-related resources used by this component.
|
|
virtual void | redrawImage (bool force) |
| Redraws the image if necessary, creating or updating the internal Image.
|
|
void | setComponent (Component *component) |
| Sets the component to be drawn into the OpenGL image. If not set, uses this component.
|
|
void | setScissor (bool scissor) |
| Enables or disables scissor testing when drawing the image.
|
|
void | setUseAlpha (bool use_alpha) |
| Enables or disables alpha blending for the image.
|
|
void | setColor (Colour color) |
| Sets a color tint for the image.
|
|
OpenGlImage & | image () |
| Provides access to the underlying OpenGlImage.
|
|
void | setActive (bool active) |
| Sets whether this component is active (rendered) or not.
|
|
void | setStatic (bool static_image) |
| Sets whether the image should be treated as static (not redrawn unless forced).
|
|
void | paintEntireComponent (bool paint_entire_component) |
| Controls whether paintToImage should paint the entire component hierarchy or just itself.
|
|
bool | isActive () const |
| Checks if this component is currently active.
|
|
| 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 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.
|
|
A component that uses OpenGL to render a cached image of a JUCE component or custom drawing.
The OpenGlImageComponent captures the output of a Component (or itself) into a JUCE Image, then uploads that image as a texture and renders it using OpenGL. This approach allows complex components to be drawn once and reused for efficient OpenGL rendering. It supports redrawing when necessary and can be set to a static (non-updating) image.