Interface class for graphics context objects, used internally by the Graphics class.
Users are not supposed to create instances of this class directly - do your drawing via the Graphics object instead.
It's a base class for different types of graphics context, that may perform software-based or OS-accelerated rendering.
E.g. the LowLevelGraphicsSoftwareRenderer renders onto an image in memory, but other subclasses could render directly to a windows HDC, a Quartz context, or an OpenGL context.
Public Member Functions | |
| virtual | ~LowLevelGraphicsContext ()=default |
| virtual bool | isVectorDevice () const =0 |
| Returns true if this device is vector-based, e.g. | |
| virtual void | setOrigin (Point< int >)=0 |
| Moves the origin to a new position. | |
| virtual void | addTransform (const AffineTransform &)=0 |
| virtual float | getPhysicalPixelScaleFactor () const =0 |
| virtual bool | clipToRectangle (const Rectangle< int > &)=0 |
| virtual bool | clipToRectangleList (const RectangleList< int > &)=0 |
| virtual void | excludeClipRectangle (const Rectangle< int > &)=0 |
| virtual void | clipToPath (const Path &, const AffineTransform &)=0 |
| virtual void | clipToImageAlpha (const Image &, const AffineTransform &)=0 |
| virtual bool | clipRegionIntersects (const Rectangle< int > &)=0 |
| virtual Rectangle< int > | getClipBounds () const =0 |
| virtual bool | isClipEmpty () const =0 |
| virtual void | saveState ()=0 |
| virtual void | restoreState ()=0 |
| virtual void | beginTransparencyLayer (float opacity)=0 |
| virtual void | endTransparencyLayer ()=0 |
| virtual void | setFill (const FillType &)=0 |
| virtual void | setOpacity (float)=0 |
| virtual void | setInterpolationQuality (Graphics::ResamplingQuality)=0 |
| virtual void | fillAll () |
| virtual void | fillRect (const Rectangle< int > &, bool replaceExistingContents)=0 |
| virtual void | fillRect (const Rectangle< float > &)=0 |
| virtual void | fillRectList (const RectangleList< float > &)=0 |
| virtual void | fillPath (const Path &, const AffineTransform &)=0 |
| virtual void | drawRect (const Rectangle< float > &rect, float lineThickness) |
| virtual void | strokePath (const Path &path, const PathStrokeType &strokeType, const AffineTransform &transform) |
| virtual void | drawImage (const Image &, const AffineTransform &)=0 |
| virtual void | drawLine (const Line< float > &)=0 |
| virtual void | drawLineWithThickness (const Line< float > &line, float lineThickness) |
| virtual void | setFont (const Font &)=0 |
| virtual const Font & | getFont ()=0 |
| virtual void | drawGlyphs (Span< const uint16_t >, Span< const Point< float > >, const AffineTransform &)=0 |
| Uses the current font to draw the provided glyph numbers. | |
| virtual std::unique_ptr< ImageType > | getPreferredImageTypeForTemporaryImages () const =0 |
| Returns the optimal ImageType for creating temporary images in this GraphicsContext. | |
| virtual void | drawRoundedRectangle (const Rectangle< float > &r, float cornerSize, float lineThickness) |
| virtual void | fillRoundedRectangle (const Rectangle< float > &r, float cornerSize) |
| virtual void | drawEllipse (const Rectangle< float > &area, float lineThickness) |
| virtual void | fillEllipse (const Rectangle< float > &area) |
| virtual uint64_t | getFrameId () const =0 |
| Returns an integer that uniquely identifies the current frame. | |
Protected Member Functions | |
| LowLevelGraphicsContext ()=default | |
|
protecteddefault |
|
virtualdefault |
|
pure virtual |
Returns true if this device is vector-based, e.g.
a printer.
Implemented in juce::LowLevelGraphicsSoftwareRenderer.
|
pure virtual |
Moves the origin to a new position.
The coordinates are relative to the current origin, and indicate the new position of (0, 0).
Implemented in juce::LowLevelGraphicsSoftwareRenderer.
|
pure virtual |
Implemented in juce::LowLevelGraphicsSoftwareRenderer.
|
pure virtual |
Implemented in juce::LowLevelGraphicsSoftwareRenderer.
Referenced by strokePath().
|
pure virtual |
Implemented in juce::LowLevelGraphicsSoftwareRenderer.
|
pure virtual |
Implemented in juce::LowLevelGraphicsSoftwareRenderer.
|
pure virtual |
Implemented in juce::LowLevelGraphicsSoftwareRenderer.
|
pure virtual |
Implemented in juce::LowLevelGraphicsSoftwareRenderer.
|
pure virtual |
Implemented in juce::LowLevelGraphicsSoftwareRenderer.
|
pure virtual |
Implemented in juce::LowLevelGraphicsSoftwareRenderer.
|
pure virtual |
Implemented in juce::LowLevelGraphicsSoftwareRenderer.
Referenced by fillAll().
|
pure virtual |
Implemented in juce::LowLevelGraphicsSoftwareRenderer.
|
pure virtual |
Implemented in juce::LowLevelGraphicsSoftwareRenderer.
|
pure virtual |
Implemented in juce::LowLevelGraphicsSoftwareRenderer.
|
pure virtual |
Implemented in juce::LowLevelGraphicsSoftwareRenderer.
|
pure virtual |
Implemented in juce::LowLevelGraphicsSoftwareRenderer.
|
pure virtual |
Implemented in juce::LowLevelGraphicsSoftwareRenderer.
|
pure virtual |
Implemented in juce::LowLevelGraphicsSoftwareRenderer.
|
pure virtual |
Implemented in juce::LowLevelGraphicsSoftwareRenderer.
|
inlinevirtual |
References fillRect(), and getClipBounds().
|
pure virtual |
Implemented in juce::LowLevelGraphicsSoftwareRenderer.
Referenced by fillAll().
|
pure virtual |
Implemented in juce::LowLevelGraphicsSoftwareRenderer.
|
pure virtual |
Implemented in juce::LowLevelGraphicsSoftwareRenderer.
Referenced by drawRect().
|
pure virtual |
Implemented in juce::LowLevelGraphicsSoftwareRenderer.
Referenced by drawEllipse(), drawLineWithThickness(), fillEllipse(), fillRoundedRectangle(), and strokePath().
|
inlinevirtual |
References juce::RectangleList< ValueType >::addWithoutMerging(), and fillRectList().
|
inlinevirtual |
References juce::PathStrokeType::createStrokedPath(), fillPath(), and getPhysicalPixelScaleFactor().
Referenced by drawEllipse(), and drawRoundedRectangle().
|
pure virtual |
Implemented in juce::LowLevelGraphicsSoftwareRenderer.
|
pure virtual |
Implemented in juce::LowLevelGraphicsSoftwareRenderer.
|
inlinevirtual |
References juce::Path::addLineSegment(), and fillPath().
|
pure virtual |
Implemented in juce::LowLevelGraphicsSoftwareRenderer.
|
pure virtual |
Implemented in juce::LowLevelGraphicsSoftwareRenderer.
|
pure virtual |
Uses the current font to draw the provided glyph numbers.
Implemented in juce::LowLevelGraphicsSoftwareRenderer.
|
pure virtual |
Returns the optimal ImageType for creating temporary images in this GraphicsContext.
While this typically matches the GraphicsContext's native ImageType, certain scenarios may benefit from using a different format for temporary operations (e.g., for performance, memory efficiency, or specific rendering requirements).
Implemented in juce::LowLevelGraphicsSoftwareRenderer.
|
inlinevirtual |
References juce::Path::addRoundedRectangle(), and strokePath().
|
inlinevirtual |
References juce::Path::addRoundedRectangle(), and fillPath().
|
inlinevirtual |
References juce::Path::addEllipse(), juce::approximatelyEqual(), juce::Rectangle< ValueType >::expanded(), fillPath(), juce::Rectangle< ValueType >::getHeight(), juce::Rectangle< ValueType >::getWidth(), juce::Rectangle< ValueType >::reduced(), juce::Path::setUsingNonZeroWinding(), and strokePath().
|
inlinevirtual |
References juce::Path::addEllipse(), and fillPath().
|
pure virtual |
Returns an integer that uniquely identifies the current frame.
Useful for debugging/logging.
Implemented in juce::LowLevelGraphicsSoftwareRenderer.