11cab2921ab279367f8206cdadc9259d12e603548Derek Sollenberger 21cab2921ab279367f8206cdadc9259d12e603548Derek Sollenberger/* 31cab2921ab279367f8206cdadc9259d12e603548Derek Sollenberger * Copyright 2006 The Android Open Source Project 41cab2921ab279367f8206cdadc9259d12e603548Derek Sollenberger * 51cab2921ab279367f8206cdadc9259d12e603548Derek Sollenberger * Use of this source code is governed by a BSD-style license that can be 61cab2921ab279367f8206cdadc9259d12e603548Derek Sollenberger * found in the LICENSE file. 71cab2921ab279367f8206cdadc9259d12e603548Derek Sollenberger */ 81cab2921ab279367f8206cdadc9259d12e603548Derek Sollenberger 90910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project 100910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project#include "SkDisplayType.h" 110910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project#include "SkAnimateMaker.h" 120910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project#include "SkAnimateSet.h" 130910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project#include "SkDisplayAdd.h" 140910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project#include "SkDisplayApply.h" 150910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project#include "SkDisplayBounds.h" 160910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project#include "SkDisplayEvent.h" 170910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project#include "SkDisplayInclude.h" 180910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project#ifdef SK_DEBUG 190910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project#include "SkDisplayList.h" 200910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project#endif 210910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project#include "SkDisplayMath.h" 220910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project#include "SkDisplayMovie.h" 230910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project#include "SkDisplayNumber.h" 240910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project#include "SkDisplayPost.h" 250910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project#include "SkDisplayRandom.h" 260910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project#include "SkDisplayTypes.h" 270910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project#include "SkDraw3D.h" 280910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project#include "SkDrawBitmap.h" 290910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project#include "SkDrawClip.h" 300910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project#include "SkDrawDash.h" 310910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project#include "SkDrawDiscrete.h" 320910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project#include "SkDrawEmboss.h" 330910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project#include "SkDrawFull.h" 340910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project#include "SkDrawGradient.h" 350910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project#include "SkDrawLine.h" 360910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project#include "SkDrawMatrix.h" 370910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project#include "SkDrawOval.h" 380910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project#include "SkDrawPaint.h" 390910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project#include "SkDrawPath.h" 400910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project#include "SkDrawPoint.h" 410910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project#include "SkDrawSaveLayer.h" 420910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project#include "SkDrawText.h" 430910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project#include "SkDrawTextBox.h" 440910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project#include "SkDrawTo.h" 450910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project#include "SkDrawTransparentShader.h" 460910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project#include "SkDump.h" 470910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project#include "SkExtras.h" 480910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project#include "SkHitClear.h" 490910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project#include "SkHitTest.h" 500910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project#include "SkMatrixParts.h" 510910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project#include "SkPathParts.h" 520910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project#include "SkPostParts.h" 530910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project#include "SkSnapshot.h" 540910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project#include "SkTextOnPath.h" 550910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project#include "SkTextToPath.h" 560910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project#include "SkTSearch.h" 570910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project 580910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project#define CASE_NEW(_class) \ 590910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project case SkType_##_class: result = new Sk##_class(); break 600910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project#define CASE_DRAW_NEW(_class) \ 610910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project case SkType_##_class: result = new SkDraw##_class(); break 620910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project#define CASE_DISPLAY_NEW(_class) \ 630910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project case SkType_##_class: result = new SkDisplay##_class(); break 640910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project#ifdef SK_DEBUG 650910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project #define CASE_DEBUG_RETURN_NIL(_class) \ 660910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project case SkType_##_class: return NULL 670910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project#else 680910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project #define CASE_DEBUG_RETURN_NIL(_class) 690910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project#endif 700910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project 710910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project 720910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source ProjectSkDisplayTypes SkDisplayType::gNewTypes = kNumberOfTypes; 730910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project 740910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source ProjectSkDisplayable* SkDisplayType::CreateInstance(SkAnimateMaker* maker, SkDisplayTypes type) { 750910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project SkDisplayable* result = NULL; 760910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project switch (type) { 770910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project // unknown 780910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project CASE_DISPLAY_NEW(Math); 790910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project CASE_DISPLAY_NEW(Number); 800910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project CASE_NEW(Add); 810910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project CASE_NEW(AddCircle); 820910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project // addgeom 830910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project CASE_DEBUG_RETURN_NIL(AddMode); 840910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project CASE_NEW(AddOval); 850910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project CASE_NEW(AddPath); 860910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project CASE_NEW(AddRect); 870910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project CASE_NEW(AddRoundRect); 880910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project CASE_DEBUG_RETURN_NIL(Align); 890910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project CASE_NEW(Animate); 900910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project // animatebase 910910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project CASE_NEW(Apply); 920910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project CASE_DEBUG_RETURN_NIL(ApplyMode); 930910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project CASE_DEBUG_RETURN_NIL(ApplyTransition); 940910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project CASE_DISPLAY_NEW(Array); 950910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project // argb 960910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project // base64 970910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project // basebitmap 980910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project // baseclassinfo 990910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project CASE_DRAW_NEW(Bitmap); 1000910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project // bitmapencoding 1010910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project // bitmapformat 1020910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project CASE_DRAW_NEW(BitmapShader); 1030910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project CASE_DRAW_NEW(Blur); 1040910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project CASE_DISPLAY_NEW(Boolean); 1050910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project // boundable 1060910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project CASE_DISPLAY_NEW(Bounds); 1070910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project CASE_DEBUG_RETURN_NIL(Cap); 1080910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project CASE_NEW(Clear); 1090910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project CASE_DRAW_NEW(Clip); 1100910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project CASE_NEW(Close); 1110910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project CASE_DRAW_NEW(Color); 1120910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project CASE_NEW(CubicTo); 1130910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project CASE_NEW(Dash); 1141cab2921ab279367f8206cdadc9259d12e603548Derek Sollenberger CASE_NEW(DataInput); 1150910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project CASE_NEW(Discrete); 1160910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project // displayable 1170910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project // drawable 1180910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project CASE_NEW(DrawTo); 1190910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project CASE_NEW(Dump); 1200910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project // dynamicstring 1210910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project CASE_DRAW_NEW(Emboss); 1220910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project CASE_DISPLAY_NEW(Event); 1230910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project CASE_DEBUG_RETURN_NIL(EventCode); 1240910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project CASE_DEBUG_RETURN_NIL(EventKind); 1250910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project CASE_DEBUG_RETURN_NIL(EventMode); 1260910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project // filltype 1270910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project // filtertype 1280910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project CASE_DISPLAY_NEW(Float); 1290910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project CASE_NEW(FromPath); 1300910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project CASE_DEBUG_RETURN_NIL(FromPathMode); 1310910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project CASE_NEW(Full); 1320910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project // gradient 1330910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project CASE_NEW(Group); 1340910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project CASE_NEW(HitClear); 1350910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project CASE_NEW(HitTest); 1360910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project CASE_NEW(Image); 1370910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project CASE_NEW(Include); 1380910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project CASE_NEW(Input); 1390910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project CASE_DISPLAY_NEW(Int); 1400910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project CASE_DEBUG_RETURN_NIL(Join); 1410910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project CASE_NEW(Line); 1420910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project CASE_NEW(LineTo); 1430910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project CASE_NEW(LinearGradient); 1440910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project CASE_DRAW_NEW(MaskFilter); 1450910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project CASE_DEBUG_RETURN_NIL(MaskFilterBlurStyle); 1460910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project // maskfilterlight 1470910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project CASE_DRAW_NEW(Matrix); 1480910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project // memberfunction 1490910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project // memberproperty 1500910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project CASE_NEW(Move); 1510910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project CASE_NEW(MoveTo); 1520910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project CASE_DISPLAY_NEW(Movie); 1530910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project // msec 1540910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project CASE_NEW(Oval); 1550910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project CASE_DRAW_NEW(Paint); 1560910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project CASE_DRAW_NEW(Path); 1570910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project // pathdirection 1580910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project CASE_DRAW_NEW(PathEffect); 1590910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project // point 1600910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project CASE_NEW(DrawPoint); 1610910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project CASE_NEW(PolyToPoly); 1620910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project CASE_NEW(Polygon); 1630910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project CASE_NEW(Polyline); 1640910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project CASE_NEW(Post); 1650910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project CASE_NEW(QuadTo); 1660910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project CASE_NEW(RCubicTo); 1670910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project CASE_NEW(RLineTo); 1680910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project CASE_NEW(RMoveTo); 1690910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project CASE_NEW(RQuadTo); 1700910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project CASE_NEW(RadialGradient); 1710910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project CASE_DISPLAY_NEW(Random); 1720910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project CASE_DRAW_NEW(Rect); 1730910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project CASE_NEW(RectToRect); 1740910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project CASE_NEW(Remove); 1750910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project CASE_NEW(Replace); 1760910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project CASE_NEW(Rotate); 1770910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project CASE_NEW(RoundRect); 1780910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project CASE_NEW(Save); 1790910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project CASE_NEW(SaveLayer); 1800910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project CASE_NEW(Scale); 1810910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project // screenplay 1820910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project CASE_NEW(Set); 1830910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project CASE_DRAW_NEW(Shader); 1840910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project CASE_NEW(Skew); 1850910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project CASE_NEW(3D_Camera); 1860910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project CASE_NEW(3D_Patch); 1870910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project // 3dpoint 1880910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project CASE_NEW(Snapshot); 1890910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project CASE_DISPLAY_NEW(String); 1900910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project // style 1910910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project CASE_NEW(Text); 1920910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project CASE_DRAW_NEW(TextBox); 1930910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project // textboxalign 1940910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project // textboxmode 1950910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project CASE_NEW(TextOnPath); 1960910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project CASE_NEW(TextToPath); 1970910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project CASE_DEBUG_RETURN_NIL(TileMode); 1980910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project CASE_NEW(Translate); 1990910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project CASE_DRAW_NEW(TransparentShader); 2000910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project CASE_DRAW_NEW(Typeface); 2010910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project CASE_DEBUG_RETURN_NIL(Xfermode); 2020910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project default: 2030910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project SkExtras** end = maker->fExtras.end(); 2040910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project for (SkExtras** extraPtr = maker->fExtras.begin(); extraPtr < end; extraPtr++) { 2050910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project if ((result = (*extraPtr)->createInstance(type)) != NULL) 2060910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project return result; 2070910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project } 2080910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project SkASSERT(0); 2090910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project } 2100910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project return result; 2110910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project} 2120910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project 2130910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project#undef CASE_NEW 2140910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project#undef CASE_DRAW_NEW 2150910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project#undef CASE_DISPLAY_NEW 2160910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project 2170910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project#if SK_USE_CONDENSED_INFO == 0 2180910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project 2190910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project#define CASE_GET_INFO(_class) case SkType_##_class: \ 2200910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project info = Sk##_class::fInfo; infoCount = Sk##_class::fInfoCount; break 2210910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project#define CASE_GET_DRAW_INFO(_class) case SkType_##_class: \ 2220910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project info = SkDraw##_class::fInfo; infoCount = SkDraw##_class::fInfoCount; break 2230910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project#define CASE_GET_DISPLAY_INFO(_class) case SkType_##_class: \ 2240910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project info = SkDisplay##_class::fInfo; infoCount = SkDisplay##_class::fInfoCount; \ 2250910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project break 2260910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project 2270910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Projectconst SkMemberInfo* SkDisplayType::GetMembers(SkAnimateMaker* maker, 2280910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project SkDisplayTypes type, int* infoCountPtr) { 2290910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project const SkMemberInfo* info = NULL; 2300910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project int infoCount = 0; 2310910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project switch (type) { 2320910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project // unknown 2330910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project CASE_GET_DISPLAY_INFO(Math); 2340910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project CASE_GET_DISPLAY_INFO(Number); 2350910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project CASE_GET_INFO(Add); 2360910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project CASE_GET_INFO(AddCircle); 2370910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project CASE_GET_INFO(AddGeom); 2380910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project // addmode 2390910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project CASE_GET_INFO(AddOval); 2400910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project CASE_GET_INFO(AddPath); 2410910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project CASE_GET_INFO(AddRect); 2420910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project CASE_GET_INFO(AddRoundRect); 2430910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project // align 2440910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project CASE_GET_INFO(Animate); 2450910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project CASE_GET_INFO(AnimateBase); 2460910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project CASE_GET_INFO(Apply); 2470910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project // applymode 2480910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project // applytransition 2490910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project CASE_GET_DISPLAY_INFO(Array); 2500910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project // argb 2510910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project // base64 2520910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project CASE_GET_INFO(BaseBitmap); 2530910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project // baseclassinfo 2540910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project CASE_GET_DRAW_INFO(Bitmap); 2550910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project // bitmapencoding 2560910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project // bitmapformat 2570910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project CASE_GET_DRAW_INFO(BitmapShader); 2580910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project CASE_GET_DRAW_INFO(Blur); 2590910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project CASE_GET_DISPLAY_INFO(Boolean); 2600910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project // boundable 2610910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project CASE_GET_DISPLAY_INFO(Bounds); 2620910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project // cap 2630910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project // clear 2640910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project CASE_GET_DRAW_INFO(Clip); 2650910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project // close 2660910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project CASE_GET_DRAW_INFO(Color); 2670910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project CASE_GET_INFO(CubicTo); 2680910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project CASE_GET_INFO(Dash); 2691cab2921ab279367f8206cdadc9259d12e603548Derek Sollenberger CASE_GET_INFO(DataInput); 2700910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project CASE_GET_INFO(Discrete); 2710910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project // displayable 2720910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project // drawable 2730910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project CASE_GET_INFO(DrawTo); 2740910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project CASE_GET_INFO(Dump); 2750910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project // dynamicstring 2760910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project CASE_GET_DRAW_INFO(Emboss); 2770910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project CASE_GET_DISPLAY_INFO(Event); 2780910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project // eventcode 2790910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project // eventkind 2800910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project // eventmode 2810910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project // filltype 2820910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project // filtertype 2830910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project CASE_GET_DISPLAY_INFO(Float); 2840910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project CASE_GET_INFO(FromPath); 2850910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project // frompathmode 2860910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project // full 2870910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project CASE_GET_INFO(Gradient); 2880910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project CASE_GET_INFO(Group); 2890910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project CASE_GET_INFO(HitClear); 2900910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project CASE_GET_INFO(HitTest); 2910910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project CASE_GET_INFO(Image); 2920910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project CASE_GET_INFO(Include); 2930910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project CASE_GET_INFO(Input); 2940910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project CASE_GET_DISPLAY_INFO(Int); 2950910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project // join 2960910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project CASE_GET_INFO(Line); 2970910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project CASE_GET_INFO(LineTo); 2980910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project CASE_GET_INFO(LinearGradient); 2990910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project // maskfilter 3000910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project // maskfilterblurstyle 3010910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project // maskfilterlight 3020910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project CASE_GET_DRAW_INFO(Matrix); 3030910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project // memberfunction 3040910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project // memberproperty 3050910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project CASE_GET_INFO(Move); 3060910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project CASE_GET_INFO(MoveTo); 3070910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project CASE_GET_DISPLAY_INFO(Movie); 3080910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project // msec 3090910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project CASE_GET_INFO(Oval); 3100910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project CASE_GET_DRAW_INFO(Path); 3110910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project CASE_GET_DRAW_INFO(Paint); 3120910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project // pathdirection 3130910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project // patheffect 3140910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project case SkType_Point: info = Sk_Point::fInfo; infoCount = Sk_Point::fInfoCount; break; // no virtual flavor 3150910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project CASE_GET_INFO(DrawPoint); // virtual flavor 3160910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project CASE_GET_INFO(PolyToPoly); 3170910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project CASE_GET_INFO(Polygon); 3180910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project CASE_GET_INFO(Polyline); 3190910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project CASE_GET_INFO(Post); 3200910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project CASE_GET_INFO(QuadTo); 3210910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project CASE_GET_INFO(RCubicTo); 3220910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project CASE_GET_INFO(RLineTo); 3230910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project CASE_GET_INFO(RMoveTo); 3240910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project CASE_GET_INFO(RQuadTo); 3250910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project CASE_GET_INFO(RadialGradient); 3260910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project CASE_GET_DISPLAY_INFO(Random); 3270910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project CASE_GET_DRAW_INFO(Rect); 3280910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project CASE_GET_INFO(RectToRect); 3290910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project CASE_GET_INFO(Remove); 3300910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project CASE_GET_INFO(Replace); 3310910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project CASE_GET_INFO(Rotate); 3320910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project CASE_GET_INFO(RoundRect); 3330910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project CASE_GET_INFO(Save); 3340910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project CASE_GET_INFO(SaveLayer); 3350910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project CASE_GET_INFO(Scale); 3360910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project // screenplay 3370910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project CASE_GET_INFO(Set); 3380910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project CASE_GET_DRAW_INFO(Shader); 3390910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project CASE_GET_INFO(Skew); 3400910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project CASE_GET_INFO(3D_Camera); 3410910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project CASE_GET_INFO(3D_Patch); 3420910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project CASE_GET_INFO(3D_Point); 3430910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project CASE_GET_INFO(Snapshot); 3440910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project CASE_GET_DISPLAY_INFO(String); 3450910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project // style 3460910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project CASE_GET_INFO(Text); 3470910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project CASE_GET_DRAW_INFO(TextBox); 3480910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project // textboxalign 3490910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project // textboxmode 3500910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project CASE_GET_INFO(TextOnPath); 3510910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project CASE_GET_INFO(TextToPath); 3520910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project // tilemode 3530910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project CASE_GET_INFO(Translate); 3540910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project // transparentshader 3550910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project CASE_GET_DRAW_INFO(Typeface); 3560910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project // xfermode 3570910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project // knumberoftypes 3580910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project default: 3590910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project if (maker) { 3600910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project SkExtras** end = maker->fExtras.end(); 3610910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project for (SkExtras** extraPtr = maker->fExtras.begin(); extraPtr < end; extraPtr++) { 3620910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project if ((info = (*extraPtr)->getMembers(type, infoCountPtr)) != NULL) 3630910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project return info; 3640910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project } 3650910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project } 3660910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project return NULL; 3670910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project } 3680910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project if (infoCountPtr) 3690910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project *infoCountPtr = infoCount; 3700910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project return info; 3710910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project} 3720910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project 3730910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Projectconst SkMemberInfo* SkDisplayType::GetMember(SkAnimateMaker* maker, 3740910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project SkDisplayTypes type, const char** matchPtr ) { 3750910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project int infoCount; 3760910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project const SkMemberInfo* info = GetMembers(maker, type, &infoCount); 3770910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project info = SkMemberInfo::Find(info, infoCount, matchPtr); 3780910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project// SkASSERT(info); 3790910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project return info; 3800910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project} 3810910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project 3820910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project#undef CASE_GET_INFO 3830910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project#undef CASE_GET_DRAW_INFO 3840910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project#undef CASE_GET_DISPLAY_INFO 3850910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project 3860910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project#endif // SK_USE_CONDENSED_INFO == 0 3870910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project 3880910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project#if defined SK_DEBUG || defined SK_BUILD_CONDENSED 3890910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project #define DRAW_NAME(_name, _type) {_name, _type, true, false } 3900910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project #define DISPLAY_NAME(_name, _type) {_name, _type, false, true } 3910910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project #define INIT_BOOL_FIELDS , false, false 3920910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project#else 3930910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project #define DRAW_NAME(_name, _type) {_name, _type } 3940910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project #define DISPLAY_NAME(_name, _type) {_name, _type } 3950910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project #define INIT_BOOL_FIELDS 3960910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project#endif 3970910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project 3980910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Projectconst TypeNames gTypeNames[] = { 3990910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project // unknown 4000910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project { "Math", SkType_Math INIT_BOOL_FIELDS }, 4010910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project { "Number", SkType_Number INIT_BOOL_FIELDS }, 4020910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project { "add", SkType_Add INIT_BOOL_FIELDS }, 4030910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project { "addCircle", SkType_AddCircle INIT_BOOL_FIELDS }, 4040910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project // addgeom 4050910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project // addmode 4060910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project { "addOval", SkType_AddOval INIT_BOOL_FIELDS }, 4070910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project { "addPath", SkType_AddPath INIT_BOOL_FIELDS }, 4080910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project { "addRect", SkType_AddRect INIT_BOOL_FIELDS }, 4090910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project { "addRoundRect", SkType_AddRoundRect INIT_BOOL_FIELDS }, 4100910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project // align 4110910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project { "animate", SkType_Animate INIT_BOOL_FIELDS }, 4120910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project // animateBase 4130910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project { "apply", SkType_Apply INIT_BOOL_FIELDS }, 4140910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project // applymode 4150910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project // applytransition 4160910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project { "array", SkType_Array INIT_BOOL_FIELDS }, 4170910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project // argb 4180910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project // base64 4190910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project // basebitmap 4200910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project // baseclassinfo 4210910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project DRAW_NAME("bitmap", SkType_Bitmap), 4220910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project // bitmapencoding 4230910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project // bitmapformat 4240910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project DRAW_NAME("bitmapShader", SkType_BitmapShader), 4250910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project DRAW_NAME("blur", SkType_Blur), 4260910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project { "boolean", SkType_Boolean INIT_BOOL_FIELDS }, 4270910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project // boundable 4280910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project DISPLAY_NAME("bounds", SkType_Bounds), 4290910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project // cap 4300910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project { "clear", SkType_Clear INIT_BOOL_FIELDS }, 4310910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project DRAW_NAME("clip", SkType_Clip), 4320910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project { "close", SkType_Close INIT_BOOL_FIELDS }, 4330910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project DRAW_NAME("color", SkType_Color), 4340910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project { "cubicTo", SkType_CubicTo INIT_BOOL_FIELDS }, 4350910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project { "dash", SkType_Dash INIT_BOOL_FIELDS }, 4361cab2921ab279367f8206cdadc9259d12e603548Derek Sollenberger { "data", SkType_DataInput INIT_BOOL_FIELDS }, 4370910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project { "discrete", SkType_Discrete INIT_BOOL_FIELDS }, 4380910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project // displayable 4390910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project // drawable 4400910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project { "drawTo", SkType_DrawTo INIT_BOOL_FIELDS }, 4410910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project { "dump", SkType_Dump INIT_BOOL_FIELDS }, 4420910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project // dynamicstring 4430910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project DRAW_NAME("emboss", SkType_Emboss), 4440910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project DISPLAY_NAME("event", SkType_Event), 4450910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project // eventcode 4460910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project // eventkind 4470910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project // eventmode 4480910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project // filltype 4490910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project // filtertype 4500910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project { "float", SkType_Float INIT_BOOL_FIELDS }, 4510910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project { "fromPath", SkType_FromPath INIT_BOOL_FIELDS }, 4520910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project // frompathmode 4530910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project { "full", SkType_Full INIT_BOOL_FIELDS }, 4540910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project // gradient 4550910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project { "group", SkType_Group INIT_BOOL_FIELDS }, 4560910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project { "hitClear", SkType_HitClear INIT_BOOL_FIELDS }, 4570910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project { "hitTest", SkType_HitTest INIT_BOOL_FIELDS }, 4580910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project { "image", SkType_Image INIT_BOOL_FIELDS }, 4590910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project { "include", SkType_Include INIT_BOOL_FIELDS }, 4600910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project { "input", SkType_Input INIT_BOOL_FIELDS }, 4610910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project { "int", SkType_Int INIT_BOOL_FIELDS }, 4620910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project // join 4630910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project { "line", SkType_Line INIT_BOOL_FIELDS }, 4640910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project { "lineTo", SkType_LineTo INIT_BOOL_FIELDS }, 4650910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project { "linearGradient", SkType_LinearGradient INIT_BOOL_FIELDS }, 4660910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project { "maskFilter", SkType_MaskFilter INIT_BOOL_FIELDS }, 4670910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project // maskfilterblurstyle 4680910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project // maskfilterlight 4690910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project DRAW_NAME("matrix", SkType_Matrix), 4700910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project // memberfunction 4710910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project // memberproperty 4720910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project { "move", SkType_Move INIT_BOOL_FIELDS }, 4730910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project { "moveTo", SkType_MoveTo INIT_BOOL_FIELDS }, 4740910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project { "movie", SkType_Movie INIT_BOOL_FIELDS }, 4750910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project // msec 4760910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project { "oval", SkType_Oval INIT_BOOL_FIELDS }, 4770910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project DRAW_NAME("paint", SkType_Paint), 4780910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project DRAW_NAME("path", SkType_Path), 4790910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project // pathdirection 4800910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project { "pathEffect", SkType_PathEffect INIT_BOOL_FIELDS }, 4810910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project // point 4820910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project DRAW_NAME("point", SkType_DrawPoint), 4830910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project { "polyToPoly", SkType_PolyToPoly INIT_BOOL_FIELDS }, 4840910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project { "polygon", SkType_Polygon INIT_BOOL_FIELDS }, 4850910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project { "polyline", SkType_Polyline INIT_BOOL_FIELDS }, 4860910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project { "post", SkType_Post INIT_BOOL_FIELDS }, 4870910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project { "quadTo", SkType_QuadTo INIT_BOOL_FIELDS }, 4880910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project { "rCubicTo", SkType_RCubicTo INIT_BOOL_FIELDS }, 4890910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project { "rLineTo", SkType_RLineTo INIT_BOOL_FIELDS }, 4900910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project { "rMoveTo", SkType_RMoveTo INIT_BOOL_FIELDS }, 4910910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project { "rQuadTo", SkType_RQuadTo INIT_BOOL_FIELDS }, 4920910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project { "radialGradient", SkType_RadialGradient INIT_BOOL_FIELDS }, 4930910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project DISPLAY_NAME("random", SkType_Random), 4940910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project { "rect", SkType_Rect INIT_BOOL_FIELDS }, 4950910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project { "rectToRect", SkType_RectToRect INIT_BOOL_FIELDS }, 4960910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project { "remove", SkType_Remove INIT_BOOL_FIELDS }, 4970910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project { "replace", SkType_Replace INIT_BOOL_FIELDS }, 4980910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project { "rotate", SkType_Rotate INIT_BOOL_FIELDS }, 4990910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project { "roundRect", SkType_RoundRect INIT_BOOL_FIELDS }, 5000910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project { "save", SkType_Save INIT_BOOL_FIELDS }, 5010910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project { "saveLayer", SkType_SaveLayer INIT_BOOL_FIELDS }, 5020910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project { "scale", SkType_Scale INIT_BOOL_FIELDS }, 5030910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project // screenplay 5040910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project { "set", SkType_Set INIT_BOOL_FIELDS }, 5050910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project { "shader", SkType_Shader INIT_BOOL_FIELDS }, 5060910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project { "skew", SkType_Skew INIT_BOOL_FIELDS }, 5070910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project { "skia3d:camera", SkType_3D_Camera INIT_BOOL_FIELDS }, 5080910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project { "skia3d:patch", SkType_3D_Patch INIT_BOOL_FIELDS }, 5090910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project // point 5100910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project { "snapshot", SkType_Snapshot INIT_BOOL_FIELDS }, 5110910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project { "string", SkType_String INIT_BOOL_FIELDS }, 5120910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project // style 5130910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project { "text", SkType_Text INIT_BOOL_FIELDS }, 5140910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project { "textBox", SkType_TextBox INIT_BOOL_FIELDS }, 5150910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project // textboxalign 5160910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project // textboxmode 5170910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project { "textOnPath", SkType_TextOnPath INIT_BOOL_FIELDS }, 5180910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project { "textToPath", SkType_TextToPath INIT_BOOL_FIELDS }, 5190910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project // tilemode 5200910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project { "translate", SkType_Translate INIT_BOOL_FIELDS }, 5210910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project DRAW_NAME("transparentShader", SkType_TransparentShader), 5220910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project { "typeface", SkType_Typeface INIT_BOOL_FIELDS } 5230910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project // xfermode 5240910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project // knumberoftypes 5250910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project}; 5260910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project 5270910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Projectconst int kTypeNamesSize = SK_ARRAY_COUNT(gTypeNames); 5280910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project 5290910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source ProjectSkDisplayTypes SkDisplayType::Find(SkAnimateMaker* maker, const SkMemberInfo* match) { 5300910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project for (int index = 0; index < kTypeNamesSize; index++) { 5310910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project SkDisplayTypes type = gTypeNames[index].fType; 5320910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project const SkMemberInfo* info = SkDisplayType::GetMembers(maker, type, NULL); 5330910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project if (info == match) 5340910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project return type; 5350910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project } 5360910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project return (SkDisplayTypes) -1; 5370910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project} 5380910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project 5390910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project// !!! optimize this by replacing function with a byte-sized lookup table 5400910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source ProjectSkDisplayTypes SkDisplayType::GetParent(SkAnimateMaker* maker, SkDisplayTypes base) { 5410910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project if (base == SkType_Group || base == SkType_Save || base == SkType_SaveLayer) //!!! cheat a little until we have a lookup table 5420910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project return SkType_Displayable; 5430910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project if (base == SkType_Set) 5440910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project return SkType_Animate; // another cheat until we have a lookup table 5450910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project const SkMemberInfo* info = GetMembers(maker, base, NULL); // get info for this type 5460910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project SkASSERT(info); 5470910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project if (info->fType != SkType_BaseClassInfo) 5480910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project return SkType_Unknown; // if no base, done 5490910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project // !!! could change SK_MEMBER_INHERITED macro to take type, stuff in offset, so that 5500910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project // this (and table builder) could know type without the following steps: 5510910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project const SkMemberInfo* inherited = info->getInherited(); 5520910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project SkDisplayTypes result = (SkDisplayTypes) (SkType_Unknown + 1); 5530910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project for (; result <= SkType_Xfermode; result = (SkDisplayTypes) (result + 1)) { 5540910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project const SkMemberInfo* match = GetMembers(maker, result, NULL); 5550910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project if (match == inherited) 5560910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project break; 5570910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project } 5580910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project SkASSERT(result <= SkType_Xfermode); 5590910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project return result; 5600910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project} 5610910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project 5620910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source ProjectSkDisplayTypes SkDisplayType::GetType(SkAnimateMaker* maker, const char match[], size_t len ) { 5630910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project int index = SkStrSearch(&gTypeNames[0].fName, kTypeNamesSize, match, 5640910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project len, sizeof(gTypeNames[0])); 5650910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project if (index >= 0 && index < kTypeNamesSize) 5660910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project return gTypeNames[index].fType; 5670910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project SkExtras** end = maker->fExtras.end(); 5680910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project for (SkExtras** extraPtr = maker->fExtras.begin(); extraPtr < end; extraPtr++) { 5690910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project SkDisplayTypes result = (*extraPtr)->getType(match, len); 5700910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project if (result != SkType_Unknown) 5710910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project return result; 5720910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project } 5730910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project return (SkDisplayTypes) -1; 5740910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project} 5750910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project 5760910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Projectbool SkDisplayType::IsEnum(SkAnimateMaker* , SkDisplayTypes type) { 5770910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project switch (type) { 5780910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project case SkType_AddMode: 5790910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project case SkType_Align: 5800910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project case SkType_ApplyMode: 5810910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project case SkType_ApplyTransition: 5820910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project case SkType_BitmapEncoding: 5830910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project case SkType_BitmapFormat: 5840910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project case SkType_Boolean: 5850910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project case SkType_Cap: 5860910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project case SkType_EventCode: 5870910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project case SkType_EventKind: 5880910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project case SkType_EventMode: 5890910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project case SkType_FillType: 5900910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project case SkType_FilterType: 5910910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project case SkType_FontStyle: 5920910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project case SkType_FromPathMode: 5930910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project case SkType_Join: 5940910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project case SkType_MaskFilterBlurStyle: 5950910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project case SkType_PathDirection: 5960910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project case SkType_Style: 5970910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project case SkType_TextBoxAlign: 5980910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project case SkType_TextBoxMode: 5990910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project case SkType_TileMode: 6000910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project case SkType_Xfermode: 6010910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project return true; 6020910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project default: // to avoid warnings 6030910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project break; 6040910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project } 6050910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project return false; 6060910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project} 6070910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project 6080910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Projectbool SkDisplayType::IsDisplayable(SkAnimateMaker* , SkDisplayTypes type) { 6090910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project switch (type) { 6100910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project case SkType_Add: 6110910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project case SkType_AddCircle: 6120910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project case SkType_AddOval: 6130910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project case SkType_AddPath: 6140910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project case SkType_AddRect: 6150910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project case SkType_AddRoundRect: 6160910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project case SkType_Animate: 6170910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project case SkType_AnimateBase: 6180910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project case SkType_Apply: 6190910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project case SkType_BaseBitmap: 6200910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project case SkType_Bitmap: 6210910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project case SkType_BitmapShader: 6220910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project case SkType_Blur: 6230910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project case SkType_Clear: 6240910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project case SkType_Clip: 6250910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project case SkType_Close: 6260910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project case SkType_Color: 6270910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project case SkType_CubicTo: 6280910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project case SkType_Dash: 6291cab2921ab279367f8206cdadc9259d12e603548Derek Sollenberger case SkType_DataInput: 6300910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project case SkType_Discrete: 6310910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project case SkType_Displayable: 6320910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project case SkType_Drawable: 6330910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project case SkType_DrawTo: 6340910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project case SkType_Emboss: 6350910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project case SkType_Event: 6360910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project case SkType_FromPath: 6370910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project case SkType_Full: 6380910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project case SkType_Group: 6390910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project case SkType_Image: 6400910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project case SkType_Input: 6410910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project case SkType_Line: 6420910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project case SkType_LineTo: 6430910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project case SkType_LinearGradient: 6440910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project case SkType_Matrix: 6450910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project case SkType_Move: 6460910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project case SkType_MoveTo: 6470910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project case SkType_Movie: 6480910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project case SkType_Oval: 6490910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project case SkType_Paint: 6500910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project case SkType_Path: 6510910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project case SkType_PolyToPoly: 6520910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project case SkType_Polygon: 6530910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project case SkType_Polyline: 6540910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project case SkType_Post: 6550910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project case SkType_QuadTo: 6560910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project case SkType_RCubicTo: 6570910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project case SkType_RLineTo: 6580910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project case SkType_RMoveTo: 6590910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project case SkType_RQuadTo: 6600910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project case SkType_RadialGradient: 6610910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project case SkType_Random: 6620910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project case SkType_Rect: 6630910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project case SkType_RectToRect: 6640910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project case SkType_Remove: 6650910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project case SkType_Replace: 6660910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project case SkType_Rotate: 6670910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project case SkType_RoundRect: 6680910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project case SkType_Save: 6690910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project case SkType_SaveLayer: 6700910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project case SkType_Scale: 6710910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project case SkType_Set: 6720910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project case SkType_Shader: 6730910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project case SkType_Skew: 6740910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project case SkType_3D_Camera: 6750910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project case SkType_3D_Patch: 6760910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project case SkType_Snapshot: 6770910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project case SkType_Text: 6780910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project case SkType_TextBox: 6790910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project case SkType_TextOnPath: 6800910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project case SkType_TextToPath: 6810910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project case SkType_Translate: 6820910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project case SkType_TransparentShader: 6830910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project return true; 6840910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project default: // to avoid warnings 6850910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project break; 6860910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project } 6870910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project return false; 6880910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project} 6890910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project 6900910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Projectbool SkDisplayType::IsStruct(SkAnimateMaker* , SkDisplayTypes type) { 6910910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project switch (type) { 6920910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project case SkType_Point: 6930910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project case SkType_3D_Point: 6940910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project return true; 6950910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project default: // to avoid warnings 6960910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project break; 6970910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project } 6980910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project return false; 6990910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project} 7000910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project 7010910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project 7020910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source ProjectSkDisplayTypes SkDisplayType::RegisterNewType() { 7030910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project gNewTypes = (SkDisplayTypes) (gNewTypes + 1); 7040910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project return gNewTypes; 7050910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project} 7060910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project 7070910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project 7080910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project 7090910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project#ifdef SK_DEBUG 7100910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Projectconst char* SkDisplayType::GetName(SkAnimateMaker* maker, SkDisplayTypes type) { 7110910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project for (int index = 0; index < kTypeNamesSize - 1; index++) { 7120910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project if (gTypeNames[index].fType == type) 7130910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project return gTypeNames[index].fName; 7140910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project } 7150910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project SkExtras** end = maker->fExtras.end(); 7160910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project for (SkExtras** extraPtr = maker->fExtras.begin(); extraPtr < end; extraPtr++) { 7170910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project const char* result = (*extraPtr)->getName(type); 7180910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project if (result != NULL) 7190910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project return result; 7200910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project } 7210910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project return NULL; 7220910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project} 7230910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project#endif 7240910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project 7250910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project#ifdef SK_SUPPORT_UNITTEST 7260910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Projectvoid SkDisplayType::UnitTest() { 7270910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project SkAnimator animator; 7280910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project SkAnimateMaker* maker = animator.fMaker; 7290910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project int index; 7300910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project for (index = 0; index < kTypeNamesSize - 1; index++) { 7310910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project SkASSERT(strcmp(gTypeNames[index].fName, gTypeNames[index + 1].fName) < 0); 7320910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project SkASSERT(gTypeNames[index].fType < gTypeNames[index + 1].fType); 7330910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project } 7340910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project for (index = 0; index < kTypeNamesSize; index++) { 7350910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project SkDisplayable* test = CreateInstance(maker, gTypeNames[index].fType); 7360910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project if (test == NULL) 7370910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project continue; 7380910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project#if defined _WIN32 && _MSC_VER >= 1300 && defined _INC_CRTDBG // only on windows, only if using "crtdbg.h" 7390910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project // we know that crtdbg puts 0xfdfdfdfd at the end of the block 7400910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project // look for unitialized memory, signature 0xcdcdcdcd prior to that 7410910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project int* start = (int*) test; 7420910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project while (*start != 0xfdfdfdfd) { 7430910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project SkASSERT(*start != 0xcdcdcdcd); 7440910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project start++; 7450910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project } 7460910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project#endif 7470910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project delete test; 7480910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project } 7490910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project for (index = 0; index < kTypeNamesSize; index++) { 7500910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project int infoCount; 7510910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project const SkMemberInfo* info = GetMembers(maker, gTypeNames[index].fType, &infoCount); 7520910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project if (info == NULL) 7530910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project continue; 7540910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project#if SK_USE_CONDENSED_INFO == 0 7550910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project for (int inner = 0; inner < infoCount - 1; inner++) { 7560910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project if (info[inner].fType == SkType_BaseClassInfo) 7570910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project continue; 7580910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project SkASSERT(strcmp(info[inner].fName, info[inner + 1].fName) < 0); 7590910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project } 7600910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project#endif 7610910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project } 7620910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project#if defined SK_DEBUG || defined SK_BUILD_CONDENSED 7630910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project BuildCondensedInfo(maker); 7640910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project#endif 7650910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project} 7660910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project#endif 767