Home | History | Annotate | Download | only in ext
      1 // Copyright (c) 2011 The Chromium Authors. All rights reserved.
      2 // Use of this source code is governed by a BSD-style license that can be
      3 // found in the LICENSE file.
      4 
      5 #ifndef SKIA_EXT_VECTOR_PLATFORM_DEVICE_SKIA_H_
      6 #define SKIA_EXT_VECTOR_PLATFORM_DEVICE_SKIA_H_
      7 
      8 #include "base/basictypes.h"
      9 #include "base/compiler_specific.h"
     10 #include "base/logging.h"
     11 #include "skia/ext/platform_device.h"
     12 #include "skia/ext/refptr.h"
     13 #include "third_party/skia/include/pdf/SkPDFDevice.h"
     14 
     15 class SkMatrix;
     16 
     17 namespace skia {
     18 
     19 class BitmapPlatformDevice;
     20 
     21 class VectorPlatformDeviceSkia : public SkPDFDevice, public PlatformDevice {
     22  public:
     23   SK_API VectorPlatformDeviceSkia(const SkISize& pageSize,
     24                                   const SkISize& contentSize,
     25                                   const SkMatrix& initialTransform);
     26   virtual ~VectorPlatformDeviceSkia();
     27 
     28   // PlatformDevice methods.
     29   virtual bool SupportsPlatformPaint() OVERRIDE;
     30 
     31   virtual PlatformSurface BeginPlatformPaint() OVERRIDE;
     32   virtual void EndPlatformPaint() OVERRIDE;
     33 #if defined(OS_WIN)
     34   virtual void DrawToNativeContext(HDC dc,
     35                                    int x,
     36                                    int y,
     37                                    const RECT* src_rect) OVERRIDE;
     38 #elif defined(OS_MACOSX)
     39   virtual void DrawToNativeContext(CGContext* context,
     40                                    int x,
     41                                    int y,
     42                                    const CGRect* src_rect) OVERRIDE;
     43   virtual CGContextRef GetBitmapContext() OVERRIDE;
     44 #elif defined(OS_POSIX)
     45   virtual void DrawToNativeContext(PlatformSurface surface,
     46                                    int x,
     47                                    int y,
     48                                    const PlatformRect* src_rect) OVERRIDE;
     49 #endif
     50 
     51  private:
     52   skia::RefPtr<BitmapPlatformDevice> raster_surface_;
     53 
     54   DISALLOW_COPY_AND_ASSIGN(VectorPlatformDeviceSkia);
     55 };
     56 
     57 }  // namespace skia
     58 
     59 #endif  // SKIA_EXT_VECTOR_PLATFORM_DEVICE_SKIA_H_
     60