JUCE
|
A table of horizontal scan-line segments - used for rasterising Paths. More...
Public Member Functions | |
EdgeTable (Rectangle< int > clipLimits, const Path &pathToAdd, const AffineTransform &transform) | |
Creates an edge table containing a path. More... | |
EdgeTable (Rectangle< int > rectangleToAdd) | |
Creates an edge table containing a rectangle. More... | |
EdgeTable (Rectangle< float > rectangleToAdd) | |
Creates an edge table containing a rectangle. More... | |
EdgeTable (const RectangleList< int > &rectanglesToAdd) | |
Creates an edge table containing a rectangle list. More... | |
EdgeTable (const RectangleList< float > &rectanglesToAdd) | |
Creates an edge table containing a rectangle list. More... | |
EdgeTable (const EdgeTable &) | |
Creates a copy of another edge table. More... | |
EdgeTable & | operator= (const EdgeTable &) |
Copies from another edge table. More... | |
~EdgeTable () | |
Destructor. More... | |
void | clipToRectangle (Rectangle< int > r) |
void | excludeRectangle (Rectangle< int > r) |
void | clipToEdgeTable (const EdgeTable &) |
void | clipLineToMask (int x, int y, const uint8 *mask, int maskStride, int numPixels) |
bool | isEmpty () noexcept |
const Rectangle< int > & | getMaximumBounds () const noexcept |
void | translate (float dx, int dy) noexcept |
void | multiplyLevels (float factor) |
Scales all the alpha-levels in the table by the given multiplier. More... | |
void | optimiseTable () |
Reduces the amount of space the table has allocated. More... | |
template<class EdgeTableIterationCallback > | |
void | iterate (EdgeTableIterationCallback &iterationCallback) const noexcept |
Iterates the lines in the table, for rendering. More... | |
EdgeTable::EdgeTable | ( | Rectangle< int > | clipLimits, |
const Path & | pathToAdd, | ||
const AffineTransform & | transform | ||
) |
Creates an edge table containing a path.
A table is created with a fixed vertical range, and only sections of the path which lie within this range will be added to the table.
clipLimits | only the region of the path that lies within this area will be added |
pathToAdd | the path to add to the table |
transform | a transform to apply to the path being added |
Creates an edge table containing a rectangle.
|
explicit |
Creates an edge table containing a rectangle.
|
explicit |
Creates an edge table containing a rectangle list.
|
explicit |
Creates an edge table containing a rectangle list.
EdgeTable::EdgeTable | ( | const EdgeTable & | ) |
Creates a copy of another edge table.
EdgeTable::~EdgeTable | ( | ) |
Destructor.
void EdgeTable::clipToEdgeTable | ( | const EdgeTable & | ) |
|
noexcept |
References translate().
|
noexcept |
void EdgeTable::multiplyLevels | ( | float | factor | ) |
Scales all the alpha-levels in the table by the given multiplier.
void EdgeTable::optimiseTable | ( | ) |
Reduces the amount of space the table has allocated.
This will shrink the table down to use as little memory as possible - useful for read-only tables that get stored and re-used for rendering.
|
noexcept |
Iterates the lines in the table, for rendering.
This function will iterate each line in the table, and call a user-defined class to render each pixel or continuous line of pixels that the table contains.
iterationCallback | this templated class must contain the following methods: inline void setEdgeTableYPos (int y); inline void handleEdgeTablePixel (int x, int alphaLevel) const; inline void handleEdgeTablePixelFull (int x) const; inline void handleEdgeTableLine (int x, int width, int alphaLevel) const; inline void handleEdgeTableLineFull (int x, int width) const; |
References isPositiveAndBelow(), jassert, JUCE_LEAK_DETECTOR, and operator<().