| |
| /* |
| * Copyright 2011 Google Inc. |
| * |
| * Use of this source code is governed by a BSD-style license that can be |
| * found in the LICENSE file. |
| */ |
| #ifndef SkShape_DEFINED |
| #define SkShape_DEFINED |
| |
| #include "SkFlattenable.h" |
| |
| class SkCanvas; |
| class SkMatrix; |
| class SkWStream; |
| |
| class SkShape : public SkFlattenable { |
| public: |
| SkShape(); |
| virtual ~SkShape(); |
| |
| void draw(SkCanvas*); |
| |
| /** Draw the shape translated by (dx,dy), which is applied before the |
| shape's matrix (if any). |
| */ |
| void drawXY(SkCanvas*, SkScalar dx, SkScalar dy); |
| |
| /** Draw the shape with the specified matrix, applied before the shape's |
| matrix (if any). |
| */ |
| void drawMatrix(SkCanvas*, const SkMatrix&); |
| |
| // overrides |
| virtual Factory getFactory(); |
| virtual void flatten(SkFlattenableWriteBuffer&); |
| |
| // public for Registrar |
| static SkFlattenable* CreateProc(SkFlattenableReadBuffer&); |
| |
| SK_DECLARE_FLATTENABLE_REGISTRAR() |
| |
| protected: |
| virtual void onDraw(SkCanvas*); |
| |
| SkShape(SkFlattenableReadBuffer&); |
| |
| private: |
| |
| typedef SkFlattenable INHERITED; |
| }; |
| |
| #endif |