| Index: Source/WebCore/platform/graphics/win/GraphicsContextWin.cpp
|
| diff --git a/Source/WebCore/platform/graphics/win/GraphicsContextWin.cpp b/Source/WebCore/platform/graphics/win/GraphicsContextWin.cpp
|
| deleted file mode 100644
|
| index bd7e8d871dc35fb673780525b6d877af3c823563..0000000000000000000000000000000000000000
|
| --- a/Source/WebCore/platform/graphics/win/GraphicsContextWin.cpp
|
| +++ /dev/null
|
| @@ -1,204 +0,0 @@
|
| -/*
|
| - * Copyright (C) 2003, 2004, 2005, 2006, 2007, 2008 Apple Inc. All rights reserved.
|
| - *
|
| - * 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"
|
| -#include "GraphicsContext.h"
|
| -
|
| -#include "AffineTransform.h"
|
| -#include "BitmapInfo.h"
|
| -#include "TransformationMatrix.h"
|
| -#include "NotImplemented.h"
|
| -#include "Path.h"
|
| -#include <wtf/MathExtras.h>
|
| -
|
| -using namespace std;
|
| -
|
| -namespace WebCore {
|
| -
|
| -static void fillWithClearColor(HBITMAP bitmap)
|
| -{
|
| - BITMAP bmpInfo;
|
| - GetObject(bitmap, sizeof(bmpInfo), &bmpInfo);
|
| - int bufferSize = bmpInfo.bmWidthBytes * bmpInfo.bmHeight;
|
| - memset(bmpInfo.bmBits, 0, bufferSize);
|
| -}
|
| -
|
| -#if PLATFORM(WIN)
|
| -void GraphicsContext::setShouldIncludeChildWindows(bool include)
|
| -{
|
| - m_data->m_shouldIncludeChildWindows = include;
|
| -}
|
| -
|
| -bool GraphicsContext::shouldIncludeChildWindows() const
|
| -{
|
| - return m_data->m_shouldIncludeChildWindows;
|
| -}
|
| -
|
| -GraphicsContext::WindowsBitmap::WindowsBitmap(HDC hdc, const IntSize& size)
|
| - : m_hdc(0)
|
| -{
|
| - BitmapInfo bitmapInfo = BitmapInfo::create(size);
|
| -
|
| - void* storage = 0;
|
| - m_bitmap = CreateDIBSection(0, &bitmapInfo, DIB_RGB_COLORS, &storage, 0, 0);
|
| - if (!m_bitmap)
|
| - return;
|
| -
|
| - m_hdc = CreateCompatibleDC(hdc);
|
| - SelectObject(m_hdc, m_bitmap);
|
| -
|
| - m_pixelData.initialize(m_bitmap);
|
| -
|
| - ASSERT(storage == m_pixelData.buffer());
|
| -
|
| - SetGraphicsMode(m_hdc, GM_ADVANCED);
|
| -}
|
| -
|
| -GraphicsContext::WindowsBitmap::~WindowsBitmap()
|
| -{
|
| - if (!m_bitmap)
|
| - return;
|
| -
|
| - DeleteDC(m_hdc);
|
| - DeleteObject(m_bitmap);
|
| -}
|
| -
|
| -PassOwnPtr<GraphicsContext::WindowsBitmap> GraphicsContext::createWindowsBitmap(const IntSize& size)
|
| -{
|
| - return adoptPtr(new WindowsBitmap(m_data->m_hdc, size));
|
| -}
|
| -#endif
|
| -
|
| -HDC GraphicsContext::getWindowsContext(const IntRect& dstRect, bool supportAlphaBlend, bool mayCreateBitmap)
|
| -{
|
| - // FIXME: Should a bitmap be created also when a shadow is set?
|
| - if (mayCreateBitmap && (!m_data->m_hdc || isInTransparencyLayer())) {
|
| - if (dstRect.isEmpty())
|
| - return 0;
|
| -
|
| - // Create a bitmap DC in which to draw.
|
| - BitmapInfo bitmapInfo = BitmapInfo::create(dstRect.size());
|
| -
|
| - void* pixels = 0;
|
| - HBITMAP bitmap = ::CreateDIBSection(NULL, &bitmapInfo, DIB_RGB_COLORS, &pixels, 0, 0);
|
| - if (!bitmap)
|
| - return 0;
|
| -
|
| - HDC bitmapDC = ::CreateCompatibleDC(m_data->m_hdc);
|
| - ::SelectObject(bitmapDC, bitmap);
|
| -
|
| - // Fill our buffer with clear if we're going to alpha blend.
|
| - if (supportAlphaBlend)
|
| - fillWithClearColor(bitmap);
|
| -
|
| - // Make sure we can do world transforms.
|
| - SetGraphicsMode(bitmapDC, GM_ADVANCED);
|
| -
|
| - // Apply a translation to our context so that the drawing done will be at (0,0) of the bitmap.
|
| - XFORM xform = TransformationMatrix().translate(-dstRect.x(), -dstRect.y());
|
| -
|
| - ::SetWorldTransform(bitmapDC, &xform);
|
| -
|
| - return bitmapDC;
|
| - }
|
| -
|
| - m_data->flush();
|
| - m_data->save();
|
| - return m_data->m_hdc;
|
| -}
|
| -
|
| -#if PLATFORM(WIN)
|
| -void GraphicsContextPlatformPrivate::save()
|
| -{
|
| - if (!m_hdc)
|
| - return;
|
| - SaveDC(m_hdc);
|
| -}
|
| -
|
| -void GraphicsContextPlatformPrivate::restore()
|
| -{
|
| - if (!m_hdc)
|
| - return;
|
| - RestoreDC(m_hdc, -1);
|
| -}
|
| -
|
| -void GraphicsContextPlatformPrivate::clip(const FloatRect& clipRect)
|
| -{
|
| - if (!m_hdc)
|
| - return;
|
| - IntersectClipRect(m_hdc, clipRect.x(), clipRect.y(), clipRect.maxX(), clipRect.maxY());
|
| -}
|
| -
|
| -void GraphicsContextPlatformPrivate::clip(const Path&)
|
| -{
|
| - notImplemented();
|
| -}
|
| -
|
| -void GraphicsContextPlatformPrivate::scale(const FloatSize& size)
|
| -{
|
| - if (!m_hdc)
|
| - return;
|
| -
|
| - XFORM xform = TransformationMatrix().scaleNonUniform(size.width(), size.height());
|
| - ModifyWorldTransform(m_hdc, &xform, MWT_LEFTMULTIPLY);
|
| -}
|
| -
|
| -static const double deg2rad = 0.017453292519943295769; // pi/180
|
| -
|
| -void GraphicsContextPlatformPrivate::rotate(float degreesAngle)
|
| -{
|
| - XFORM xform = TransformationMatrix().rotate(degreesAngle);
|
| - ModifyWorldTransform(m_hdc, &xform, MWT_LEFTMULTIPLY);
|
| -}
|
| -
|
| -void GraphicsContextPlatformPrivate::translate(float x , float y)
|
| -{
|
| - if (!m_hdc)
|
| - return;
|
| -
|
| - XFORM xform = TransformationMatrix().translate(x, y);
|
| - ModifyWorldTransform(m_hdc, &xform, MWT_LEFTMULTIPLY);
|
| -}
|
| -
|
| -void GraphicsContextPlatformPrivate::concatCTM(const AffineTransform& transform)
|
| -{
|
| - if (!m_hdc)
|
| - return;
|
| -
|
| - XFORM xform = transform.toTransformationMatrix();
|
| - ModifyWorldTransform(m_hdc, &xform, MWT_LEFTMULTIPLY);
|
| -}
|
| -
|
| -void GraphicsContextPlatformPrivate::setCTM(const AffineTransform& transform)
|
| -{
|
| - if (!m_hdc)
|
| - return;
|
| -
|
| - XFORM xform = transform.toTransformationMatrix();
|
| - SetWorldTransform(m_hdc, &xform);
|
| -}
|
| -#endif
|
| -
|
| -}
|
|
|