summaryrefslogtreecommitdiffstats
path: root/skia
diff options
context:
space:
mode:
authorvandebo@chromium.org <vandebo@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2011-04-07 22:34:36 +0000
committervandebo@chromium.org <vandebo@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2011-04-07 22:34:36 +0000
commit1e44a9a4adccf4f31d817177e2ee47b58c93f40d (patch)
tree26ec83a404b1dd4deceb479ca3ef3540141de75e /skia
parent1e14033b64fcacbd29ef345d63b6e7ed2c576f2d (diff)
downloadchromium_src-1e44a9a4adccf4f31d817177e2ee47b58c93f40d.zip
chromium_src-1e44a9a4adccf4f31d817177e2ee47b58c93f40d.tar.gz
chromium_src-1e44a9a4adccf4f31d817177e2ee47b58c93f40d.tar.bz2
Revert 80841 - + This CL pulls in all the PDF code (i.e. we are now compiling the PDF backend on Chrome).+ Add a Metafile to contain Skia PDF content.+ Add a VectorPlatformDevice for use with the Skia PDF backend.BUG=62889TEST=NONEReview URL: http://codereview.chromium.org/6499024
TBR=vandebo@chromium.org Review URL: http://codereview.chromium.org/6814028 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@80857 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'skia')
-rw-r--r--skia/config/SkUserConfig.h27
-rw-r--r--skia/ext/vector_platform_device_skia.cc254
-rw-r--r--skia/ext/vector_platform_device_skia.h106
-rw-r--r--skia/skia.gyp36
4 files changed, 0 insertions, 423 deletions
diff --git a/skia/config/SkUserConfig.h b/skia/config/SkUserConfig.h
index a7d830a..d9746b7 100644
--- a/skia/config/SkUserConfig.h
+++ b/skia/config/SkUserConfig.h
@@ -113,33 +113,6 @@
*/
//#define SK_USE_RUNTIME_GLOBALS
-/* If zlib is available and you want to support the flate compression
- algorithm (used in PDF generation), define SK_ZLIB_INCLUDE to be the
- include path.
- */
-//#define SK_ZLIB_INCLUDE <zlib.h>
-#if defined(USE_SYSTEM_ZLIB)
-#define SK_ZLIB_INCLUDE <zlib.h>
-#else
-#define SK_ZLIB_INCLUDE "third_party/zlib/zlib.h"
-#define MOZ_Z_inflate inflate
-#define MOZ_Z_inflateInit_ inflateInit_
-#define MOZ_Z_inflateEnd inflateEnd
-#define MOZ_Z_deflate deflate
-#define MOZ_Z_deflateInit_ deflateInit_
-#define MOZ_Z_deflateEnd deflateEnd
-#endif
-
-/* Define this to allow PDF scalars above 32k. The PDF/A spec doesn't allow
- them, but modern PDF interpreters should handle them just fine.
- */
-//#define SK_ALLOW_LARGE_PDF_SCALARS
-
-/* Define this to remove dimension checks on bitmaps. Not all blits will be
- correct yet, so this is mostly for debugging the implementation.
- */
-//#define SK_ALLOW_OVER_32K_BITMAPS
-
/* To write debug messages to a console, skia will call SkDebugf(...) following
printf conventions (e.g. const char* format, ...). If you want to redirect
diff --git a/skia/ext/vector_platform_device_skia.cc b/skia/ext/vector_platform_device_skia.cc
deleted file mode 100644
index 8c064cb..0000000
--- a/skia/ext/vector_platform_device_skia.cc
+++ /dev/null
@@ -1,254 +0,0 @@
-// Copyright (c) 2009 The Chromium Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style license that can be
-// found in the LICENSE file.
-
-#include "skia/ext/vector_platform_device_skia.h"
-
-#include "skia/ext/bitmap_platform_device.h"
-#include "third_party/skia/include/core/SkClipStack.h"
-#include "third_party/skia/include/core/SkDraw.h"
-#include "third_party/skia/include/core/SkRect.h"
-#include "third_party/skia/include/core/SkRegion.h"
-#include "third_party/skia/include/core/SkScalar.h"
-
-namespace skia {
-
-SkDevice* VectorPlatformDeviceSkiaFactory::newDevice(SkCanvas* noUsed,
- SkBitmap::Config config,
- int width, int height,
- bool isOpaque,
- bool isForLayer) {
- SkASSERT(config == SkBitmap::kARGB_8888_Config);
- SkPDFDevice::OriginTransform flip = SkPDFDevice::kFlip_OriginTransform;
- if (isForLayer)
- flip = SkPDFDevice::kNoFlip_OriginTransform;
- return new VectorPlatformDeviceSkia(width, height, flip);
-}
-
-static inline SkBitmap makeABitmap(int width, int height) {
- SkBitmap bitmap;
- bitmap.setConfig(SkBitmap::kNo_Config, width, height);
- return bitmap;
-}
-
-VectorPlatformDeviceSkia::VectorPlatformDeviceSkia(
- int width, int height, SkPDFDevice::OriginTransform flip)
- : PlatformDevice(makeABitmap(width, height)),
- pdf_device_(new SkPDFDevice(width, height, flip)) {
- pdf_device_->unref(); // SkRefPtr and new both took a reference.
- base_transform_.reset();
-}
-
-VectorPlatformDeviceSkia::~VectorPlatformDeviceSkia() {
-}
-
-bool VectorPlatformDeviceSkia::IsVectorial() {
- return true;
-}
-
-bool VectorPlatformDeviceSkia::IsNativeFontRenderingAllowed() {
- return false;
-}
-
-PlatformDevice::PlatformSurface VectorPlatformDeviceSkia::BeginPlatformPaint() {
- // Even when drawing a vector representation of the page, we have to
- // provide a raster surface for plugins to render into - they don't have
- // a vector interface. Therefore we create a BitmapPlatformDevice here
- // and return the context from it, then layer on the raster data as an
- // image in EndPlatformPaint.
- DCHECK(raster_surface_ == NULL);
-#if defined(OS_WIN)
- raster_surface_ = BitmapPlatformDevice::create(pdf_device_->width(),
- pdf_device_->height(),
- false, /* not opaque */
- NULL);
-#elif defined(OS_LINUX)
- raster_surface_ = BitmapPlatformDevice::Create(pdf_device_->width(),
- pdf_device_->height(),
- false /* not opaque */);
-#endif
- raster_surface_->unref(); // SkRefPtr and create both took a reference.
-
- SkCanvas canvas(raster_surface_.get());
- SkPaint black;
- black.setColor(SK_ColorBLACK);
- canvas.drawPaint(black);
- return raster_surface_->BeginPlatformPaint();
-}
-
-void VectorPlatformDeviceSkia::EndPlatformPaint() {
- DCHECK(raster_surface_ != NULL);
- SkPaint paint;
- pdf_device_->drawSprite(SkDraw(),
- raster_surface_->accessBitmap(false),
- base_transform_.getTranslateX(),
- base_transform_.getTranslateY(),
- paint);
- raster_surface_ = NULL;
-}
-
-SkDeviceFactory* VectorPlatformDeviceSkia::getDeviceFactory() {
- return SkNEW(VectorPlatformDeviceSkiaFactory);
-}
-
-uint32_t VectorPlatformDeviceSkia::getDeviceCapabilities() {
- return kVector_Capability;
-}
-
-int VectorPlatformDeviceSkia::width() const {
- return pdf_device_->width();
-}
-
-int VectorPlatformDeviceSkia::height() const {
- return pdf_device_->height();
-}
-
-void VectorPlatformDeviceSkia::setMatrixClip(const SkMatrix& matrix,
- const SkRegion& region,
- const SkClipStack& stack) {
- SkMatrix transform = base_transform_;
- transform.preConcat(matrix);
-
- DCHECK(SkMatrix::kTranslate_Mask == base_transform_.getType() ||
- SkMatrix::kIdentity_Mask == base_transform_.getType());
- SkRegion clip = region;
- clip.translate(base_transform_.getTranslateX(),
- base_transform_.getTranslateY());
-
- pdf_device_->setMatrixClip(transform, clip, stack);
-}
-
-bool VectorPlatformDeviceSkia::readPixels(const SkIRect& srcRect,
- SkBitmap* bitmap) {
- return false;
-}
-
-void VectorPlatformDeviceSkia::drawPaint(const SkDraw& draw,
- const SkPaint& paint) {
- pdf_device_->drawPaint(draw, paint);
-}
-
-void VectorPlatformDeviceSkia::drawPoints(const SkDraw& draw,
- SkCanvas::PointMode mode,
- size_t count, const SkPoint pts[],
- const SkPaint& paint) {
- pdf_device_->drawPoints(draw, mode, count, pts, paint);
-}
-
-void VectorPlatformDeviceSkia::drawRect(const SkDraw& draw,
- const SkRect& rect,
- const SkPaint& paint) {
- pdf_device_->drawRect(draw, rect, paint);
-}
-
-void VectorPlatformDeviceSkia::drawPath(const SkDraw& draw,
- const SkPath& path,
- const SkPaint& paint,
- const SkMatrix* prePathMatrix,
- bool pathIsMutable) {
- pdf_device_->drawPath(draw, path, paint, prePathMatrix, pathIsMutable);
-}
-
-void VectorPlatformDeviceSkia::drawBitmap(const SkDraw& draw,
- const SkBitmap& bitmap,
- const SkIRect* srcRectOrNull,
- const SkMatrix& matrix,
- const SkPaint& paint) {
- pdf_device_->drawBitmap(draw, bitmap, srcRectOrNull, matrix, paint);
-}
-
-void VectorPlatformDeviceSkia::drawSprite(const SkDraw& draw,
- const SkBitmap& bitmap,
- int x, int y,
- const SkPaint& paint) {
- pdf_device_->drawSprite(draw, bitmap, x, y, paint);
-}
-
-void VectorPlatformDeviceSkia::drawText(const SkDraw& draw,
- const void* text,
- size_t byteLength,
- SkScalar x,
- SkScalar y,
- const SkPaint& paint) {
- pdf_device_->drawText(draw, text, byteLength, x, y, paint);
-}
-
-void VectorPlatformDeviceSkia::drawPosText(const SkDraw& draw,
- const void* text,
- size_t len,
- const SkScalar pos[],
- SkScalar constY,
- int scalarsPerPos,
- const SkPaint& paint) {
- pdf_device_->drawPosText(draw, text, len, pos, constY, scalarsPerPos, paint);
-}
-
-void VectorPlatformDeviceSkia::drawTextOnPath(const SkDraw& draw,
- const void* text,
- size_t len,
- const SkPath& path,
- const SkMatrix* matrix,
- const SkPaint& paint) {
- pdf_device_->drawTextOnPath(draw, text, len, path, matrix, paint);
-}
-
-void VectorPlatformDeviceSkia::drawVertices(const SkDraw& draw,
- SkCanvas::VertexMode vmode,
- int vertexCount,
- const SkPoint vertices[],
- const SkPoint texs[],
- const SkColor colors[],
- SkXfermode* xmode,
- const uint16_t indices[],
- int indexCount,
- const SkPaint& paint) {
- pdf_device_->drawVertices(draw, vmode, vertexCount, vertices, texs, colors,
- xmode, indices, indexCount, paint);
-}
-
-void VectorPlatformDeviceSkia::drawDevice(const SkDraw& draw,
- SkDevice* device,
- int x,
- int y,
- const SkPaint& paint) {
- SkDevice* real_device = device;
- if ((device->getDeviceCapabilities() & kVector_Capability)) {
- // Assume that a vectorial device means a VectorPlatformDeviceSkia, we need
- // to unwrap the embedded SkPDFDevice.
- VectorPlatformDeviceSkia* vector_device =
- static_cast<VectorPlatformDeviceSkia*>(device);
- real_device = vector_device->pdf_device_.get();
- }
- pdf_device_->drawDevice(draw, real_device, x, y, paint);
-}
-
-#if defined(OS_WIN)
-void VectorPlatformDeviceSkia::drawToHDC(HDC dc,
- int x,
- int y,
- const RECT* src_rect) {
- SkASSERT(false);
-}
-#endif
-
-void VectorPlatformDeviceSkia::setInitialTransform(int xOffset, int yOffset,
- float scale_factor) {
- // TODO(vandebo) Supporting a scale factor is some work because we have to
- // transform both matrices and clips that come in, but Region only supports
- // translation. Instead, we could change SkPDFDevice to include it in the
- // initial transform. Delay that work until we would use it. Also checked
- // in setMatrixClip.
- DCHECK_EQ(1.0f, scale_factor);
-
- base_transform_.setTranslate(xOffset, yOffset);
- SkScalar scale = SkFloatToScalar(scale_factor);
- base_transform_.postScale(scale, scale);
-
- SkMatrix matrix;
- matrix.reset();
- SkRegion region;
- SkClipStack stack;
- setMatrixClip(matrix, region, stack);
-}
-
-} // namespace skia
diff --git a/skia/ext/vector_platform_device_skia.h b/skia/ext/vector_platform_device_skia.h
deleted file mode 100644
index 38cf0c5..0000000
--- a/skia/ext/vector_platform_device_skia.h
+++ /dev/null
@@ -1,106 +0,0 @@
-// Copyright (c) 2011 The Chromium Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style license that can be
-// found in the LICENSE file.
-
-#ifndef SKIA_EXT_VECTOR_PLATFORM_DEVICE_SKIA_H_
-#define SKIA_EXT_VECTOR_PLATFORM_DEVICE_SKIA_H_
-#pragma once
-
-#include "base/basictypes.h"
-#include "base/logging.h"
-#include "skia/ext/platform_device.h"
-#include "third_party/skia/include/core/SkMatrix.h"
-#include "third_party/skia/include/core/SkRefCnt.h"
-#include "third_party/skia/include/core/SkTScopedPtr.h"
-#include "third_party/skia/include/pdf/SkPDFDevice.h"
-
-class SkClipStack;
-struct SkIRect;
-struct SkRect;
-
-namespace skia {
-
-class BitmapPlatformDevice;
-
-class VectorPlatformDeviceSkiaFactory : public SkDeviceFactory {
- public:
- virtual SkDevice* newDevice(SkCanvas* notUsed, SkBitmap::Config config,
- int width, int height, bool isOpaque,
- bool isForLayer);
-};
-
-class VectorPlatformDeviceSkia : public PlatformDevice {
- public:
- VectorPlatformDeviceSkia(int width, int height,
- SkPDFDevice::OriginTransform flip);
-
- ~VectorPlatformDeviceSkia();
-
- SkPDFDevice* PdfDevice() { return pdf_device_.get(); }
-
- // PlatformDevice methods.
- virtual bool IsVectorial();
- virtual bool IsNativeFontRenderingAllowed();
-
- virtual PlatformSurface BeginPlatformPaint();
- virtual void EndPlatformPaint();
-
- // SkDevice methods.
- virtual SkDeviceFactory* getDeviceFactory();
- virtual uint32_t getDeviceCapabilities();
-
- virtual int width() const;
- virtual int height() const;
- virtual void setMatrixClip(const SkMatrix& matrix, const SkRegion& region,
- const SkClipStack& stack);
- virtual bool readPixels(const SkIRect& srcRect, SkBitmap* bitmap);
-
- virtual void drawPaint(const SkDraw& draw, const SkPaint& paint);
- virtual void drawPoints(const SkDraw& draw, SkCanvas::PointMode mode,
- size_t count, const SkPoint[], const SkPaint& paint);
- virtual void drawRect(const SkDraw& draw, const SkRect& rect,
- const SkPaint& paint);
- virtual void drawPath(const SkDraw& draw, const SkPath& path,
- const SkPaint& paint, const SkMatrix* prePathMatrix,
- bool pathIsMutable);
- virtual void drawBitmap(const SkDraw& draw, const SkBitmap& bitmap,
- const SkIRect* srcRectOrNull, const SkMatrix& matrix,
- const SkPaint& paint);
- virtual void drawSprite(const SkDraw& draw, const SkBitmap& bitmap,
- int x, int y, const SkPaint& paint);
- virtual void drawText(const SkDraw& draw, const void* text, size_t len,
- SkScalar x, SkScalar y, const SkPaint& paint);
- virtual void drawPosText(const SkDraw& draw, const void* text, size_t len,
- const SkScalar pos[], SkScalar constY,
- int scalarsPerPos, const SkPaint& paint);
- virtual void drawTextOnPath(const SkDraw& draw, const void* text, size_t len,
- const SkPath& path, const SkMatrix* matrix,
- const SkPaint& paint);
- virtual void drawVertices(const SkDraw& draw, SkCanvas::VertexMode,
- int vertexCount, const SkPoint verts[],
- const SkPoint texs[], const SkColor colors[],
- SkXfermode* xmode, const uint16_t indices[],
- int indexCount, const SkPaint& paint);
- virtual void drawDevice(const SkDraw& draw, SkDevice*, int x, int y,
- const SkPaint&);
-
-#if defined(OS_WIN)
- virtual void drawToHDC(HDC dc, int x, int y, const RECT* src_rect);
-#endif
-
- // Our own methods.
-
- // This needs to be called before anything is drawn.
- void setInitialTransform(int xOffset, int yOffset, float scale_factor);
-
- private:
- SkRefPtr<SkPDFDevice> pdf_device_;
- SkMatrix base_transform_;
- SkRefPtr<BitmapPlatformDevice> raster_surface_;
-
- DISALLOW_COPY_AND_ASSIGN(VectorPlatformDeviceSkia);
-};
-
-} // namespace skia
-
-#endif // SKIA_EXT_VECTOR_PLATFORM_DEVICE_SKIA_H_
diff --git a/skia/skia.gyp b/skia/skia.gyp
index c42d7ff..45d2a9a 100644
--- a/skia/skia.gyp
+++ b/skia/skia.gyp
@@ -325,7 +325,6 @@
'../third_party/skia/src/core/SkFP.h',
'../third_party/skia/src/core/SkFilterProc.cpp',
'../third_party/skia/src/core/SkFilterProc.h',
- '../third_party/skia/src/core/SkFlate.cpp',
'../third_party/skia/src/core/SkFlattenable.cpp',
'../third_party/skia/src/core/SkFloat.cpp',
'../third_party/skia/src/core/SkFloat.h',
@@ -463,19 +462,6 @@
'../third_party/skia/src/opts/opts_check_SSE2.cpp',
- '../third_party/skia/src/pdf/SkPDFCatalog.cpp',
- '../third_party/skia/src/pdf/SkPDFDevice.cpp',
- '../third_party/skia/src/pdf/SkPDFDocument.cpp',
- '../third_party/skia/src/pdf/SkPDFFont.cpp',
- '../third_party/skia/src/pdf/SkPDFFormXObject.cpp',
- '../third_party/skia/src/pdf/SkPDFGraphicState.cpp',
- '../third_party/skia/src/pdf/SkPDFImage.cpp',
- '../third_party/skia/src/pdf/SkPDFPage.cpp',
- '../third_party/skia/src/pdf/SkPDFShader.cpp',
- '../third_party/skia/src/pdf/SkPDFStream.cpp',
- '../third_party/skia/src/pdf/SkPDFTypes.cpp',
- '../third_party/skia/src/pdf/SkPDFUtils.cpp',
-
#'../third_party/skia/src/ports/SkFontHost_FONTPATH.cpp',
'../third_party/skia/src/ports/SkFontHost_FreeType.cpp',
#'../third_party/skia/src/ports/SkFontHost_android.cpp',
@@ -535,7 +521,6 @@
'../third_party/skia/include/core/SkEndian.h',
'../third_party/skia/include/core/SkFDot6.h',
'../third_party/skia/include/core/SkFixed.h',
- '../third_party/skia/include/core/SkFlate.h',
'../third_party/skia/include/core/SkFlattenable.h',
'../third_party/skia/include/core/SkFloatBits.h',
'../third_party/skia/include/core/SkFloatingPoint.h',
@@ -620,19 +605,6 @@
'../third_party/skia/include/gpu/SkGr.h',
'../third_party/skia/include/gpu/SkGrTexturePixelRef.h',
- '../third_party/skia/include/pdf/SkPDFCatalog.h',
- '../third_party/skia/include/pdf/SkPDFDevice.h',
- '../third_party/skia/include/pdf/SkPDFDocument.h',
- '../third_party/skia/include/pdf/SkPDFFont.h',
- '../third_party/skia/include/pdf/SkPDFFormXObject.h',
- '../third_party/skia/include/pdf/SkPDFGraphicState.h',
- '../third_party/skia/include/pdf/SkPDFImage.h',
- '../third_party/skia/include/pdf/SkPDFPage.h',
- '../third_party/skia/include/pdf/SkPDFShader.h',
- '../third_party/skia/include/pdf/SkPDFStream.h',
- '../third_party/skia/include/pdf/SkPDFTypes.h',
- '../third_party/skia/include/pdf/SkPDFUtils.h',
-
'../third_party/skia/include/ports/SkStream_Win.h',
'../third_party/skia/include/ports/SkTypeface_win.h',
@@ -682,8 +654,6 @@
'ext/vector_platform_device_cairo_linux.h',
'ext/vector_platform_device_emf_win.cc',
'ext/vector_platform_device_emf_win.h',
- 'ext/vector_platform_device_skia.cc',
- 'ext/vector_platform_device_skia.h',
],
'include_dirs': [
'..',
@@ -693,7 +663,6 @@
'../third_party/skia/include/effects',
'../third_party/skia/include/gpu',
'../third_party/skia/include/images',
- '../third_party/skia/include/pdf',
'../third_party/skia/include/ports',
'../third_party/skia/include/utils',
'../third_party/skia/gpu/include',
@@ -783,10 +752,6 @@
'defines': [
'SK_BUILD_FOR_MAC',
],
- 'sources/': [
- ['exclude', '/pdf/'],
- ['exclude', 'ext/vector_platform_device_skia\\.(cc|h)'],
- ],
'include_dirs': [
'../third_party/skia/include/utils/mac',
],
@@ -838,7 +803,6 @@
'../third_party/skia/include/config',
'../third_party/skia/include/core',
'../third_party/skia/include/effects',
- '../third_party/skia/include/pdf',
'../third_party/skia/include/gpu',
'../third_party/skia/include/ports',
'../third_party/skia/gpu/include',