Loading...
Searching...
No Matches
juce::LowLevelGraphicsContext Class Referenceabstract

## Detailed Description

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.

The documentation for this class was generated from the following file:

- juce_graphics/contexts/juce_LowLevelGraphicsContext.h

Inheritance diagram for juce::LowLevelGraphicsContext:

## 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

## Constructors and Destructors

## LowLevelGraphicsContext()

juce::LowLevelGraphicsContext::LowLevelGraphicsContext | ( |  | ) |

protected default

## ~LowLevelGraphicsContext()

virtual juce::LowLevelGraphicsContext::~LowLevelGraphicsContext | ( |  | ) |

virtual default

## Member Functions

## isVectorDevice()

virtual bool juce::LowLevelGraphicsContext::isVectorDevice | ( |  | ) | const

pure virtual

Returns true if this device is vector-based, e.g.

a printer.

Implemented in juce::LowLevelGraphicsSoftwareRenderer.

## setOrigin()

virtual void juce::LowLevelGraphicsContext::setOrigin | ( | Point< int > |  | ) |

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.

## addTransform()

virtual void juce::LowLevelGraphicsContext::addTransform | ( | const AffineTransform & |  | ) |

pure virtual

Implemented in juce::LowLevelGraphicsSoftwareRenderer.

## getPhysicalPixelScaleFactor()

virtual float juce::LowLevelGraphicsContext::getPhysicalPixelScaleFactor | ( |  | ) | const

pure virtual

Implemented in juce::LowLevelGraphicsSoftwareRenderer.

Referenced by strokePath().

## clipToRectangle()

virtual bool juce::LowLevelGraphicsContext::clipToRectangle | ( | const Rectangle< int > & |  | ) |

pure virtual

Implemented in juce::LowLevelGraphicsSoftwareRenderer.

## clipToRectangleList()

virtual bool juce::LowLevelGraphicsContext::clipToRectangleList | ( | const RectangleList< int > & |  | ) |

pure virtual

Implemented in juce::LowLevelGraphicsSoftwareRenderer.

## excludeClipRectangle()

virtual void juce::LowLevelGraphicsContext::excludeClipRectangle | ( | const Rectangle< int > & |  | ) |

pure virtual

Implemented in juce::LowLevelGraphicsSoftwareRenderer.

## clipToPath()

virtual void juce::LowLevelGraphicsContext::clipToPath | ( | const Path & | ,
|  | const AffineTransform & | )

pure virtual

Implemented in juce::LowLevelGraphicsSoftwareRenderer.

## clipToImageAlpha()

virtual void juce::LowLevelGraphicsContext::clipToImageAlpha | ( | const Image & | ,
|  | const AffineTransform & | )

pure virtual

Implemented in juce::LowLevelGraphicsSoftwareRenderer.

## clipRegionIntersects()

virtual bool juce::LowLevelGraphicsContext::clipRegionIntersects | ( | const Rectangle< int > & |  | ) |

pure virtual

Implemented in juce::LowLevelGraphicsSoftwareRenderer.

## getClipBounds()

virtual Rectangle< int > juce::LowLevelGraphicsContext::getClipBounds | ( |  | ) | const

pure virtual

Implemented in juce::LowLevelGraphicsSoftwareRenderer.

Referenced by fillAll().

## isClipEmpty()

virtual bool juce::LowLevelGraphicsContext::isClipEmpty | ( |  | ) | const

pure virtual

Implemented in juce::LowLevelGraphicsSoftwareRenderer.

## saveState()

virtual void juce::LowLevelGraphicsContext::saveState | ( |  | ) |

pure virtual

Implemented in juce::LowLevelGraphicsSoftwareRenderer.

## restoreState()

virtual void juce::LowLevelGraphicsContext::restoreState | ( |  | ) |

pure virtual

Implemented in juce::LowLevelGraphicsSoftwareRenderer.

## beginTransparencyLayer()

virtual void juce::LowLevelGraphicsContext::beginTransparencyLayer | ( | float | opacity | ) |

pure virtual

Implemented in juce::LowLevelGraphicsSoftwareRenderer.

## endTransparencyLayer()

virtual void juce::LowLevelGraphicsContext::endTransparencyLayer | ( |  | ) |

pure virtual

Implemented in juce::LowLevelGraphicsSoftwareRenderer.

## setFill()

virtual void juce::LowLevelGraphicsContext::setFill | ( | const FillType & |  | ) |

pure virtual

Implemented in juce::LowLevelGraphicsSoftwareRenderer.

## setOpacity()

virtual void juce::LowLevelGraphicsContext::setOpacity | ( | float |  | ) |

pure virtual

Implemented in juce::LowLevelGraphicsSoftwareRenderer.

## setInterpolationQuality()

virtual void juce::LowLevelGraphicsContext::setInterpolationQuality | ( | Graphics::ResamplingQuality |  | ) |

pure virtual

Implemented in juce::LowLevelGraphicsSoftwareRenderer.

## fillAll()

virtual void juce::LowLevelGraphicsContext::fillAll | ( |  | ) |

inline virtual

References fillRect(), and getClipBounds().

## fillRect() [1/2]

virtual void juce::LowLevelGraphicsContext::fillRect | ( | const Rectangle< int > & | ,
|  | bool | replaceExistingContents )

pure virtual

Implemented in juce::LowLevelGraphicsSoftwareRenderer.

Referenced by fillAll().

## fillRect() [2/2]

virtual void juce::LowLevelGraphicsContext::fillRect | ( | const Rectangle< float > & |  | ) |

pure virtual

Implemented in juce::LowLevelGraphicsSoftwareRenderer.

## fillRectList()

virtual void juce::LowLevelGraphicsContext::fillRectList | ( | const RectangleList< float > & |  | ) |

pure virtual

Implemented in juce::LowLevelGraphicsSoftwareRenderer.

Referenced by drawRect().

## fillPath()

virtual void juce::LowLevelGraphicsContext::fillPath | ( | const Path & | ,
|  | const AffineTransform & | )

pure virtual

Implemented in juce::LowLevelGraphicsSoftwareRenderer.

Referenced by drawEllipse(), drawLineWithThickness(), fillEllipse(), fillRoundedRectangle(), and strokePath().

## drawRect()

virtual void juce::LowLevelGraphicsContext::drawRect | ( | const Rectangle< float > & | rect,
|  | float | lineThickness )

inline virtual

References juce::RectangleList< ValueType >::addWithoutMerging(), and fillRectList().

## strokePath()

virtual void juce::LowLevelGraphicsContext::strokePath | ( | const Path & | path,
|  | const PathStrokeType & | strokeType,
|  | const AffineTransform & | transform )

inline virtual

References juce::PathStrokeType::createStrokedPath(), fillPath(), and getPhysicalPixelScaleFactor().

Referenced by drawEllipse(), and drawRoundedRectangle().

## drawImage()

virtual void juce::LowLevelGraphicsContext::drawImage | ( | const Image & | ,
|  | const AffineTransform & | )

pure virtual

Implemented in juce::LowLevelGraphicsSoftwareRenderer.

## drawLine()

virtual void juce::LowLevelGraphicsContext::drawLine | ( | const Line< float > & |  | ) |

pure virtual

Implemented in juce::LowLevelGraphicsSoftwareRenderer.

## drawLineWithThickness()

virtual void juce::LowLevelGraphicsContext::drawLineWithThickness | ( | const Line< float > & | line,
|  | float | lineThickness )

inline virtual

References juce::Path::addLineSegment(), and fillPath().

## setFont()

virtual void juce::LowLevelGraphicsContext::setFont | ( | const Font & |  | ) |

pure virtual

Implemented in juce::LowLevelGraphicsSoftwareRenderer.

## getFont()

virtual const Font & juce::LowLevelGraphicsContext::getFont | ( |  | ) |

pure virtual

Implemented in juce::LowLevelGraphicsSoftwareRenderer.

## drawGlyphs()

virtual void juce::LowLevelGraphicsContext::drawGlyphs | ( | Span< const uint16_t > | ,
|  | Span< const Point< float > > | ,
|  | const AffineTransform & | )

pure virtual

Uses the current font to draw the provided glyph numbers.

Implemented in juce::LowLevelGraphicsSoftwareRenderer.

## getPreferredImageTypeForTemporaryImages()

virtual std::unique_ptr< ImageType > juce::LowLevelGraphicsContext::getPreferredImageTypeForTemporaryImages | ( |  | ) | const

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).

Returns
  A unique_ptr to the recommended ImageType instance for temporary images

Implemented in juce::LowLevelGraphicsSoftwareRenderer.

## drawRoundedRectangle()

virtual void juce::LowLevelGraphicsContext::drawRoundedRectangle | ( | const Rectangle< float > & | r,
|  | float | cornerSize,
|  | float | lineThickness )

inline virtual

References juce::Path::addRoundedRectangle(), and strokePath().

## fillRoundedRectangle()

virtual void juce::LowLevelGraphicsContext::fillRoundedRectangle | ( | const Rectangle< float > & | r,
|  | float | cornerSize )

inline virtual

References juce::Path::addRoundedRectangle(), and fillPath().

## drawEllipse()

virtual void juce::LowLevelGraphicsContext::drawEllipse | ( | const Rectangle< float > & | area,
|  | float | lineThickness )

inline virtual

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().

## fillEllipse()

virtual void juce::LowLevelGraphicsContext::fillEllipse | ( | const Rectangle< float > & | area | ) |

inline virtual

References juce::Path::addEllipse(), and fillPath().

## getFrameId()

virtual uint64_t juce::LowLevelGraphicsContext::getFrameId | ( |  | ) | const

pure virtual

Returns an integer that uniquely identifies the current frame.

Useful for debugging/logging.

Implemented in juce::LowLevelGraphicsSoftwareRenderer.

### Purchase

Get JUCE

### Discover

What's New in JUCE Features

### Learn

Documentaion Tutorials Made with JUCE Resources

### Support

JUCE Forum Newsletter Archive

### About

Contact Us JUCE Legal JUCE Licensing FAQ

### Events

Audio Developer Conference
© Raw Material Software Limited