1ec3ed6a5ebf6f2c406d7bcf94b6bc34fcaeb976eepoger@google.com 2ec3ed6a5ebf6f2c406d7bcf94b6bc34fcaeb976eepoger@google.com/* 3ec3ed6a5ebf6f2c406d7bcf94b6bc34fcaeb976eepoger@google.com * Copyright 2006 The Android Open Source Project 4ec3ed6a5ebf6f2c406d7bcf94b6bc34fcaeb976eepoger@google.com * 5ec3ed6a5ebf6f2c406d7bcf94b6bc34fcaeb976eepoger@google.com * Use of this source code is governed by a BSD-style license that can be 6ec3ed6a5ebf6f2c406d7bcf94b6bc34fcaeb976eepoger@google.com * found in the LICENSE file. 7ec3ed6a5ebf6f2c406d7bcf94b6bc34fcaeb976eepoger@google.com */ 8ec3ed6a5ebf6f2c406d7bcf94b6bc34fcaeb976eepoger@google.com 98a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.com 108a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.com#ifndef SkMatrixParts_DEFINED 118a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.com#define SkMatrixParts_DEFINED 128a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.com 138a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.com#include "SkDisplayable.h" 148a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.com#include "SkMemberInfo.h" 158a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.com#include "SkPathMeasure.h" 168a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.com 178a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.comclass SkDrawPath; 188a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.comclass SkDrawRect; 198a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.comclass SkPolygon; 208a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.com 218a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.comclass SkDrawMatrix; 228a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.com// class SkMatrix; 238a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.com 248a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.comclass SkMatrixPart : public SkDisplayable { 258a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.compublic: 268a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.com SkMatrixPart(); 278a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.com virtual bool add() = 0; 288a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.com virtual void dirty(); 298a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.com virtual SkDisplayable* getParent() const; 308a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.com virtual bool setParent(SkDisplayable* parent); 318a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.com#ifdef SK_DEBUG 328a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.com virtual bool isMatrixPart() const { return true; } 338a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.com#endif 348a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.comprotected: 358a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.com SkDrawMatrix* fMatrix; 368a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.com}; 378a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.com 388a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.comclass SkRotate : public SkMatrixPart { 398a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.com DECLARE_MEMBER_INFO(Rotate); 408a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.com SkRotate(); 418a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.comprotected: 428a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.com virtual bool add(); 438a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.com SkScalar degrees; 448a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.com SkPoint center; 458a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.com}; 468a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.com 478a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.comclass SkScale : public SkMatrixPart { 488a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.com DECLARE_MEMBER_INFO(Scale); 498a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.com SkScale(); 508a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.comprotected: 518a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.com virtual bool add(); 528a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.com SkScalar x; 538a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.com SkScalar y; 548a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.com SkPoint center; 558a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.com}; 568a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.com 578a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.comclass SkSkew : public SkMatrixPart { 588a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.com DECLARE_MEMBER_INFO(Skew); 598a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.com SkSkew(); 608a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.comprotected: 618a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.com virtual bool add(); 628a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.com SkScalar x; 638a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.com SkScalar y; 648a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.com SkPoint center; 658a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.com}; 668a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.com 678a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.comclass SkTranslate : public SkMatrixPart { 688a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.com DECLARE_MEMBER_INFO(Translate); 698a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.com SkTranslate(); 708a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.comprotected: 718a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.com virtual bool add(); 728a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.com SkScalar x; 738a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.com SkScalar y; 748a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.com}; 758a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.com 768a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.comclass SkFromPath : public SkMatrixPart { 778a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.com DECLARE_MEMBER_INFO(FromPath); 788a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.com SkFromPath(); 798a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.com virtual ~SkFromPath(); 808a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.comprotected: 818a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.com virtual bool add(); 828a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.com int32_t mode; 838a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.com SkScalar offset; 848a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.com SkDrawPath* path; 858a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.com SkPathMeasure fPathMeasure; 868a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.com}; 878a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.com 888a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.comclass SkRectToRect : public SkMatrixPart { 898a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.com DECLARE_MEMBER_INFO(RectToRect); 908a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.com SkRectToRect(); 918a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.com virtual ~SkRectToRect(); 928a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.com#ifdef SK_DUMP_ENABLED 938a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.com virtual void dump(SkAnimateMaker* ); 948a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.com#endif 958a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.com virtual const SkMemberInfo* preferredChild(SkDisplayTypes type); 968a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.comprotected: 978a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.com virtual bool add(); 988a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.com SkDrawRect* source; 998a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.com SkDrawRect* destination; 1008a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.com}; 1018a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.com 1028a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.comclass SkPolyToPoly : public SkMatrixPart { 1038a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.com DECLARE_MEMBER_INFO(PolyToPoly); 1048a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.com SkPolyToPoly(); 1058a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.com virtual ~SkPolyToPoly(); 1068a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.com#ifdef SK_DUMP_ENABLED 1078a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.com virtual void dump(SkAnimateMaker* ); 1088a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.com#endif 1098a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.com virtual void onEndElement(SkAnimateMaker& ); 1108a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.com virtual const SkMemberInfo* preferredChild(SkDisplayTypes type); 1118a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.comprotected: 1128a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.com virtual bool add(); 1138a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.com SkPolygon* source; 1148a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.com SkPolygon* destination; 1158a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.com}; 1168a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.com 117d6176b0dcacb124539e0cfd051e6d93a9782f020rmistry@google.com// !!! add concat matrix ? 1188a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.com 1198a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.com#endif // SkMatrixParts_DEFINED 120