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

Unified Diff: skia/ext/vector_platform_device_skia.cc

Issue 7633040: CL removing inheritance of SkDevice from PlatformDevice. Flavours of PlatformDevice classes now ... (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src/
Patch Set: '' Created 9 years, 4 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/ext/vector_platform_device_skia.h ('k') | skia/skia.gyp » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: skia/ext/vector_platform_device_skia.cc
===================================================================
--- skia/ext/vector_platform_device_skia.cc (revision 98225)
+++ skia/ext/vector_platform_device_skia.cc (working copy)
@@ -19,9 +19,12 @@
return bitmap;
}
-VectorPlatformDeviceSkia::VectorPlatformDeviceSkia(SkPDFDevice* pdf_device)
- : PlatformDevice(makeABitmap(pdf_device->width(), pdf_device->height())),
- pdf_device_(pdf_device) {
+VectorPlatformDeviceSkia::VectorPlatformDeviceSkia(
+ const SkISize& pageSize,
+ const SkISize& contentSize,
+ const SkMatrix& initialTransform)
+ : SkPDFDevice(pageSize, contentSize, initialTransform) {
+ SetPlatformDevice(this, this);
}
VectorPlatformDeviceSkia::~VectorPlatformDeviceSkia() {
@@ -31,7 +34,7 @@
return false;
}
-PlatformDevice::PlatformSurface VectorPlatformDeviceSkia::BeginPlatformPaint() {
+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
@@ -39,13 +42,13 @@
// image in EndPlatformPaint.
DCHECK(raster_surface_ == NULL);
#if defined(OS_WIN)
- raster_surface_ = BitmapPlatformDevice::create(pdf_device_->width(),
- pdf_device_->height(),
+ raster_surface_ = BitmapPlatformDevice::create(width(),
+ height(),
false, /* not opaque */
NULL);
#elif defined(OS_POSIX) && !defined(OS_MACOSX)
- raster_surface_ = BitmapPlatformDevice::Create(pdf_device_->width(),
- pdf_device_->height(),
+ raster_surface_ = BitmapPlatformDevice::Create(width(),
+ height(),
false /* not opaque */);
#endif
raster_surface_->unref(); // SkRefPtr and create both took a reference.
@@ -60,143 +63,14 @@
// SkPDFDevice checks the passed SkDraw for an empty clip (only). Fake
// it out by setting a non-empty clip.
SkDraw draw;
- SkRegion clip(SkIRect::MakeWH(pdf_device_->width(), pdf_device_->height()));
+ SkRegion clip(SkIRect::MakeWH(width(), height()));
draw.fClip=&clip;
- pdf_device_->drawSprite(draw, raster_surface_->accessBitmap(false), 0, 0,
- paint);
+ drawSprite(draw, raster_surface_->accessBitmap(false), 0, 0, paint);
// BitmapPlatformDevice matches begin and end calls.
raster_surface_->EndPlatformPaint();
raster_surface_ = NULL;
}
-uint32_t VectorPlatformDeviceSkia::getDeviceCapabilities() {
- return SkDevice::getDeviceCapabilities() | 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) {
- pdf_device_->setMatrixClip(matrix, region, 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);
- vector_device->pdf_device_->setOrigin(vector_device->getOrigin().fX,
- vector_device->getOrigin().fY);
- real_device = vector_device->pdf_device_.get();
- }
- pdf_device_->drawDevice(draw, real_device, x, y, paint);
-}
-
-void VectorPlatformDeviceSkia::setDrawingArea(SkPDFDevice::DrawingArea area) {
- pdf_device_->setDrawingArea(area);
-}
-
#if defined(OS_WIN)
void VectorPlatformDeviceSkia::DrawToNativeContext(HDC dc,
int x,
@@ -214,16 +88,12 @@
SkASSERT(false);
return NULL;
}
-
+#elif defined(OS_LINUX)
+void VectorPlatformDeviceSkia::DrawToNativeContext(
+ PlatformSurface surface, int x, int y, const PlatformRect* src_rect) {
+ // Should never be called on Linux.
+ SkASSERT(false);
+}
#endif
-SkDevice* VectorPlatformDeviceSkia::onCreateCompatibleDevice(
- SkBitmap::Config config, int width, int height, bool isOpaque,
- Usage /*usage*/) {
- SkAutoTUnref<SkDevice> dev(pdf_device_->createCompatibleDevice(config, width,
- height,
- isOpaque));
- return new VectorPlatformDeviceSkia(static_cast<SkPDFDevice*>(dev.get()));
-}
-
} // namespace skia
« no previous file with comments | « skia/ext/vector_platform_device_skia.h ('k') | skia/skia.gyp » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698