1 :
2 : /*
3 : * Copyright 2011 Google Inc.
4 : *
5 : * Use of this source code is governed by a BSD-style license that can be
6 : * found in the LICENSE file.
7 : */
8 : #include "SkCanvas.h"
9 : #include "SkShape.h"
10 : #include "SkMatrix.h"
11 :
12 : #if 0
13 : static int gShapeCounter;
14 : static void inc_shape(const SkShape* s) {
15 : SkDebugf("inc %d\n", gShapeCounter);
16 : gShapeCounter += 1;
17 : }
18 : static void dec_shape(const SkShape* s) {
19 : --gShapeCounter;
20 : SkDebugf("dec %d\n", gShapeCounter);
21 : }
22 : #else
23 : #define inc_shape(s)
24 : #define dec_shape(s)
25 : #endif
26 :
27 : ///////////////////////////////////////////////////////////////////////////////
28 :
29 0 : void SkShape::draw(SkCanvas* canvas) {
30 0 : int saveCount = canvas->getSaveCount();
31 0 : this->onDraw(canvas);
32 0 : canvas->restoreToCount(saveCount);
33 0 : }
34 :
35 0 : void SkShape::drawXY(SkCanvas* canvas, SkScalar dx, SkScalar dy) {
36 0 : int saveCount = canvas->save(SkCanvas::kMatrix_SaveFlag);
37 0 : canvas->translate(dx, dy);
38 0 : this->onDraw(canvas);
39 0 : canvas->restoreToCount(saveCount);
40 0 : }
41 :
42 0 : void SkShape::drawMatrix(SkCanvas* canvas, const SkMatrix& matrix) {
43 0 : int saveCount = canvas->save(SkCanvas::kMatrix_SaveFlag);
44 0 : canvas->concat(matrix);
45 0 : this->onDraw(canvas);
46 0 : canvas->restoreToCount(saveCount);
47 0 : }
48 :
49 : ///////////////////////////////////////////////////////////////////////////////
50 :
51 0 : SkShape::SkShape() {
52 : inc_shape(this);
53 0 : }
54 :
55 0 : SkShape::~SkShape() {
56 : dec_shape(this);
57 0 : }
58 :
59 0 : SkShape::SkShape(SkFlattenableReadBuffer& buffer) : INHERITED(buffer) {
60 : inc_shape(this);
61 0 : }
62 :
63 0 : SkFlattenable* SkShape::CreateProc(SkFlattenableReadBuffer& buffer) {
64 0 : return SkNEW_ARGS(SkShape, (buffer));
65 : }
66 :
67 0 : SkFlattenable::Factory SkShape::getFactory() {
68 0 : return CreateProc;
69 : }
70 :
71 0 : void SkShape::flatten(SkFlattenableWriteBuffer& buffer) {
72 0 : this->INHERITED::flatten(buffer);
73 0 : }
74 :
75 0 : void SkShape::onDraw(SkCanvas*) {}
76 :
77 2928 : SK_DEFINE_FLATTENABLE_REGISTRAR(SkShape)
|