77 auto tx = (
int) (
t.getTranslationX() * 256.0f);
78 auto ty = (
int) (
t.getTranslationY() * 256.0f);
80 if (((tx | ty) & 0xf8) == 0)
118 template <
typename RectangleOrPo
int>
125 template <
typename Type>
142template <
class CachedGlyphType,
class RenderTargetType>
181 glyph->draw (target, pos);
198 g->generate (font, glyphNumber);
210 if (
g->glyph == glyphNumber &&
g->font == font)
239 glyphs.add (
new CachedGlyphType());
244 CachedGlyphType* oldest =
nullptr;
245 auto oldestCounter = std::numeric_limits<int>::max();
249 if (
g->lastAccessCount <= oldestCounter
250 &&
g->getReferenceCount() == 1)
252 oldestCounter =
g->lastAccessCount;
274template <
class RendererType>
283 pos.
x = std::floor (pos.
x + 0.5f);
296 auto fontHeight =
font.getHeight();
297 edgeTable.reset (typeface->getEdgeTableForGlyph (glyphNumber,
299 fontHeight), fontHeight));
333 if ((
top & 255) == 0)
359 if ((
left & 255) == 0)
377 template <
class Callback>
409 const PixelARGB* colours,
int numColours)
414 auto p1 = gradient.
point1;
415 auto p2 = gradient.
point2;
421 p1.applyTransform (transform);
422 p2.applyTransform (transform);
423 p3.applyTransform (transform);
428 vertical = std::abs (p1.x - p2.x) < 0.001f;
443 grad = (p2.getY() - p1.y) / (double) (p1.x - p2.x);
480 const PixelARGB* colours,
int numColours)
483 gx1 (gradient.point1.
x),
484 gy1 (gradient.point1.
y)
521 const PixelARGB* colours,
int numColours)
522 :
Radial (gradient, transform, colours, numColours),
531 auto floatY = (float)
y;
558#define JUCE_PERFORM_PIXEL_OP_LOOP(op) \
560 const int destStride = destData.pixelStride; \
561 do { dest->op; dest = addBytesToPointer (dest, destStride); } while (--width > 0); \
569 template <
class PixelType,
bool replaceExisting = false>
575 if (
sizeof (PixelType) == 3 && (
size_t)
destData.pixelStride == sizeof (PixelType))
606 p.multiplyAlpha (alphaLevel);
610 if (replaceExisting ||
p.getAlpha() >= 0xff)
629 p.multiplyAlpha (alphaLevel);
634 if (replaceExisting ||
p.getAlpha() >= 0xff)
676 memset ((
void*) dest, colour.getRed(), (
size_t)
width * 3);
683 if ((
size_t)
destData.pixelStride == sizeof (*dest))
684 memset ((
void*) dest, colour.getAlpha(), (
size_t)
width);
699 template <
class PixelType,
class GradientType>
703 const PixelARGB* colours,
int numColours)
704 : GradientType (gradient, transform, colours, numColours - 1),
712 GradientType::setY (
y);
722 getPixel (
x)->blend (GradientType::getPixel (
x));
729 if (alphaLevel < 0xff)
773 template <
class DestPixelType,
class SrcPixelType,
bool repeatPattern>
819 if (alphaLevel < 0xfe)
828 if (alphaLevel < 0xfe)
882 if (
sizeof (SrcPixelType) ==
sizeof (
PixelARGB))
907 auto destStride =
destData.pixelStride;
908 auto srcStride =
srcData.pixelStride;
910 if (destStride == srcStride
914 memcpy ((
void*) dest, src, (
size_t) (
width * srcStride));
923 }
while (--
width > 0);
932 template <
class DestPixelType,
class SrcPixelType,
bool repeatPattern>
938 q !=
Graphics::lowResamplingQuality ? 0.5f : 0.0f,
939 q !=
Graphics::lowResamplingQuality ? -128 : 0),
987 if (alphaLevel < 0xfe)
1029 sizeof (SrcPixelType),
width);
1039 template <
class PixelType>
1040 void generate (PixelType* dest,
int x,
int numPixels)
noexcept
1049 int loResX = hiResX >> 8;
1050 int loResY = hiResY >> 8;
1066 hiResX & 255, hiResY & 255);
1071 if (! repeatPattern)
1099 if (! repeatPattern)
1101 if (loResX < 0) loResX = 0;
1102 if (loResY < 0) loResY = 0;
1107 dest->set (*(
const PixelType*) this->
srcData.getPixelPointer (loResX, loResY));
1110 }
while (--numPixels > 0);
1116 uint32 c[4] = { 256 * 128, 256 * 128, 256 * 128, 256 * 128 };
1118 auto weight = (
uint32) ((256 - subPixelX) * (256 - subPixelY));
1119 c[0] += weight * src[0];
1120 c[1] += weight * src[1];
1121 c[2] += weight * src[2];
1122 c[3] += weight * src[3];
1124 src += this->
srcData.pixelStride;
1126 weight = (
uint32) (subPixelX * (256 - subPixelY));
1127 c[0] += weight * src[0];
1128 c[1] += weight * src[1];
1129 c[2] += weight * src[2];
1130 c[3] += weight * src[3];
1132 src += this->
srcData.lineStride;
1134 weight = (
uint32) (subPixelX * subPixelY);
1135 c[0] += weight * src[0];
1136 c[1] += weight * src[1];
1137 c[2] += weight * src[2];
1138 c[3] += weight * src[3];
1140 src -= this->
srcData.pixelStride;
1142 weight = (
uint32) ((256 - subPixelX) * subPixelY);
1143 c[0] += weight * src[0];
1144 c[1] += weight * src[1];
1145 c[2] += weight * src[2];
1146 c[3] += weight * src[3];
1156 uint32 c[4] = { 128, 128, 128, 128 };
1158 uint32 weight = 256 - subPixelX;
1159 c[0] += weight * src[0];
1160 c[1] += weight * src[1];
1161 c[2] += weight * src[2];
1162 c[3] += weight * src[3];
1164 src += this->
srcData.pixelStride;
1167 c[0] += weight * src[0];
1168 c[1] += weight * src[1];
1169 c[2] += weight * src[2];
1170 c[3] += weight * src[3];
1180 uint32 c[4] = { 128, 128, 128, 128 };
1182 uint32 weight = 256 - subPixelY;
1183 c[0] += weight * src[0];
1184 c[1] += weight * src[1];
1185 c[2] += weight * src[2];
1186 c[3] += weight * src[3];
1188 src += this->
srcData.lineStride;
1191 c[0] += weight * src[0];
1192 c[1] += weight * src[1];
1193 c[2] += weight * src[2];
1194 c[3] += weight * src[3];
1205 uint32 c[3] = { 256 * 128, 256 * 128, 256 * 128 };
1207 uint32 weight = (256 - subPixelX) * (256 - subPixelY);
1208 c[0] += weight * src[0];
1209 c[1] += weight * src[1];
1210 c[2] += weight * src[2];
1212 src += this->
srcData.pixelStride;
1214 weight = subPixelX * (256 - subPixelY);
1215 c[0] += weight * src[0];
1216 c[1] += weight * src[1];
1217 c[2] += weight * src[2];
1219 src += this->
srcData.lineStride;
1221 weight = subPixelX * subPixelY;
1222 c[0] += weight * src[0];
1223 c[1] += weight * src[1];
1224 c[2] += weight * src[2];
1226 src -= this->
srcData.pixelStride;
1228 weight = (256 - subPixelX) * subPixelY;
1229 c[0] += weight * src[0];
1230 c[1] += weight * src[1];
1231 c[2] += weight * src[2];
1233 dest->setARGB ((
uint8) 255,
1241 uint32 c[3] = { 128, 128, 128 };
1243 const uint32 weight = 256 - subPixelX;
1244 c[0] += weight * src[0];
1245 c[1] += weight * src[1];
1246 c[2] += weight * src[2];
1248 src += this->
srcData.pixelStride;
1250 c[0] += subPixelX * src[0];
1251 c[1] += subPixelX * src[1];
1252 c[2] += subPixelX * src[2];
1254 dest->setARGB ((
uint8) 255,
1262 uint32 c[3] = { 128, 128, 128 };
1264 const uint32 weight = 256 - subPixelY;
1265 c[0] += weight * src[0];
1266 c[1] += weight * src[1];
1267 c[2] += weight * src[2];
1269 src += this->
srcData.lineStride;
1271 c[0] += subPixelY * src[0];
1272 c[1] += subPixelY * src[1];
1273 c[2] += subPixelY * src[2];
1275 dest->setARGB ((
uint8) 255,
1285 c += src[0] * ((256 - subPixelX) * (256 - subPixelY));
1286 src += this->
srcData.pixelStride;
1287 c += src[0] * (subPixelX * (256 - subPixelY));
1288 src += this->
srcData.lineStride;
1289 c += src[0] * (subPixelX * subPixelY);
1290 src -= this->
srcData.pixelStride;
1292 c += src[0] * ((256 - subPixelX) * subPixelY);
1300 c += src[0] * (256 - subPixelX);
1301 src += this->
srcData.pixelStride;
1302 c += src[0] * subPixelX;
1309 c += src[0] * (256 - subPixelY);
1310 src += this->
srcData.lineStride;
1311 c += src[0] * subPixelY;
1329 auto x1 = sx, y1 = sy;
1330 sx += (float) numPixels;
1337 void next (
int& px,
int& py)
noexcept
1348 void set (
int n1,
int n2,
int steps,
int offsetInt)
noexcept
1408 template <
class Iterator>
1480 template <
class Iterator>
1549 template <
class Iterator,
class DestPixelType>
1552 if (replaceContents)
1564 template <
class Iterator,
class DestPixelType>
1566 const PixelARGB* lookupTable,
int numLookupEntries,
bool isIdentity, DestPixelType*)
1573 iter.iterate (renderer);
1578 iter.iterate (renderer);
1584 iter.iterate (renderer);
1590template <
class SavedStateType>
1651 for (
auto&
i : inverse)
1688 auto imageX = ((tx + 128) >> 8);
1689 auto imageY = ((ty + 128) >> 8);
1705 p.addRectangle (0, 0, (
float) srcData.
width, (
float) srcData.
height);
1728 return edgeTable.getMaximumBounds().intersects (
r);
1738 auto totalClip =
edgeTable.getMaximumBounds();
1739 auto clipped = totalClip.getIntersection (area);
1741 if (! clipped.isEmpty())
1745 state.fillWithSolidColour (et.
edgeTable, colour, replaceContents);
1751 auto totalClip =
edgeTable.getMaximumBounds().toFloat();
1752 auto clipped = totalClip.getIntersection (area);
1754 if (! clipped.isEmpty())
1758 state.fillWithSolidColour (et.
edgeTable, colour,
false);
1764 state.fillWithSolidColour (
edgeTable, colour, replaceContents);
1769 state.fillWithGradient (
edgeTable, gradient, transform, isIdentity);
1774 state.renderImageTransformed (
edgeTable, src, alpha, transform,
quality, tiledFill);
1779 state.renderImageUntransformed (
edgeTable, src, alpha,
x,
y, tiledFill);
1785 template <
class SrcPixelType>
1790 for (
int y = 0;
y <
edgeTable.getMaximumBounds().getHeight(); ++
y)
1792 edgeTable.getMaximumBounds().getWidth());
1795 template <
class SrcPixelType>
1803 for (
int y = 0;
y <
r.getHeight(); ++
y)
1854 state.fillWithSolidColour (iter, colour, replaceContents);
1860 state.fillWithSolidColour (iter, colour,
false);
1865 state.fillWithSolidColour (*
this, colour, replaceContents);
1870 state.fillWithGradient (*
this, gradient, transform, isIdentity);
1875 state.renderImageTransformed (*
this, src, alpha, transform,
quality, tiledFill);
1880 state.renderImageUntransformed (*
this, src, alpha,
x,
y, tiledFill);
1886 template <
class Renderer>
1889 for (
auto&
i :
clip)
1892 auto w =
i.getWidth();
1894 auto bottom =
i.getBottom();
1896 for (
int y =
i.getY();
y < bottom; ++
y)
1898 r.setEdgeTableYPos (
y);
1899 r.handleEdgeTableLineFull (
x,
w);
1910 :
clip (clipList),
area (clipBounds)
1913 template <
class Renderer>
1916 for (
auto&
i :
clip)
1918 auto rect =
i.getIntersection (
area);
1920 if (! rect.isEmpty())
1921 r.handleEdgeTableRectangleFull (rect.getX(), rect.getY(), rect.getWidth(), rect.getHeight());
1937 :
clip (clipList),
area (clipBounds)
1941 template <
class Renderer>
1946 for (
auto&
i :
clip)
1948 auto clipLeft =
i.getX();
1949 auto clipRight =
i.getRight();
1950 auto clipTop =
i.getY();
1951 auto clipBottom =
i.getBottom();
1953 if (
f.totalBottom > clipTop &&
f.totalTop < clipBottom
1954 &&
f.totalRight > clipLeft &&
f.totalLeft < clipRight)
1956 if (
f.isOnePixelWide())
1958 if (
f.topAlpha != 0 &&
f.totalTop >= clipTop)
1960 r.setEdgeTableYPos (
f.totalTop);
1961 r.handleEdgeTablePixel (
f.left,
f.topAlpha);
1964 auto y1 =
jmax (clipTop,
f.top);
1965 auto y2 =
jmin (
f.bottom, clipBottom);
1969 r.handleEdgeTableRectangleFull (
f.left, y1, 1,
h);
1971 if (
f.bottomAlpha != 0 &&
f.bottom < clipBottom)
1973 r.setEdgeTableYPos (
f.bottom);
1974 r.handleEdgeTablePixel (
f.left,
f.bottomAlpha);
1979 auto clippedLeft =
jmax (
f.left, clipLeft);
1980 auto clippedWidth =
jmin (
f.right, clipRight) - clippedLeft;
1981 bool doLeftAlpha =
f.leftAlpha != 0 &&
f.totalLeft >= clipLeft;
1982 bool doRightAlpha =
f.rightAlpha != 0 &&
f.right < clipRight;
1984 if (
f.topAlpha != 0 &&
f.totalTop >= clipTop)
1986 r.setEdgeTableYPos (
f.totalTop);
1988 if (doLeftAlpha)
r.handleEdgeTablePixel (
f.totalLeft,
f.getTopLeftCornerAlpha());
1989 if (clippedWidth > 0)
r.handleEdgeTableLine (clippedLeft, clippedWidth,
f.topAlpha);
1990 if (doRightAlpha)
r.handleEdgeTablePixel (
f.right,
f.getTopRightCornerAlpha());
1993 auto y1 =
jmax (clipTop,
f.top);
1994 auto y2 =
jmin (
f.bottom, clipBottom);
2001 r.setEdgeTableYPos (y1);
2003 if (doLeftAlpha)
r.handleEdgeTablePixel (
f.totalLeft,
f.leftAlpha);
2004 if (clippedWidth > 0)
r.handleEdgeTableLineFull (clippedLeft, clippedWidth);
2005 if (doRightAlpha)
r.handleEdgeTablePixel (
f.right,
f.rightAlpha);
2009 if (doLeftAlpha)
r.handleEdgeTableRectangle (
f.totalLeft, y1, 1,
h,
f.leftAlpha);
2010 if (clippedWidth > 0)
r.handleEdgeTableRectangleFull (clippedLeft, y1, clippedWidth,
h);
2011 if (doRightAlpha)
r.handleEdgeTableRectangle (
f.right, y1, 1,
h,
f.rightAlpha);
2015 if (
f.bottomAlpha != 0 &&
f.bottom < clipBottom)
2017 r.setEdgeTableYPos (
f.bottom);
2019 if (doLeftAlpha)
r.handleEdgeTablePixel (
f.totalLeft,
f.getBottomLeftCornerAlpha());
2020 if (clippedWidth > 0)
r.handleEdgeTableLine (clippedLeft, clippedWidth,
f.bottomAlpha);
2021 if (doRightAlpha)
r.handleEdgeTablePixel (
f.right,
f.getBottomRightCornerAlpha());
2042template <
class SavedStateType>
2073 if (
clip !=
nullptr)
2093 return clip !=
nullptr;
2098 if (
clip !=
nullptr)
2112 clip =
clip->clipToRectangleList (offsetList);
2123 clip =
clip->clipToRectangleList (scaledList);
2131 return clip !=
nullptr;
2136 auto x1 = (
int) std::ceil (
r.getX());
2137 auto y1 = (
int) std::ceil (
r.getY());
2138 auto x2 = (
int) std::floor (
r.getRight());
2139 auto y2 = (
int) std::floor (
r.getBottom());
2141 return { x1, y1, x2 - x1, y2 - y1 };
2146 if (
clip !=
nullptr)
2161 p.addRectangle (
r.toFloat());
2162 p.applyTransform (
transform.complexTransform);
2163 p.addRectangle (
clip->getClipBounds().toFloat());
2164 p.setUsingNonZeroWinding (
false);
2169 return clip !=
nullptr;
2174 if (
clip !=
nullptr)
2183 if (
clip !=
nullptr)
2201 if (
clip !=
nullptr)
2214 return clip !=
nullptr ?
transform.deviceSpaceToUserSpace (
clip->getClipBounds())
2231 auto clipped =
clip->getClipBounds().getIntersection (
r);
2233 if (! clipped.isEmpty())
2246 auto clipped =
clip->getClipBounds().toFloat().getIntersection (
r);
2248 if (! clipped.isEmpty())
2253 template <
typename CoordType>
2263 if (
clip !=
nullptr)
2283 if (
clip !=
nullptr)
2296 if (
clip !=
nullptr)
2298 if (
list.getNumRectangles() == 1)
2325 if (
clip !=
nullptr)
2328 auto clipRect =
clip->getClipBounds();
2337 if (
clip !=
nullptr)
2340 edgeTableClip->edgeTable.translate (
x,
y);
2344 auto brightness =
fillType.colour.getBrightness() - 0.5f;
2346 if (brightness > 0.0f)
2347 edgeTableClip->edgeTable.multiplyLevels (1.0f + 1.6f * brightness);
2357 p.addLineSegment (line, 1.0f);
2363 if (
clip !=
nullptr && !
fillType.colour.isTransparent())
2369 return std::abs (
t.mat01) < tolerance
2370 && std::abs (
t.mat10) < tolerance
2371 && std::abs (
t.mat00 - 1.0f) < tolerance
2372 && std::abs (
t.mat11 - 1.0f) < tolerance;
2378 auto alpha =
fillType.colour.getAlpha();
2383 auto tx = (
int) (
t.getTranslationX() * 256.0f);
2384 auto ty = (
int) (
t.getTranslationY() * 256.0f);
2388 tx = ((tx + 128) >> 8);
2389 ty = ((ty + 128) >> 8);
2391 if (tiledFillClipRegion !=
nullptr)
2393 tiledFillClipRegion->renderImageUntransformed (
getThis(), sourceImage, alpha, tx, ty,
true);
2402 c->renderImageUntransformed (
getThis(), sourceImage, alpha, tx, ty,
false);
2409 if (!
t.isSingularity())
2411 if (tiledFillClipRegion !=
nullptr)
2413 tiledFillClipRegion->renderImageTransformed (
getThis(), sourceImage, alpha,
2421 if (
auto c =
clip->clone()->clipToPath (
p,
t))
2422 c->renderImageTransformed (
getThis(), sourceImage, alpha,
2428 void fillShape (
typename BaseRegionType::Ptr shapeToFill,
bool replaceContents)
2431 shapeToFill =
clip->applyClipTo (shapeToFill);
2433 if (shapeToFill !=
nullptr)
2440 g2.multiplyOpacity (
fillType.getOpacity());
2443 bool isIdentity =
t.isOnlyTranslation();
2448 g2.point1.applyTransform (
t);
2449 g2.point2.applyTransform (
t);
2453 shapeToFill->fillAllWithGradient (
getThis(), g2,
t, isIdentity);
2461 shapeToFill->fillAllWithColour (
getThis(),
fillType.colour.getPixelARGB(), replaceContents);
2468 if (
clip->getReferenceCount() > 1)
2501 if (
clip !=
nullptr)
2503 auto layerBounds =
clip->getClipBounds();
2505 s->image =
Image (
Image::ARGB, layerBounds.getWidth(), layerBounds.getHeight(),
true);
2506 s->transparencyLayerAlpha = opacity;
2507 s->transform.moveOriginInDeviceSpace (-layerBounds.getPosition());
2508 s->cloneClipIfMultiplyReferenced();
2509 s->clip->translate (-layerBounds.getPosition());
2517 if (
clip !=
nullptr)
2519 auto layerBounds =
clip->getClipBounds();
2521 auto g =
image.createLowLevelContext();
2537 if (
clip !=
nullptr)
2546 cache.drawGlyph (*
this,
font, glyphNumber, pos +
transform.offset.toFloat());
2553 f.setHeight (
font.getHeight() *
transform.complexTransform.mat11);
2557 if (std::abs (xScale - 1.0f) > 0.01f)
2558 f.setHorizontalScale (xScale);
2560 cache.drawGlyph (*
this,
f, glyphNumber, pos);
2565 auto fontHeight =
font.getHeight();
2568 .followedBy (trans));
2570 std::unique_ptr<EdgeTable> et (
font.getTypefacePtr()->getEdgeTableForGlyph (glyphNumber,
t, fontHeight));
2581 template <
typename IteratorType>
2589 template <
typename IteratorType>
2597 template <
typename IteratorType>
2612 template <
typename IteratorType>
2617 jassert (numLookupEntries > 0);
2640template <
class StateObjectType>
2665 if (
auto* top =
stack.getLast())
2668 stack.removeLast (1,
false);
2684 std::unique_ptr<StateObjectType> finishedTransparencyLayer (
currentState.release());
2686 currentState->endTransparencyLayer (*finishedTransparencyLayer);
2697template <
class SavedStateType>
Type jmin(const Type a, const Type b)
Definition MathsFunctions.h:60
Type jmax(const Type a, const Type b)
Definition MathsFunctions.h:48
#define noexcept
Definition DistrhoDefines.h:72
static const unsigned long mask[]
Definition bitwise.c:31
Definition juce_ColourGradient.h:38
int createLookupTable(const AffineTransform &transform, HeapBlock< PixelARGB > &resultLookupTable) const
Definition juce_ColourGradient.cpp:229
Point< float > point2
Definition juce_ColourGradient.h:195
Point< float > point1
Definition juce_ColourGradient.h:195
Definition juce_CriticalSection.h:43
DeletedAtShutdown()
Definition juce_DeletedAtShutdown.cpp:34
Definition juce_EdgeTable.h:38
void clipToEdgeTable(const EdgeTable &)
Definition juce_EdgeTable.cpp:740
void clipLineToMask(int x, int y, const uint8 *mask, int maskStride, int numPixels)
Definition juce_EdgeTable.cpp:775
Definition juce_FillType.h:41
Definition juce_Font.h:42
Typeface::Ptr getTypefacePtr() const
Definition juce_Font.cpp:509
Definition juce_GraphicsContext.h:45
ResamplingQuality
Definition juce_GraphicsContext.h:462
@ lowResamplingQuality
Definition juce_GraphicsContext.h:463
Definition juce_HeapBlock.h:87
Definition juce_Image.h:310
int height
Definition juce_Image.h:356
@ readOnly
Definition juce_Image.h:314
@ readWrite
Definition juce_Image.h:316
int width
Definition juce_Image.h:356
PixelFormat pixelFormat
Definition juce_Image.h:353
Definition juce_Image.h:58
int getWidth() const noexcept
Definition juce_Image.cpp:271
bool hasAlphaChannel() const noexcept
Definition juce_Image.cpp:278
int getHeight() const noexcept
Definition juce_Image.cpp:272
Rectangle< int > getBounds() const noexcept
Definition juce_Image.cpp:273
@ SingleChannel
Definition juce_Image.h:68
@ UnknownFormat
Definition juce_Image.h:65
@ ARGB
Definition juce_Image.h:67
@ RGB
Definition juce_Image.h:66
Definition juce_Line.h:47
Point< ValueType > getPointAlongLine(ValueType distanceFromStart) const noexcept
Definition juce_Line.h:204
Point< ValueType > findNearestPointTo(Point< ValueType > point) const noexcept
Definition juce_Line.h:315
LowLevelGraphicsContext()=default
Definition juce_OwnedArray.h:51
Definition juce_Path.h:65
Rectangle< float > getBoundsTransformed(const AffineTransform &transform) const noexcept
Definition juce_Path.cpp:205
Definition juce_PixelFormats.h:59
@ indexG
Definition juce_PixelFormats.h:302
@ indexA
Definition juce_PixelFormats.h:302
@ indexR
Definition juce_PixelFormats.h:302
@ indexB
Definition juce_PixelFormats.h:302
Definition juce_PixelFormats.h:600
Definition juce_PixelFormats.h:354
@ indexG
Definition juce_PixelFormats.h:553
@ indexR
Definition juce_PixelFormats.h:553
@ indexB
Definition juce_PixelFormats.h:553
Definition juce_Point.h:42
ValueType y
Definition juce_Point.h:247
ValueType x
Definition juce_Point.h:246
Definition juce_Rectangle.h:67
bool intersects(Rectangle other) const noexcept
Definition juce_Rectangle.h:641
Rectangle< int > getSmallestIntegerContainer() const noexcept
Definition juce_Rectangle.h:840
Rectangle getIntersection(Rectangle other) const noexcept
Definition juce_Rectangle.h:664
bool isEmpty() const noexcept
Definition juce_Rectangle.h:121
Definition juce_RectangleList.h:43
void subtract(RectangleType rect)
Definition juce_RectangleList.h:204
void offsetAll(Point< ValueType > offset) noexcept
Definition juce_RectangleList.h:589
void add(RectangleType rect)
Definition juce_RectangleList.h:110
void transformAll(const AffineTransform &transform) noexcept
Definition juce_RectangleList.h:613
Definition juce_ReferenceCountedArray.h:51
ReferenceCountedObject()=default
Definition juce_ReferenceCountedObject.h:247
Font font
Definition juce_RenderingHelpers.h:302
int glyph
Definition juce_RenderingHelpers.h:304
bool snapToIntegerCoordinate
Definition juce_RenderingHelpers.h:305
CachedGlyphEdgeTable()=default
void draw(RendererType &state, Point< float > pos) const
Definition juce_RenderingHelpers.h:280
int lastAccessCount
Definition juce_RenderingHelpers.h:304
std::unique_ptr< EdgeTable > edgeTable
Definition juce_RenderingHelpers.h:303
void generate(const Font &newFont, int glyphNumber)
Definition juce_RenderingHelpers.h:289
Definition juce_RenderingHelpers.h:1934
void iterate(Renderer &r) const noexcept
Definition juce_RenderingHelpers.h:1942
SubRectangleIteratorFloat(const RectangleList< int > &clipList, Rectangle< float > clipBounds) noexcept
Definition juce_RenderingHelpers.h:1936
Rectangle< float > area
Definition juce_RenderingHelpers.h:2030
const RectangleList< int > & clip
Definition juce_RenderingHelpers.h:2029
Definition juce_RenderingHelpers.h:1907
const RectangleList< int > & clip
Definition juce_RenderingHelpers.h:1926
SubRectangleIterator(const RectangleList< int > &clipList, Rectangle< int > clipBounds)
Definition juce_RenderingHelpers.h:1909
void iterate(Renderer &r) const noexcept
Definition juce_RenderingHelpers.h:1914
const Rectangle< int > area
Definition juce_RenderingHelpers.h:1927
Definition juce_RenderingHelpers.h:1810
Ptr clipToRectangle(Rectangle< int > r) override
Definition juce_RenderingHelpers.h:1821
void translate(Point< int > delta) override
Definition juce_RenderingHelpers.h:1847
RectangleListRegion(const RectangleListRegion &other)
Definition juce_RenderingHelpers.h:1814
Ptr clone() const override
Definition juce_RenderingHelpers.h:1818
Ptr toEdgeTable() const
Definition juce_RenderingHelpers.h:2035
RectangleListRegion(const RectangleList< int > &r)
Definition juce_RenderingHelpers.h:1813
void fillAllWithGradient(SavedStateType &state, ColourGradient &gradient, const AffineTransform &transform, bool isIdentity) const override
Definition juce_RenderingHelpers.h:1868
void fillAllWithColour(SavedStateType &state, PixelARGB colour, bool replaceContents) const override
Definition juce_RenderingHelpers.h:1863
RectangleListRegion(Rectangle< int > r)
Definition juce_RenderingHelpers.h:1812
Ptr clipToImageAlpha(const Image &image, const AffineTransform &transform, Graphics::ResamplingQuality quality) override
Definition juce_RenderingHelpers.h:1842
void fillRectWithColour(SavedStateType &state, Rectangle< float > area, PixelARGB colour) const override
Definition juce_RenderingHelpers.h:1857
Ptr excludeClipRectangle(Rectangle< int > r) override
Definition juce_RenderingHelpers.h:1833
Rectangle< int > getClipBounds() const override
Definition juce_RenderingHelpers.h:1849
Ptr clipToRectangleList(const RectangleList< int > &r) override
Definition juce_RenderingHelpers.h:1827
void renderImageTransformed(SavedStateType &state, const Image &src, int alpha, const AffineTransform &transform, Graphics::ResamplingQuality quality, bool tiledFill) const override
Definition juce_RenderingHelpers.h:1873
void iterate(Renderer &r) const noexcept
Definition juce_RenderingHelpers.h:1887
Ptr clipToPath(const Path &p, const AffineTransform &transform) override
Definition juce_RenderingHelpers.h:1839
bool clipRegionIntersects(Rectangle< int > r) const override
Definition juce_RenderingHelpers.h:1848
Ptr applyClipTo(const Ptr &target) const override
Definition juce_RenderingHelpers.h:1819
void fillRectWithColour(SavedStateType &state, Rectangle< int > area, PixelARGB colour, bool replaceContents) const override
Definition juce_RenderingHelpers.h:1851
typename Base::Ptr Ptr
Definition juce_RenderingHelpers.h:1816
void renderImageUntransformed(SavedStateType &state, const Image &src, int alpha, int x, int y, bool tiledFill) const override
Definition juce_RenderingHelpers.h:1878
Ptr clipToEdgeTable(const EdgeTable &et) override
Definition juce_RenderingHelpers.h:1840
RectangleList< int > clip
Definition juce_RenderingHelpers.h:1883
Definition juce_RenderingHelpers.h:144
void drawGlyph(RenderTargetType &target, const Font &font, const int glyphNumber, Point< float > pos)
Definition juce_RenderingHelpers.h:176
ReferenceCountedObjectPtr< CachedGlyphEdgeTable< SoftwareRendererSavedState > > findExistingGlyph(const Font &font, int glyphNumber) const noexcept
Definition juce_RenderingHelpers.h:207
CriticalSection lock
Definition juce_RenderingHelpers.h:205
ReferenceCountedArray< CachedGlyphEdgeTable< SoftwareRendererSavedState > > glyphs
Definition juce_RenderingHelpers.h:203
Atomic< int > accessCounter
Definition juce_RenderingHelpers.h:204
~GlyphCache() override
Definition juce_RenderingHelpers.h:151
Atomic< int > hits
Definition juce_RenderingHelpers.h:204
static GlyphCache & getInstance()
Definition juce_RenderingHelpers.h:156
ReferenceCountedObjectPtr< CachedGlyphEdgeTable< SoftwareRendererSavedState > > findOrCreateGlyph(const Font &font, int glyphNumber)
Definition juce_RenderingHelpers.h:185
ReferenceCountedObjectPtr< CachedGlyphEdgeTable< SoftwareRendererSavedState > > getGlyphForReuse()
Definition juce_RenderingHelpers.h:216
CachedGlyphEdgeTable< SoftwareRendererSavedState > * findLeastRecentlyUsedGlyph() const noexcept
Definition juce_RenderingHelpers.h:242
GlyphCache()
Definition juce_RenderingHelpers.h:146
Atomic< int > misses
Definition juce_RenderingHelpers.h:204
void addNewGlyphSlots(int num)
Definition juce_RenderingHelpers.h:234
void reset()
Definition juce_RenderingHelpers.h:167
static GlyphCache *& getSingletonPointer() noexcept
Definition juce_RenderingHelpers.h:260
void fillPath(const Path &path, const AffineTransform &t)
Definition juce_RenderingHelpers.h:2323
Graphics::ResamplingQuality interpolationQuality
Definition juce_RenderingHelpers.h:2475
void setFillType(const FillType &newFill)
Definition juce_RenderingHelpers.h:2218
RenderingHelpers::TranslationOrTransform transform
Definition juce_RenderingHelpers.h:2473
static bool isOnlyTranslationAllowingError(const AffineTransform &t, float tolerance) noexcept
Definition juce_RenderingHelpers.h:2367
SavedStateBase(const RectangleList< int > &clipList, Point< int > origin)
Definition juce_RenderingHelpers.h:2056
void clipToImageAlpha(const Image &sourceImage, const AffineTransform &t)
Definition juce_RenderingHelpers.h:2181
void renderImage(const Image &sourceImage, const AffineTransform &trans, const BaseRegionType *tiledFillClipRegion)
Definition juce_RenderingHelpers.h:2375
bool clipToRectangleList(const RectangleList< int > &r)
Definition juce_RenderingHelpers.h:2096
SavedStateBase(const SavedStateBase &other)
Definition juce_RenderingHelpers.h:2062
void cloneClipIfMultiplyReferenced()
Definition juce_RenderingHelpers.h:2466
SavedStateType & getThis() noexcept
Definition juce_RenderingHelpers.h:2069
void fillEdgeTable(const EdgeTable &edgeTable, float x, int y)
Definition juce_RenderingHelpers.h:2335
typename ClipRegions< SavedStateType >::RectangleListRegion RectangleListRegionType
Definition juce_RenderingHelpers.h:2048
BaseRegionType::Ptr clip
Definition juce_RenderingHelpers.h:2472
void fillRectAsPath(Rectangle< CoordType > r)
Definition juce_RenderingHelpers.h:2254
void fillRectList(const RectangleList< float > &list)
Definition juce_RenderingHelpers.h:2294
void clipToPath(const Path &p, const AffineTransform &t)
Definition juce_RenderingHelpers.h:2172
bool clipRegionIntersects(Rectangle< int > r) const
Definition juce_RenderingHelpers.h:2199
void fillTargetRect(Rectangle< float > r)
Definition juce_RenderingHelpers.h:2238
void drawLine(Line< float > line)
Definition juce_RenderingHelpers.h:2354
typename ClipRegions< SavedStateType >::EdgeTableRegion EdgeTableRegionType
Definition juce_RenderingHelpers.h:2047
bool clipToRectangle(Rectangle< int > r)
Definition juce_RenderingHelpers.h:2071
void fillRect(Rectangle< float > r)
Definition juce_RenderingHelpers.h:2281
float transparencyLayerAlpha
Definition juce_RenderingHelpers.h:2476
void drawImage(const Image &sourceImage, const AffineTransform &trans)
Definition juce_RenderingHelpers.h:2361
void fillRect(Rectangle< int > r, bool replaceContents)
Definition juce_RenderingHelpers.h:2261
typename ClipRegions< SavedStateType >::Base BaseRegionType
Definition juce_RenderingHelpers.h:2046
void fillShape(typename BaseRegionType::Ptr shapeToFill, bool replaceContents)
Definition juce_RenderingHelpers.h:2428
bool excludeClipRectangle(Rectangle< int > r)
Definition juce_RenderingHelpers.h:2144
void fillTargetRect(Rectangle< int > r, bool replaceContents)
Definition juce_RenderingHelpers.h:2223
SavedStateBase(Rectangle< int > initialClip)
Definition juce_RenderingHelpers.h:2050
Rectangle< int > getClipBounds() const
Definition juce_RenderingHelpers.h:2212
static Rectangle< int > getLargestIntegerWithin(Rectangle< float > r)
Definition juce_RenderingHelpers.h:2134
FillType fillType
Definition juce_RenderingHelpers.h:2474
Definition juce_RenderingHelpers.h:2642
void save()
Definition juce_RenderingHelpers.h:2658
StateObjectType & operator*() const noexcept
Definition juce_RenderingHelpers.h:2656
void beginTransparencyLayer(float opacity)
Definition juce_RenderingHelpers.h:2676
void endTransparencyLayer()
Definition juce_RenderingHelpers.h:2682
SavedStateStack(StateObjectType *initialState) noexcept
Definition juce_RenderingHelpers.h:2644
void restore()
Definition juce_RenderingHelpers.h:2663
StateObjectType * operator->() const noexcept
Definition juce_RenderingHelpers.h:2655
OwnedArray< StateObjectType > stack
Definition juce_RenderingHelpers.h:2691
SavedStateStack()=default
std::unique_ptr< StateObjectType > currentState
Definition juce_RenderingHelpers.h:2690
void initialise(StateObjectType *state)
Definition juce_RenderingHelpers.h:2650
void renderImageTransformed(IteratorType &iter, const Image &src, int alpha, const AffineTransform &trans, Graphics::ResamplingQuality quality, bool tiledFill) const
Definition juce_RenderingHelpers.h:2582
SavedStateBase< SoftwareRendererSavedState > BaseClass
Definition juce_RenderingHelpers.h:2482
static void clearGlyphCache()
Definition juce_RenderingHelpers.h:2529
Image image
Definition juce_RenderingHelpers.h:2632
void fillWithGradient(IteratorType &iter, ColourGradient &gradient, const AffineTransform &trans, bool isIdentity) const
Definition juce_RenderingHelpers.h:2613
void drawGlyph(int glyphNumber, const AffineTransform &trans)
Definition juce_RenderingHelpers.h:2535
void fillWithSolidColour(IteratorType &iter, PixelARGB colour, bool replaceContents) const
Definition juce_RenderingHelpers.h:2598
SoftwareRendererSavedState(const SoftwareRendererSavedState &other)=default
GlyphCache< CachedGlyphEdgeTable< SoftwareRendererSavedState >, SoftwareRendererSavedState > GlyphCacheType
Definition juce_RenderingHelpers.h:2527
SoftwareRendererSavedState(const Image &im, Rectangle< int > clipBounds)
Definition juce_RenderingHelpers.h:2485
SoftwareRendererSavedState * beginTransparencyLayer(float opacity)
Definition juce_RenderingHelpers.h:2497
void endTransparencyLayer(SoftwareRendererSavedState &finishedLayerState)
Definition juce_RenderingHelpers.h:2515
Font font
Definition juce_RenderingHelpers.h:2633
SoftwareRendererSavedState(const Image &im, const RectangleList< int > &clipList, Point< int > origin)
Definition juce_RenderingHelpers.h:2490
void renderImageUntransformed(IteratorType &iter, const Image &src, int alpha, int x, int y, bool tiledFill) const
Definition juce_RenderingHelpers.h:2590
Rectangle< int > getMaximumBounds() const
Definition juce_RenderingHelpers.h:2578
void setOrigin(Point< int > o) override
Definition juce_RenderingHelpers.h:2702
void fillRectList(const RectangleList< float > &list) override
Definition juce_RenderingHelpers.h:2722
float getPhysicalPixelScaleFactor() override
Definition juce_RenderingHelpers.h:2704
Rectangle< int > getClipBounds() const override
Definition juce_RenderingHelpers.h:2705
bool clipRegionIntersects(const Rectangle< int > &r) override
Definition juce_RenderingHelpers.h:2707
StackBasedLowLevelGraphicsContext()=default
void setFont(const Font &newFont) override
Definition juce_RenderingHelpers.h:2727
void clipToPath(const Path &path, const AffineTransform &t) override
Definition juce_RenderingHelpers.h:2711
void drawImage(const Image &im, const AffineTransform &t) override
Definition juce_RenderingHelpers.h:2724
void fillRect(const Rectangle< float > &r) override
Definition juce_RenderingHelpers.h:2721
void saveState() override
Definition juce_RenderingHelpers.h:2713
RenderingHelpers::SavedStateStack< SavedStateType > stack
Definition juce_RenderingHelpers.h:2734
void drawGlyph(int glyphNumber, const AffineTransform &t) override
Definition juce_RenderingHelpers.h:2725
void drawLine(const Line< float > &line) override
Definition juce_RenderingHelpers.h:2726
void excludeClipRectangle(const Rectangle< int > &r) override
Definition juce_RenderingHelpers.h:2710
void endTransparencyLayer() override
Definition juce_RenderingHelpers.h:2716
bool clipToRectangle(const Rectangle< int > &r) override
Definition juce_RenderingHelpers.h:2708
void fillRect(const Rectangle< int > &r, bool replace) override
Definition juce_RenderingHelpers.h:2720
const Font & getFont() override
Definition juce_RenderingHelpers.h:2728
void fillPath(const Path &path, const AffineTransform &t) override
Definition juce_RenderingHelpers.h:2723
void setInterpolationQuality(Graphics::ResamplingQuality quality) override
Definition juce_RenderingHelpers.h:2719
void setFill(const FillType &fillType) override
Definition juce_RenderingHelpers.h:2717
void beginTransparencyLayer(float opacity) override
Definition juce_RenderingHelpers.h:2715
void clipToImageAlpha(const Image &im, const AffineTransform &t) override
Definition juce_RenderingHelpers.h:2712
void restoreState() override
Definition juce_RenderingHelpers.h:2714
bool isClipEmpty() const override
Definition juce_RenderingHelpers.h:2706
bool clipToRectangleList(const RectangleList< int > &r) override
Definition juce_RenderingHelpers.h:2709
StackBasedLowLevelGraphicsContext(SavedStateType *initialState)
Definition juce_RenderingHelpers.h:2731
void addTransform(const AffineTransform &t) override
Definition juce_RenderingHelpers.h:2703
bool isVectorDevice() const override
Definition juce_RenderingHelpers.h:2701
void setOpacity(float newOpacity) override
Definition juce_RenderingHelpers.h:2718
SingleThreadedReferenceCountedObject()=default
* e
Definition inflate.c:1404
UINT_D64 w
Definition inflate.c:942
struct huft * t
Definition inflate.c:943
int y
Definition inflate.c:1588
int g
Definition inflate.c:1573
register unsigned i
Definition inflate.c:1575
unsigned s
Definition inflate.c:1555
unsigned x[BMAX+1]
Definition inflate.c:1586
unsigned f
Definition inflate.c:1572
static int int height
Definition pugl.h:1594
static int width
Definition pugl.h:1593
int quality
Definition jpeglib.h:919
#define JUCE_BEGIN_IGNORE_WARNINGS_MSVC(warnings)
Definition juce_CompilerWarnings.h:198
#define JUCE_END_IGNORE_WARNINGS_MSVC
Definition juce_CompilerWarnings.h:199
#define JUCE_PERFORM_PIXEL_OP_LOOP(op)
Definition juce_RenderingHelpers.h:558
Definition juce_RenderingHelpers.h:567
void renderGradient(Iterator &iter, const Image::BitmapData &destData, const ColourGradient &g, const AffineTransform &transform, const PixelARGB *lookupTable, int numLookupEntries, bool isIdentity, DestPixelType *)
Definition juce_RenderingHelpers.h:1565
void renderImageTransformed(Iterator &iter, const Image::BitmapData &destData, const Image::BitmapData &srcData, int alpha, const AffineTransform &transform, Graphics::ResamplingQuality quality, bool tiledFill)
Definition juce_RenderingHelpers.h:1409
void renderSolidFill(Iterator &iter, const Image::BitmapData &destData, PixelARGB fillColour, bool replaceContents, DestPixelType *)
Definition juce_RenderingHelpers.h:1550
void renderImageUntransformed(Iterator &iter, const Image::BitmapData &destData, const Image::BitmapData &srcData, int alpha, int x, int y, bool tiledFill)
Definition juce_RenderingHelpers.h:1481
Definition juce_RenderingHelpers.h:404
Definition juce_RenderingHelpers.h:32
Definition carla_juce.cpp:31
CriticalSection::ScopedLockType ScopedLock
Definition juce_CriticalSection.h:186
unsigned int uint32
Definition juce_MathsFunctions.h:45
Type jlimit(Type lowerLimit, Type upperLimit, Type valueToConstrain) noexcept
Definition juce_MathsFunctions.h:262
Type * addBytesToPointer(Type *basePointer, IntegerType bytes) noexcept
Definition juce_Memory.h:111
bool isPositiveAndBelow(Type1 valueToTest, Type2 upperLimit) noexcept
Definition juce_MathsFunctions.h:279
IntegerType negativeAwareModulo(IntegerType dividend, const IntegerType divisor) noexcept
Definition juce_MathsFunctions.h:571
unsigned char uint8
Definition juce_MathsFunctions.h:37
int roundToInt(const FloatType value) noexcept
Definition juce_MathsFunctions.h:465
@ list
Definition juce_AccessibilityRole.h:56
@ image
Definition juce_AccessibilityRole.h:42
static bool diff(const std::string fn1, const std::string fn2)
Definition playertest.cpp:161
Definition juce_Atomic.h:42
Definition juce_RenderingHelpers.h:1594
virtual void fillAllWithGradient(SavedStateType &, ColourGradient &, const AffineTransform &, bool isIdentity) const =0
virtual Ptr clipToEdgeTable(const EdgeTable &)=0
virtual void fillRectWithColour(SavedStateType &, Rectangle< int >, PixelARGB colour, bool replaceContents) const =0
virtual Ptr clipToImageAlpha(const Image &, const AffineTransform &, Graphics::ResamplingQuality)=0
virtual bool clipRegionIntersects(Rectangle< int >) const =0
virtual Rectangle< int > getClipBounds() const =0
virtual void fillAllWithColour(SavedStateType &, PixelARGB colour, bool replaceContents) const =0
virtual Ptr clipToRectangleList(const RectangleList< int > &)=0
virtual Ptr clone() const =0
virtual Ptr clipToPath(const Path &, const AffineTransform &)=0
virtual Ptr clipToRectangle(Rectangle< int >)=0
virtual void translate(Point< int > delta)=0
virtual void renderImageUntransformed(SavedStateType &, const Image &, int alpha, int x, int y, bool tiledFill) const =0
virtual void renderImageTransformed(SavedStateType &, const Image &, int alpha, const AffineTransform &, Graphics::ResamplingQuality, bool tiledFill) const =0
virtual Ptr excludeClipRectangle(Rectangle< int >)=0
ReferenceCountedObjectPtr< Base > Ptr
Definition juce_RenderingHelpers.h:1598
virtual void fillRectWithColour(SavedStateType &, Rectangle< float >, PixelARGB colour) const =0
virtual Ptr applyClipTo(const Ptr &target) const =0
Definition juce_RenderingHelpers.h:1624
void renderImageUntransformed(SavedStateType &state, const Image &src, int alpha, int x, int y, bool tiledFill) const override
Definition juce_RenderingHelpers.h:1777
EdgeTableRegion(const RectangleList< float > &r)
Definition juce_RenderingHelpers.h:1629
Rectangle< int > getClipBounds() const override
Definition juce_RenderingHelpers.h:1731
void translate(Point< int > delta) override
Definition juce_RenderingHelpers.h:1721
Ptr clone() const override
Definition juce_RenderingHelpers.h:1637
bool clipRegionIntersects(Rectangle< int > r) const override
Definition juce_RenderingHelpers.h:1726
Ptr applyClipTo(const Ptr &target) const override
Definition juce_RenderingHelpers.h:1638
void straightClipImage(const Image::BitmapData &srcData, int imageX, int imageY, const SrcPixelType *)
Definition juce_RenderingHelpers.h:1796
void fillAllWithGradient(SavedStateType &state, ColourGradient &gradient, const AffineTransform &transform, bool isIdentity) const override
Definition juce_RenderingHelpers.h:1767
EdgeTableRegion(const EdgeTable &e)
Definition juce_RenderingHelpers.h:1625
Ptr clipToImageAlpha(const Image &image, const AffineTransform &transform, Graphics::ResamplingQuality quality) override
Definition juce_RenderingHelpers.h:1676
EdgeTableRegion(Rectangle< float > r)
Definition juce_RenderingHelpers.h:1627
EdgeTableRegion(Rectangle< int > bounds, const Path &p, const AffineTransform &t)
Definition juce_RenderingHelpers.h:1630
void renderImageTransformed(SavedStateType &state, const Image &src, int alpha, const AffineTransform &transform, Graphics::ResamplingQuality quality, bool tiledFill) const override
Definition juce_RenderingHelpers.h:1772
Ptr clipToEdgeTable(const EdgeTable &et) override
Definition juce_RenderingHelpers.h:1670
void fillRectWithColour(SavedStateType &state, Rectangle< int > area, PixelARGB colour, bool replaceContents) const override
Definition juce_RenderingHelpers.h:1736
void fillRectWithColour(SavedStateType &state, Rectangle< float > area, PixelARGB colour) const override
Definition juce_RenderingHelpers.h:1749
Ptr excludeClipRectangle(Rectangle< int > r) override
Definition juce_RenderingHelpers.h:1657
Ptr clipToPath(const Path &p, const AffineTransform &transform) override
Definition juce_RenderingHelpers.h:1663
EdgeTable edgeTable
Definition juce_RenderingHelpers.h:1782
void transformedClipImage(const Image::BitmapData &srcData, const AffineTransform &transform, Graphics::ResamplingQuality quality, const SrcPixelType *)
Definition juce_RenderingHelpers.h:1786
EdgeTableRegion(const EdgeTableRegion &other)
Definition juce_RenderingHelpers.h:1632
EdgeTableRegion(const RectangleList< int > &r)
Definition juce_RenderingHelpers.h:1628
typename Base::Ptr Ptr
Definition juce_RenderingHelpers.h:1635
Ptr clipToRectangleList(const RectangleList< int > &r) override
Definition juce_RenderingHelpers.h:1646
EdgeTableRegion(Rectangle< int > r)
Definition juce_RenderingHelpers.h:1626
Ptr clipToRectangle(Rectangle< int > r) override
Definition juce_RenderingHelpers.h:1640
void fillAllWithColour(SavedStateType &state, PixelARGB colour, bool replaceContents) const override
Definition juce_RenderingHelpers.h:1762
Definition juce_RenderingHelpers.h:1592
Definition juce_RenderingHelpers.h:701
forcedinline PixelType * getPixel(int x) const noexcept
Definition juce_RenderingHelpers.h:763
void handleEdgeTableRectangle(int x, int y, int width, int height, int alphaLevel) noexcept
Definition juce_RenderingHelpers.h:741
void handleEdgeTableRectangleFull(int x, int y, int width, int height) noexcept
Definition juce_RenderingHelpers.h:750
void handleEdgeTableLine(int x, int width, int alphaLevel) const noexcept
Definition juce_RenderingHelpers.h:725
void handleEdgeTableLineFull(int x, int width) const noexcept
Definition juce_RenderingHelpers.h:735
Gradient(const Image::BitmapData &dest, const ColourGradient &gradient, const AffineTransform &transform, const PixelARGB *colours, int numColours)
Definition juce_RenderingHelpers.h:702
const Image::BitmapData & destData
Definition juce_RenderingHelpers.h:760
forcedinline void handleEdgeTablePixelFull(int x) const noexcept
Definition juce_RenderingHelpers.h:720
forcedinline void setEdgeTableYPos(int y) noexcept
Definition juce_RenderingHelpers.h:709
PixelType * linePixels
Definition juce_RenderingHelpers.h:761
forcedinline void handleEdgeTablePixel(int x, int alphaLevel) const noexcept
Definition juce_RenderingHelpers.h:715
Definition juce_RenderingHelpers.h:775
void handleEdgeTableRectangle(int x, int y, int width, int height, int alphaLevel) noexcept
Definition juce_RenderingHelpers.h:858
SrcPixelType * sourceLineStart
Definition juce_RenderingHelpers.h:893
forcedinline DestPixelType * getDestPixel(int x) const noexcept
Definition juce_RenderingHelpers.h:895
ImageFill(const Image::BitmapData &dest, const Image::BitmapData &src, int alpha, int x, int y)
Definition juce_RenderingHelpers.h:776
DestPixelType * linePixels
Definition juce_RenderingHelpers.h:892
forcedinline void handleEdgeTablePixel(int x, int alphaLevel) const noexcept
Definition juce_RenderingHelpers.h:799
const Image::BitmapData & destData
Definition juce_RenderingHelpers.h:889
forcedinline SrcPixelType const * getSrcPixel(int x) const noexcept
Definition juce_RenderingHelpers.h:900
const int extraAlpha
Definition juce_RenderingHelpers.h:891
void clipEdgeTableLine(EdgeTable &et, int x, int y, int width)
Definition juce_RenderingHelpers.h:876
forcedinline void setEdgeTableYPos(int y) noexcept
Definition juce_RenderingHelpers.h:785
const int xOffset
Definition juce_RenderingHelpers.h:891
forcedinline void handleEdgeTablePixelFull(int x) const noexcept
Definition juce_RenderingHelpers.h:806
void handleEdgeTableLine(int x, int width, int alphaLevel) const noexcept
Definition juce_RenderingHelpers.h:811
forcedinline void copyRow(DestPixelType *dest, SrcPixelType const *src, int width) const noexcept
Definition juce_RenderingHelpers.h:905
void handleEdgeTableLineFull(int x, int width) const noexcept
Definition juce_RenderingHelpers.h:835
void handleEdgeTableRectangleFull(int x, int y, int width, int height) noexcept
Definition juce_RenderingHelpers.h:867
const Image::BitmapData & srcData
Definition juce_RenderingHelpers.h:890
const int yOffset
Definition juce_RenderingHelpers.h:891
Definition juce_RenderingHelpers.h:571
void blendLine(PixelType *dest, PixelARGB colour, int width) const noexcept
Definition juce_RenderingHelpers.h:668
forcedinline void replaceLine(PixelRGB *dest, PixelARGB colour, int width) const noexcept
Definition juce_RenderingHelpers.h:673
forcedinline void handleEdgeTablePixelFull(int x) const noexcept
Definition juce_RenderingHelpers.h:595
forcedinline void setEdgeTableYPos(int y) noexcept
Definition juce_RenderingHelpers.h:582
PixelType * linePixels
Definition juce_RenderingHelpers.h:659
bool areRGBComponentsEqual
Definition juce_RenderingHelpers.h:661
SolidColour(const Image::BitmapData &image, PixelARGB colour)
Definition juce_RenderingHelpers.h:572
void handleEdgeTableRectangle(int x, int y, int width, int height, int alphaLevel) noexcept
Definition juce_RenderingHelpers.h:626
forcedinline void replaceLine(PixelARGB *dest, const PixelARGB colour, int width) const noexcept
Definition juce_RenderingHelpers.h:689
void handleEdgeTableRectangleFull(int x, int y, int width, int height) noexcept
Definition juce_RenderingHelpers.h:652
forcedinline PixelType * getPixel(int x) const noexcept
Definition juce_RenderingHelpers.h:663
forcedinline void handleEdgeTableLineFull(int x, int width) const noexcept
Definition juce_RenderingHelpers.h:616
forcedinline void handleEdgeTablePixel(int x, int alphaLevel) const noexcept
Definition juce_RenderingHelpers.h:587
const Image::BitmapData & destData
Definition juce_RenderingHelpers.h:658
forcedinline void replaceLine(PixelAlpha *dest, const PixelARGB colour, int width) const noexcept
Definition juce_RenderingHelpers.h:681
forcedinline void handleEdgeTableLine(int x, int width, int alphaLevel) const noexcept
Definition juce_RenderingHelpers.h:603
PixelARGB sourceColour
Definition juce_RenderingHelpers.h:660
Definition juce_RenderingHelpers.h:317
FloatRectangleRasterisingInfo(Rectangle< float > area)
Definition juce_RenderingHelpers.h:318
int getBottomRightCornerAlpha() const noexcept
Definition juce_RenderingHelpers.h:393
int right
Definition juce_RenderingHelpers.h:396
bool isOnePixelWide() const noexcept
Definition juce_RenderingHelpers.h:388
int totalTop
Definition juce_RenderingHelpers.h:397
void iterate(Callback &callback) const
Definition juce_RenderingHelpers.h:378
int bottom
Definition juce_RenderingHelpers.h:396
int totalRight
Definition juce_RenderingHelpers.h:397
int leftAlpha
Definition juce_RenderingHelpers.h:398
int left
Definition juce_RenderingHelpers.h:396
int totalBottom
Definition juce_RenderingHelpers.h:397
int rightAlpha
Definition juce_RenderingHelpers.h:398
int totalLeft
Definition juce_RenderingHelpers.h:397
int getTopRightCornerAlpha() const noexcept
Definition juce_RenderingHelpers.h:391
int top
Definition juce_RenderingHelpers.h:396
int getBottomLeftCornerAlpha() const noexcept
Definition juce_RenderingHelpers.h:392
int getTopLeftCornerAlpha() const noexcept
Definition juce_RenderingHelpers.h:390
int bottomAlpha
Definition juce_RenderingHelpers.h:398
int topAlpha
Definition juce_RenderingHelpers.h:398
Definition juce_RenderingHelpers.h:407
const int numEntries
Definition juce_RenderingHelpers.h:465
forcedinline void setY(int y) noexcept
Definition juce_RenderingHelpers.h:450
bool vertical
Definition juce_RenderingHelpers.h:469
Linear(const ColourGradient &gradient, const AffineTransform &transform, const PixelARGB *colours, int numColours)
Definition juce_RenderingHelpers.h:408
int start
Definition juce_RenderingHelpers.h:467
@ numScaleBits
Definition juce_RenderingHelpers.h:470
PixelARGB linePix
Definition juce_RenderingHelpers.h:466
double yTerm
Definition juce_RenderingHelpers.h:468
double grad
Definition juce_RenderingHelpers.h:468
int scale
Definition juce_RenderingHelpers.h:467
PixelARGB getPixel(int x) const noexcept
Definition juce_RenderingHelpers.h:458
bool horizontal
Definition juce_RenderingHelpers.h:469
const PixelARGB *const lookupTable
Definition juce_RenderingHelpers.h:464
forcedinline void setY(int y) noexcept
Definition juce_RenderingHelpers.h:493
const PixelARGB *const lookupTable
Definition juce_RenderingHelpers.h:508
double invScale
Definition juce_RenderingHelpers.h:511
PixelARGB getPixel(int px) const noexcept
Definition juce_RenderingHelpers.h:499
double dy
Definition juce_RenderingHelpers.h:511
double maxDist
Definition juce_RenderingHelpers.h:511
const double gx1
Definition juce_RenderingHelpers.h:510
const int numEntries
Definition juce_RenderingHelpers.h:509
const double gy1
Definition juce_RenderingHelpers.h:510
Radial(const ColourGradient &gradient, const AffineTransform &, const PixelARGB *colours, int numColours)
Definition juce_RenderingHelpers.h:479
RECT const char void(* callback)(const char *droppath))) SWELL_API_DEFINE(BOOL
Definition swell-functions.h:1004
static LV2_State_Status save(LV2_Handle instance, LV2_State_Store_Function store, void *callback_data, uint32_t flags, const LV2_Feature *const *features)
Definition test.c:161
static LV2_State_Status restore(LV2_Handle instance, LV2_State_Retrieve_Function retrieve, void *callback_data, uint32_t flags, const LV2_Feature *const *features)
Definition test.c:292
uch * p
Definition crypt.c:594
return c
Definition crypt.c:175
memcpy(hh, h, RAND_HEAD_LEN)
int r
Definition crypt.c:458
uch h[RAND_HEAD_LEN]
Definition crypt.c:459
register uch * q
Definition fileio.c:817
typedef int(UZ_EXP MsgFn)()
#define const
Definition zconf.h:137