1
0
Fork 0
mirror of https://github.com/juce-framework/JUCE.git synced 2026-01-21 01:24:21 +00:00

The first working check-in of an iPhone build! Added an iPhone project for the normal juce demo, which runs.. although it isn't exactly designed for a hand-held form factor!

Also in this check-in is support for creation of custom Mac MIDI input and output devices, and an option to load URLs with the QuickTimeComponent
This commit is contained in:
Julian Storer 2009-11-13 16:17:22 +00:00
parent 6c66134173
commit d779fa9759
56 changed files with 3074 additions and 1166 deletions

View file

@ -1180,6 +1180,14 @@ void LowLevelGraphicsSoftwareRenderer::excludeClipRegion (int x, int y, int w, i
clip->subtract (Rectangle (x + xOffset, y + yOffset, w, h));
}
void LowLevelGraphicsSoftwareRenderer::clipToPath (const Path& path, const AffineTransform& transform)
{
}
void LowLevelGraphicsSoftwareRenderer::clipToImage (Image& image, int imageX, int imageY)
{
}
bool LowLevelGraphicsSoftwareRenderer::clipRegionIntersects (int x, int y, int w, int h)
{
return clip->intersectsRectangle (Rectangle (x + xOffset, y + yOffset, w, h));
@ -1362,7 +1370,7 @@ void LowLevelGraphicsSoftwareRenderer::clippedFillPath (int clipX, int clipY, in
if (getPathBounds (clipX, clipY, clipW, clipH, path, transform, cx, cy, cw, ch))
{
EdgeTable edgeTable (0, ch, path, transform.translated ((float) -cx, (float) -cy));
EdgeTable edgeTable (Rectangle (0, 0, cw, ch), path, transform.translated ((float) -cx, (float) -cy));
int stride, pixelStride;
uint8* const pixels = (uint8*) image.lockPixelDataReadWrite (cx, cy, cw, ch, stride, pixelStride);
@ -1398,18 +1406,18 @@ void LowLevelGraphicsSoftwareRenderer::clippedFillPath (int clipX, int clipY, in
if (isIdentity)
{
GradientEdgeTableRenderer <PixelRGB, RadialGradientPixelGenerator> renderer (pixels, stride, g2, lookupTable, numLookupEntries);
edgeTable.iterate (renderer, 0, 0, cw, ch, 0);
edgeTable.iterate (renderer);
}
else
{
GradientEdgeTableRenderer <PixelRGB, TransformedRadialGradientPixelGenerator> renderer (pixels, stride, g2, lookupTable, numLookupEntries);
edgeTable.iterate (renderer, 0, 0, cw, ch, 0);
edgeTable.iterate (renderer);
}
}
else
{
GradientEdgeTableRenderer <PixelRGB, LinearGradientPixelGenerator> renderer (pixels, stride, g2, lookupTable, numLookupEntries);
edgeTable.iterate (renderer, 0, 0, cw, ch, 0);
edgeTable.iterate (renderer);
}
}
else if (image.getFormat() == Image::ARGB)
@ -1421,18 +1429,18 @@ void LowLevelGraphicsSoftwareRenderer::clippedFillPath (int clipX, int clipY, in
if (isIdentity)
{
GradientEdgeTableRenderer <PixelARGB, RadialGradientPixelGenerator> renderer (pixels, stride, g2, lookupTable, numLookupEntries);
edgeTable.iterate (renderer, 0, 0, cw, ch, 0);
edgeTable.iterate (renderer);
}
else
{
GradientEdgeTableRenderer <PixelARGB, TransformedRadialGradientPixelGenerator> renderer (pixels, stride, g2, lookupTable, numLookupEntries);
edgeTable.iterate (renderer, 0, 0, cw, ch, 0);
edgeTable.iterate (renderer);
}
}
else
{
GradientEdgeTableRenderer <PixelARGB, LinearGradientPixelGenerator> renderer (pixels, stride, g2, lookupTable, numLookupEntries);
edgeTable.iterate (renderer, 0, 0, cw, ch, 0);
edgeTable.iterate (renderer);
}
}
else if (image.getFormat() == Image::SingleChannel)
@ -1448,19 +1456,19 @@ void LowLevelGraphicsSoftwareRenderer::clippedFillPath (int clipX, int clipY, in
{
jassert (pixelStride == 3);
SolidColourEdgeTableRenderer <PixelRGB> renderer (pixels, stride, colour);
edgeTable.iterate (renderer, 0, 0, cw, ch, 0);
edgeTable.iterate (renderer);
}
else if (image.getFormat() == Image::ARGB)
{
jassert (pixelStride == 4);
SolidColourEdgeTableRenderer <PixelARGB> renderer (pixels, stride, colour);
edgeTable.iterate (renderer, 0, 0, cw, ch, 0);
edgeTable.iterate (renderer);
}
else if (image.getFormat() == Image::SingleChannel)
{
jassert (pixelStride == 1);
AlphaBitmapRenderer renderer (pixels, stride);
edgeTable.iterate (renderer, 0, 0, cw, ch, 0);
edgeTable.iterate (renderer);
}
}
@ -1489,7 +1497,8 @@ void LowLevelGraphicsSoftwareRenderer::clippedFillPathWithImage (int x, int y, i
{
if (Rectangle::intersectRectangles (x, y, w, h, imageX, imageY, sourceImage.getWidth(), sourceImage.getHeight()))
{
EdgeTable edgeTable (0, h, path, transform.translated ((float) (xOffset - x), (float) (yOffset - y)));
EdgeTable edgeTable (Rectangle (0, 0, w, h), path,
transform.translated ((float) (xOffset - x), (float) (yOffset - y)));
int stride, pixelStride;
uint8* const pixels = (uint8*) image.lockPixelDataReadWrite (x, y, w, h, stride, pixelStride);
@ -1506,14 +1515,14 @@ void LowLevelGraphicsSoftwareRenderer::clippedFillPathWithImage (int x, int y, i
ImageFillEdgeTableRenderer <PixelRGB, PixelRGB> renderer (pixels, stride,
srcPix, srcStride,
alpha, (PixelRGB*) 0);
edgeTable.iterate (renderer, 0, 0, w, h, 0);
edgeTable.iterate (renderer);
}
else if (sourceImage.getFormat() == Image::ARGB)
{
ImageFillEdgeTableRenderer <PixelRGB, PixelARGB> renderer (pixels, stride,
srcPix, srcStride,
alpha, (PixelARGB*) 0);
edgeTable.iterate (renderer, 0, 0, w, h, 0);
edgeTable.iterate (renderer);
}
else
{
@ -1527,14 +1536,14 @@ void LowLevelGraphicsSoftwareRenderer::clippedFillPathWithImage (int x, int y, i
ImageFillEdgeTableRenderer <PixelARGB, PixelRGB> renderer (pixels, stride,
srcPix, srcStride,
alpha, (PixelRGB*) 0);
edgeTable.iterate (renderer, 0, 0, w, h, 0);
edgeTable.iterate (renderer);
}
else if (sourceImage.getFormat() == Image::ARGB)
{
ImageFillEdgeTableRenderer <PixelARGB, PixelARGB> renderer (pixels, stride,
srcPix, srcStride,
alpha, (PixelARGB*) 0);
edgeTable.iterate (renderer, 0, 0, w, h, 0);
edgeTable.iterate (renderer);
}
else
{