summaryrefslogtreecommitdiffstats
path: root/WebCore/platform/graphics/wince/ImageWinCE.cpp
diff options
context:
space:
mode:
authorSteve Block <steveblock@google.com>2011-05-06 11:45:16 +0100
committerSteve Block <steveblock@google.com>2011-05-12 13:44:10 +0100
commitcad810f21b803229eb11403f9209855525a25d57 (patch)
tree29a6fd0279be608e0fe9ffe9841f722f0f4e4269 /WebCore/platform/graphics/wince/ImageWinCE.cpp
parent121b0cf4517156d0ac5111caf9830c51b69bae8f (diff)
downloadexternal_webkit-cad810f21b803229eb11403f9209855525a25d57.zip
external_webkit-cad810f21b803229eb11403f9209855525a25d57.tar.gz
external_webkit-cad810f21b803229eb11403f9209855525a25d57.tar.bz2
Merge WebKit at r75315: Initial merge by git.
Change-Id: I570314b346ce101c935ed22a626b48c2af266b84
Diffstat (limited to 'WebCore/platform/graphics/wince/ImageWinCE.cpp')
-rw-r--r--WebCore/platform/graphics/wince/ImageWinCE.cpp195
1 files changed, 0 insertions, 195 deletions
diff --git a/WebCore/platform/graphics/wince/ImageWinCE.cpp b/WebCore/platform/graphics/wince/ImageWinCE.cpp
deleted file mode 100644
index c0b2b53..0000000
--- a/WebCore/platform/graphics/wince/ImageWinCE.cpp
+++ /dev/null
@@ -1,195 +0,0 @@
-/*
- * Copyright (C) 2006, 2007 Apple Inc. All rights reserved.
- * Copyright (C) 2007-2009 Torch Mobile Inc.
- * Copyright (C) 2010 Patrick Gansterer <paroga@paroga.com>
- *
- * 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 AND ITS CONTRIBUTORS "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 OR ITS 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 "Image.h"
-
-#include "BitmapImage.h"
-#include "GraphicsContext.h"
-#include "ImageDecoder.h"
-#include "NotImplemented.h"
-#include "PlatformString.h"
-#include "SharedBuffer.h"
-#include "TransformationMatrix.h"
-#include "WinceGraphicsExtras.h"
-#include <wtf/OwnPtr.h>
-
-#include <windows.h>
-
-namespace WebCore {
-
-NativeImagePtr RGBA32Buffer::asNewNativeImage() const
-{
- return SharedBitmap::create(m_backingStore, m_size, hasAlpha());
-}
-
-bool FrameData::clear(bool clearMetaData)
-{
- if (clearMetaData)
- m_haveMetadata = false;
-
- if (m_frame) {
- m_frame = 0;
- return true;
- }
-
- return false;
-}
-
-bool BitmapImage::getHBITMAPOfSize(HBITMAP bmp, LPSIZE size)
-{
- if (!bmp)
- return false;
-
- BITMAP bmpInfo;
- GetObject(bmp, sizeof(BITMAP), &bmpInfo);
-
- ASSERT(bmpInfo.bmBitsPixel == 32);
- int bufferSize = bmpInfo.bmWidthBytes * bmpInfo.bmHeight;
-
- OwnPtr<HDC> hdc(CreateCompatibleDC(0));
- HGDIOBJ hOldBmp = SelectObject(hdc.get(), bmp);
-
- {
- GraphicsContext gc(hdc.get());
-
- IntSize imageSize = BitmapImage::size();
- if (size)
- drawFrameMatchingSourceSize(&gc, FloatRect(0, 0, bmpInfo.bmWidth, bmpInfo.bmHeight), IntSize(*size), ColorSpaceDeviceRGB, CompositeCopy);
- else
- draw(&gc, FloatRect(0, 0, bmpInfo.bmWidth, bmpInfo.bmHeight), FloatRect(0, 0, imageSize.width(), imageSize.height()), ColorSpaceDeviceRGB, CompositeCopy);
- }
-
- SelectObject(hdc.get(), hOldBmp);
-
- return true;
-}
-
-void BitmapImage::drawFrameMatchingSourceSize(GraphicsContext* ctxt, const FloatRect& dstRect, const IntSize& srcSize, ColorSpace styleColorSpace, CompositeOperator compositeOp)
-{
- int frames = frameCount();
- for (int i = 0; i < frames; ++i) {
- RefPtr<SharedBitmap> bmp = frameAtIndex(i);
- if (!bmp || bmp->height() != static_cast<unsigned>(srcSize.height()) || bmp->width() != static_cast<unsigned>(srcSize.width()))
- continue;
-
- size_t currentFrame = m_currentFrame;
- m_currentFrame = i;
- draw(ctxt, dstRect, FloatRect(0, 0, srcSize.width(), srcSize.height()), styleColorSpace, compositeOp);
- m_currentFrame = currentFrame;
- return;
- }
-
- // No image of the correct size was found, fallback to drawing the current frame
- IntSize imageSize = BitmapImage::size();
- draw(ctxt, dstRect, FloatRect(0, 0, imageSize.width(), imageSize.height()), styleColorSpace, compositeOp);
-}
-
-void BitmapImage::draw(GraphicsContext* ctxt, const FloatRect& dstRect, const FloatRect& srcRectIn, ColorSpace styleColorSpace, CompositeOperator compositeOp)
-{
- if (!m_source.initialized())
- return;
-
- if (mayFillWithSolidColor())
- fillWithSolidColor(ctxt, dstRect, solidColor(), styleColorSpace, compositeOp);
- else {
- IntRect intSrcRect(srcRectIn);
- RefPtr<SharedBitmap> bmp = frameAtIndex(m_currentFrame);
-
- if (bmp->width() != m_source.size().width()) {
- double scaleFactor = static_cast<double>(bmp->width()) / m_source.size().width();
-
- intSrcRect.setX(stableRound(srcRectIn.x() * scaleFactor));
- intSrcRect.setWidth(stableRound(srcRectIn.width() * scaleFactor));
- intSrcRect.setY(stableRound(srcRectIn.y() * scaleFactor));
- intSrcRect.setHeight(stableRound(srcRectIn.height() * scaleFactor));
- }
- bmp->draw(ctxt, enclosingIntRect(dstRect), intSrcRect, styleColorSpace, compositeOp);
- }
-
- startAnimation();
-}
-
-void Image::drawPattern(GraphicsContext* ctxt, const FloatRect& tileRect, const AffineTransform& patternTransform,
- const FloatPoint& phase, ColorSpace styleColorSpace, CompositeOperator op, const FloatRect& destRect)
-{
- notImplemented();
-}
-
-void BitmapImage::drawPattern(GraphicsContext* ctxt, const FloatRect& tileRectIn, const AffineTransform& patternTransform,
- const FloatPoint& phase, ColorSpace styleColorSpace, CompositeOperator op, const FloatRect& destRect)
-{
- RefPtr<SharedBitmap> bmp = nativeImageForCurrentFrame();
- if (!bmp)
- return;
-
- bmp->drawPattern(ctxt, tileRectIn, patternTransform, phase, styleColorSpace, op, destRect, m_source.size());
-}
-
-void BitmapImage::checkForSolidColor()
-{
- if (m_checkedForSolidColor)
- return;
-
- if (frameCount() != 1) {
- m_isSolidColor = false;
- m_checkedForSolidColor = true;
- return;
- }
-
- RefPtr<SharedBitmap> bmp = frameAtIndex(0);
- if (!bmp || !bmp->validHeight()) {
- m_isSolidColor = false;
- return;
- }
-
- if (bmp->width() != 1 || bmp->validHeight() != 1) {
- m_isSolidColor = false;
- m_checkedForSolidColor = true;
- return;
- }
-
- m_isSolidColor = true;
-
- if (bmp->is16bit()) {
- unsigned short c = ((unsigned short *)bmp->bytes())[0];
- int r = (c >> 7) & 0xF8;
- int g = (c >> 2) & 0xF8;
- int b = (c << 3) & 0xF8;
- if (bmp->usesTransparentColor() && bmp->transparentColor() == RGB(r, g, b))
- m_solidColor = Color(r, g, b, 0);
- else
- m_solidColor = Color(r, g, b);
- } else {
- unsigned c = ((unsigned *)bmp->bytes())[0];
- m_solidColor = Color(c);
- }
-
- if (bmp->validHeight() == bmp->height())
- m_checkedForSolidColor = true;
-}
-
-} // namespace WebCore