| OLD | NEW | 
|   1 /* |   1 /* | 
|   2  * Copyright 2012 Google Inc. |   2  * Copyright 2012 Google Inc. | 
|   3  * |   3  * | 
|   4  * Use of this source code is governed by a BSD-style license that can be |   4  * Use of this source code is governed by a BSD-style license that can be | 
|   5  * found in the LICENSE file. |   5  * found in the LICENSE file. | 
|   6  */ |   6  */ | 
|   7  |   7  | 
|   8 #include "SkSurface_Base.h" |   8 #include "SkSurface_Base.h" | 
|   9 #include "SkCanvas.h" |   9 #include "SkCanvas.h" | 
|  10 #include "SkImagePriv.h" |  10 #include "SkImagePriv.h" | 
|  11 #include "SkPicture.h" |  11 #include "SkPicture.h" | 
|  12  |  12  | 
|  13 /** |  13 /** | 
|  14  *  What does it mean to ask for more than one canvas from a picture? |  14  *  What does it mean to ask for more than one canvas from a picture? | 
|  15  *  How do we return an Image and then "continue" recording? |  15  *  How do we return an Image and then "continue" recording? | 
|  16  */ |  16  */ | 
|  17 class SkSurface_Picture : public SkSurface_Base { |  17 class SkSurface_Picture : public SkSurface_Base { | 
|  18 public: |  18 public: | 
|  19     SkSurface_Picture(int width, int height); |  19     SkSurface_Picture(int width, int height); | 
|  20     virtual ~SkSurface_Picture(); |  20     virtual ~SkSurface_Picture(); | 
|  21  |  21  | 
|  22     virtual SkCanvas* onNewCanvas() SK_OVERRIDE; |  22     virtual SkCanvas* onNewCanvas() SK_OVERRIDE; | 
|  23     virtual SkSurface* onNewSurface(const SkImage::Info&) SK_OVERRIDE; |  23     virtual SkSurface* onNewSurface(const SkImage::Info&) SK_OVERRIDE; | 
|  24     virtual SkImage* onNewImageSnapshot() SK_OVERRIDE; |  24     virtual SkImage* onNewImageSnapshot() SK_OVERRIDE; | 
|  25     virtual void onDraw(SkCanvas*, SkScalar x, SkScalar y, |  25     virtual void onDraw(SkCanvas*, SkScalar x, SkScalar y, | 
|  26                         const SkPaint*) SK_OVERRIDE; |  26                         const SkPaint*) SK_OVERRIDE; | 
|  27     virtual void onCopyOnWrite(SkImage*, SkCanvas*) SK_OVERRIDE; |  27     virtual void onCopyOnWrite() SK_OVERRIDE; | 
|  28  |  28  | 
|  29 private: |  29 private: | 
|  30     SkPicture*  fPicture; |  30     SkPicture*  fPicture; | 
|  31  |  31  | 
|  32     typedef SkSurface_Base INHERITED; |  32     typedef SkSurface_Base INHERITED; | 
|  33 }; |  33 }; | 
|  34  |  34  | 
|  35 /////////////////////////////////////////////////////////////////////////////// |  35 /////////////////////////////////////////////////////////////////////////////// | 
|  36  |  36  | 
|  37 SkSurface_Picture::SkSurface_Picture(int width, int height) : INHERITED(width, h
    eight) { |  37 SkSurface_Picture::SkSurface_Picture(int width, int height) : INHERITED(width, h
    eight) { | 
| (...skipping 30 matching lines...) Expand all  Loading... | 
|  68 } |  68 } | 
|  69  |  69  | 
|  70 void SkSurface_Picture::onDraw(SkCanvas* canvas, SkScalar x, SkScalar y, |  70 void SkSurface_Picture::onDraw(SkCanvas* canvas, SkScalar x, SkScalar y, | 
|  71                                const SkPaint* paint) { |  71                                const SkPaint* paint) { | 
|  72     if (!fPicture) { |  72     if (!fPicture) { | 
|  73         return; |  73         return; | 
|  74     } |  74     } | 
|  75     SkImagePrivDrawPicture(canvas, fPicture, x, y, paint); |  75     SkImagePrivDrawPicture(canvas, fPicture, x, y, paint); | 
|  76 } |  76 } | 
|  77  |  77  | 
|  78 void SkSurface_Picture::onCopyOnWrite(SkImage* cachedImage, SkCanvas*) { |  78 void SkSurface_Picture::onCopyOnWrite() { | 
|  79     // We always spawn a copy of the recording picture when we |  79     // We always spawn a copy of the recording picture when we | 
|  80     // are asked for a snapshot, so we never need to do anything here. |  80     // are asked for a snapshot, so we never need to do anything here. | 
|  81 } |  81 } | 
|  82  |  82  | 
|  83 /////////////////////////////////////////////////////////////////////////////// |  83 /////////////////////////////////////////////////////////////////////////////// | 
|  84  |  84  | 
|  85  |  85  | 
|  86 SkSurface* SkSurface::NewPicture(int width, int height) { |  86 SkSurface* SkSurface::NewPicture(int width, int height) { | 
|  87     if ((width | height) < 0) { |  87     if ((width | height) < 0) { | 
|  88         return NULL; |  88         return NULL; | 
|  89     } |  89     } | 
|  90  |  90  | 
|  91     return SkNEW_ARGS(SkSurface_Picture, (width, height)); |  91     return SkNEW_ARGS(SkSurface_Picture, (width, height)); | 
|  92 } |  92 } | 
| OLD | NEW |