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

Unified Diff: skia/ext/vector_platform_device_skia.h

Issue 6499024: Connect Skia PDF backend to printing subsystem. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Add zlib dep to gyp and remove MOZ_Z prefix per crrev.com/74975 Created 9 years, 8 months 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 | « skia/config/SkUserConfig.h ('k') | skia/ext/vector_platform_device_skia.cc » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: skia/ext/vector_platform_device_skia.h
diff --git a/skia/ext/vector_platform_device_skia.h b/skia/ext/vector_platform_device_skia.h
new file mode 100644
index 0000000000000000000000000000000000000000..38cf0c544cae8cca7e28bb881459f73fe2035e6b
--- /dev/null
+++ b/skia/ext/vector_platform_device_skia.h
@@ -0,0 +1,106 @@
+// 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_
« no previous file with comments | « skia/config/SkUserConfig.h ('k') | skia/ext/vector_platform_device_skia.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698