Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(929)

Unified Diff: Source/core/platform/graphics/ImageBuffer.h

Issue 99103006: Moving GraphicsContext and dependencies from core to platform. (Closed) Base URL: svn://svn.chromium.org/blink/trunk
Patch Set: Final patch - fixes Android Created 7 years ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « Source/core/platform/graphics/Image.cpp ('k') | Source/core/platform/graphics/ImageBuffer.cpp » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: Source/core/platform/graphics/ImageBuffer.h
diff --git a/Source/core/platform/graphics/ImageBuffer.h b/Source/core/platform/graphics/ImageBuffer.h
deleted file mode 100644
index 28ef739473f0b889eccedf47cef031ed083d9d59..0000000000000000000000000000000000000000
--- a/Source/core/platform/graphics/ImageBuffer.h
+++ /dev/null
@@ -1,174 +0,0 @@
-/*
- * Copyright (C) 2006 Nikolas Zimmermann <zimmermann@kde.org>
- * Copyright (C) 2007, 2008, 2009 Apple Inc. All rights reserved.
- * Copyright (C) 2010 Torch Mobile (Beijing) Co. Ltd. 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.
- */
-
-#ifndef ImageBuffer_h
-#define ImageBuffer_h
-
-#include "core/platform/graphics/GraphicsContext.h"
-#include "core/platform/graphics/Canvas2DLayerBridge.h"
-#include "platform/geometry/FloatRect.h"
-#include "platform/geometry/IntSize.h"
-#include "platform/graphics/ColorSpace.h"
-#include "platform/graphics/GraphicsTypes.h"
-#include "platform/graphics/GraphicsTypes3D.h"
-#include "platform/transforms/AffineTransform.h"
-#include "wtf/Forward.h"
-#include "wtf/OwnPtr.h"
-#include "wtf/PassOwnPtr.h"
-#include "wtf/PassRefPtr.h"
-#include "wtf/Uint8ClampedArray.h"
-#include "wtf/Vector.h"
-
-class SkCanvas;
-
-namespace blink { class WebLayer; }
-
-namespace WebCore {
-
-class Image;
-class IntPoint;
-class IntRect;
-class GraphicsContext3D;
-
-enum Multiply {
- Premultiplied,
- Unmultiplied
-};
-
-enum RenderingMode {
- Unaccelerated,
- UnacceleratedNonPlatformBuffer, // Use plain memory allocation rather than platform API to allocate backing store.
- TextureBacked, // Allocate a texture-based SkBitmap for the backing store.
- Accelerated, // Besides a texture-based SkBitmap for the backing store, allocate Canvas2DLayerBridge, etc as well for 2D Canvas drawing.
-};
-
-enum BackingStoreCopy {
- CopyBackingStore, // Guarantee subsequent draws don't affect the copy.
- DontCopyBackingStore // Subsequent draws may affect the copy.
-};
-
-enum ScaleBehavior {
- Scaled,
- Unscaled
-};
-
-enum OpacityMode {
- NonOpaque,
- Opaque,
-};
-
-class ImageBuffer {
- WTF_MAKE_NONCOPYABLE(ImageBuffer); WTF_MAKE_FAST_ALLOCATED;
-public:
- // Will return a null pointer on allocation failure.
- static PassOwnPtr<ImageBuffer> create(const IntSize& size, float resolutionScale = 1, RenderingMode renderingMode = Unaccelerated, OpacityMode opacityMode = NonOpaque, int acceleratedMSAASampleCount = 0)
- {
- bool success = false;
- OwnPtr<ImageBuffer> buf = adoptPtr(new ImageBuffer(size, resolutionScale, renderingMode, opacityMode, acceleratedMSAASampleCount, success));
- if (!success)
- return nullptr;
- return buf.release();
- }
-
- static PassOwnPtr<ImageBuffer> createCompatibleBuffer(const IntSize&, float resolutionScale, const GraphicsContext*, bool hasAlpha);
-
- // Tiles may need float-to-integer coordinate mapping.
- static PassOwnPtr<ImageBuffer> createBufferForTile(const FloatSize& tileSize, const FloatSize& clampedTileSize, RenderingMode);
-
- ~ImageBuffer();
-
- // The actual resolution of the backing store
- const IntSize& internalSize() const { return m_size; }
- const IntSize& logicalSize() const { return m_logicalSize; }
-
- GraphicsContext* context() const;
-
- PassRefPtr<Image> copyImage(BackingStoreCopy = CopyBackingStore, ScaleBehavior = Scaled) const;
- // Give hints on the faster copyImage Mode, return DontCopyBackingStore if it supports the DontCopyBackingStore behavior
- // or return CopyBackingStore if it doesn't.
- static BackingStoreCopy fastCopyImageMode();
-
- enum CoordinateSystem { LogicalCoordinateSystem, BackingStoreCoordinateSystem };
-
- PassRefPtr<Uint8ClampedArray> getUnmultipliedImageData(const IntRect&, CoordinateSystem = LogicalCoordinateSystem) const;
- PassRefPtr<Uint8ClampedArray> getPremultipliedImageData(const IntRect&, CoordinateSystem = LogicalCoordinateSystem) const;
-
- void putByteArray(Multiply multiplied, Uint8ClampedArray*, const IntSize& sourceSize, const IntRect& sourceRect, const IntPoint& destPoint, CoordinateSystem = LogicalCoordinateSystem);
-
- String toDataURL(const String& mimeType, const double* quality = 0, CoordinateSystem = LogicalCoordinateSystem) const;
- AffineTransform baseTransform() const { return AffineTransform(); }
- void transformColorSpace(ColorSpace srcColorSpace, ColorSpace dstColorSpace);
- blink::WebLayer* platformLayer() const;
-
- // FIXME: current implementations of this method have the restriction that they only work
- // with textures that are RGB or RGBA format, UNSIGNED_BYTE type and level 0, as specified in
- // Extensions3D::canUseCopyTextureCHROMIUM().
- bool copyToPlatformTexture(GraphicsContext3D&, Platform3DObject, GC3Denum, GC3Denum, GC3Dint, bool, bool);
-
- Platform3DObject getBackingTexture();
- bool copyRenderingResultsFromDrawingBuffer(DrawingBuffer*);
-
-private:
- bool isValid() const;
-
- void draw(GraphicsContext*, const FloatRect&, const FloatRect& = FloatRect(0, 0, -1, -1), CompositeOperator = CompositeSourceOver, blink::WebBlendMode = blink::WebBlendModeNormal, bool useLowQualityScale = false);
- void drawPattern(GraphicsContext*, const FloatRect&, const FloatSize&, const FloatPoint&, CompositeOperator, const FloatRect&, blink::WebBlendMode, const IntSize& repeatSpacing = IntSize());
- static PassRefPtr<SkColorFilter> createColorSpaceFilter(ColorSpace srcColorSpace, ColorSpace dstColorSpace);
-
- friend class GraphicsContext;
- friend class GeneratedImage;
- friend class CrossfadeGeneratedImage;
- friend class GradientGeneratedImage;
- friend class SkiaImageFilterBuilder;
-
- IntSize m_size;
- IntSize m_logicalSize;
- float m_resolutionScale;
- RefPtr<SkCanvas> m_canvas;
- OwnPtr<GraphicsContext> m_context;
- Canvas2DLayerBridgePtr m_layerBridge;
-
- // This constructor will place its success into the given out-variable
- // so that create() knows when it should return failure.
- ImageBuffer(const IntSize&, float resolutionScale, RenderingMode, OpacityMode, int acceleratedSampleCount, bool& success);
- ImageBuffer(const IntSize&, float resolutionScale, const GraphicsContext*, bool hasAlpha, bool& success);
-};
-
-struct ImageDataBuffer {
- ImageDataBuffer(const IntSize& size, PassRefPtr<Uint8ClampedArray> data) : m_size(size), m_data(data) { }
- IntSize size() const { return m_size; }
- unsigned char* data() const { return m_data->data(); }
-
- IntSize m_size;
- RefPtr<Uint8ClampedArray> m_data;
-};
-
-String ImageDataToDataURL(const ImageDataBuffer&, const String& mimeType, const double* quality);
-
-} // namespace WebCore
-
-#endif // ImageBuffer_h
« no previous file with comments | « Source/core/platform/graphics/Image.cpp ('k') | Source/core/platform/graphics/ImageBuffer.cpp » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698