diff options
Diffstat (limited to 'WebCore/svg/graphics/cg/CgSupport.cpp')
-rw-r--r-- | WebCore/svg/graphics/cg/CgSupport.cpp | 100 |
1 files changed, 0 insertions, 100 deletions
diff --git a/WebCore/svg/graphics/cg/CgSupport.cpp b/WebCore/svg/graphics/cg/CgSupport.cpp deleted file mode 100644 index f9bfb4c..0000000 --- a/WebCore/svg/graphics/cg/CgSupport.cpp +++ /dev/null @@ -1,100 +0,0 @@ -/* - * Copyright (C) 2005 Apple Computer, Inc. All rights reserved. - * 2006 Rob Buis <buis@kde.org> - * 2008 Nikolas Zimmermann <zimmermann@kde.org> - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * - * THIS SOFTWARE IS PROVIDED BY APPLE COMPUTER, INC. ``AS IS'' AND ANY - * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR - * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE COMPUTER, INC. OR - * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, - * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, - * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR - * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY - * OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT - * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE - * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - */ - - -#include "config.h" - -#if ENABLE(SVG) -#include "CgSupport.h" - -#include <ApplicationServices/ApplicationServices.h> -#include "FloatConversion.h" -#include "GraphicsContext.h" -#include "RenderStyle.h" -#include "SVGPaintServer.h" -#include "SVGRenderStyle.h" -#include <wtf/Assertions.h> - -namespace WebCore { - -CGContextRef scratchContext() -{ - static CGContextRef scratch = 0; - if (!scratch) { - CFMutableDataRef empty = CFDataCreateMutable(NULL, 0); - CGDataConsumerRef consumer = CGDataConsumerCreateWithCFData(empty); - scratch = CGPDFContextCreate(consumer, NULL, NULL); - CGDataConsumerRelease(consumer); - CFRelease(empty); - - CGFloat black[4] = {0, 0, 0, 1}; - CGContextSetFillColor(scratch, black); - CGContextSetStrokeColor(scratch, black); - } - return scratch; -} - -FloatRect strokeBoundingBox(const Path& path, RenderStyle* style, const RenderObject* object) - { - // the bbox might grow if the path is stroked. - // and CGPathGetBoundingBox doesn't support that, so we'll have - // to make an alternative call... - - // FIXME: since this is mainly used to decide what to repaint, - // perhaps it would be sufficient to just outset the fill bbox by - // the stroke width - that should be way cheaper and simpler than - // what we do here. - - CGPathRef cgPath = path.platformPath(); - - CGContextRef context = scratchContext(); - CGContextSaveGState(context); - - CGContextBeginPath(context); - CGContextAddPath(context, cgPath); - - GraphicsContext gc(context); - applyStrokeStyleToContext(&gc, style, object); - - CGContextReplacePathWithStrokedPath(context); - if (CGContextIsPathEmpty(context)) { - // CGContextReplacePathWithStrokedPath seems to fail to create a path sometimes, this is not well understood. - // returning here prevents CG from logging to the console from CGContextGetPathBoundingBox - CGContextRestoreGState(context); - return FloatRect(); - } - - CGRect box = CGContextGetPathBoundingBox(context); - CGContextRestoreGState(context); - - return FloatRect(box); -} - -} - -#endif // ENABLE(SVG) - |