| OLD | NEW |
| (Empty) |
| 1 /* libs/graphics/animator/SkDisplayType.h | |
| 2 ** | |
| 3 ** Copyright 2006, The Android Open Source Project | |
| 4 ** | |
| 5 ** Licensed under the Apache License, Version 2.0 (the "License"); | |
| 6 ** you may not use this file except in compliance with the License. | |
| 7 ** You may obtain a copy of the License at | |
| 8 ** | |
| 9 ** http://www.apache.org/licenses/LICENSE-2.0 | |
| 10 ** | |
| 11 ** Unless required by applicable law or agreed to in writing, software | |
| 12 ** distributed under the License is distributed on an "AS IS" BASIS, | |
| 13 ** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. | |
| 14 ** See the License for the specific language governing permissions and | |
| 15 ** limitations under the License. | |
| 16 */ | |
| 17 | |
| 18 #ifndef SkDisplayType_DEFINED | |
| 19 #define SkDisplayType_DEFINED | |
| 20 | |
| 21 #include "SkMath.h" | |
| 22 #include "SkScalar.h" | |
| 23 | |
| 24 #ifdef SK_DEBUG | |
| 25 #ifdef SK_CAN_USE_FLOAT | |
| 26 #define SK_DUMP_ENABLED | |
| 27 #endif | |
| 28 #ifdef SK_BUILD_FOR_MAC | |
| 29 #define SK_FIND_LEAKS | |
| 30 #endif | |
| 31 #endif | |
| 32 | |
| 33 #define SK_LITERAL_STR_EQUAL(str, token, len) (sizeof(str) - 1 == len \ | |
| 34 && strncmp(str, token, sizeof(str) - 1) == 0) | |
| 35 | |
| 36 class SkAnimateMaker; | |
| 37 class SkDisplayable; | |
| 38 struct SkMemberInfo; | |
| 39 | |
| 40 enum SkDisplayTypes { | |
| 41 SkType_Unknown, | |
| 42 SkType_Math, // for ecmascript compatible Math functions and constants | |
| 43 SkType_Number, // for for ecmascript compatible Number functions and consta
nts | |
| 44 SkType_Add, | |
| 45 SkType_AddCircle, | |
| 46 SkType_AddGeom, | |
| 47 SkType_AddMode, | |
| 48 SkType_AddOval, | |
| 49 SkType_AddPath, | |
| 50 SkType_AddRect, // path part | |
| 51 SkType_AddRoundRect, | |
| 52 SkType_Align, | |
| 53 SkType_Animate, | |
| 54 SkType_AnimateBase, // base type for animate, set | |
| 55 SkType_Apply, | |
| 56 SkType_ApplyMode, | |
| 57 SkType_ApplyTransition, | |
| 58 SkType_Array, | |
| 59 SkType_ARGB, | |
| 60 SkType_Base64, | |
| 61 SkType_BaseBitmap, | |
| 62 SkType_BaseClassInfo, | |
| 63 SkType_Bitmap, | |
| 64 SkType_BitmapEncoding, | |
| 65 SkType_BitmapFormat, | |
| 66 SkType_BitmapShader, | |
| 67 SkType_Blur, | |
| 68 SkType_Boolean, // can have values -1 (uninitialized), 0, 1 | |
| 69 SkType_Boundable, | |
| 70 SkType_Bounds, | |
| 71 SkType_Cap, | |
| 72 SkType_Clear, | |
| 73 SkType_Clip, | |
| 74 SkType_Close, | |
| 75 SkType_Color, | |
| 76 SkType_CubicTo, | |
| 77 SkType_Dash, | |
| 78 SkType_Data, | |
| 79 SkType_Discrete, | |
| 80 SkType_Displayable, | |
| 81 SkType_Drawable, | |
| 82 SkType_DrawTo, | |
| 83 SkType_Dump, | |
| 84 SkType_DynamicString, // evaluate at draw time | |
| 85 SkType_Emboss, | |
| 86 SkType_Event, | |
| 87 SkType_EventCode, | |
| 88 SkType_EventKind, | |
| 89 SkType_EventMode, | |
| 90 SkType_FillType, | |
| 91 SkType_FilterType, | |
| 92 SkType_Float, | |
| 93 SkType_FontStyle, | |
| 94 SkType_FromPath, | |
| 95 SkType_FromPathMode, | |
| 96 SkType_Full, | |
| 97 SkType_Gradient, | |
| 98 SkType_Group, | |
| 99 SkType_HitClear, | |
| 100 SkType_HitTest, | |
| 101 SkType_Image, | |
| 102 SkType_Include, | |
| 103 SkType_Input, | |
| 104 SkType_Int, | |
| 105 SkType_Join, | |
| 106 SkType_Line, // simple line primitive | |
| 107 SkType_LineTo, // used as part of path construction | |
| 108 SkType_LinearGradient, | |
| 109 SkType_MaskFilter, | |
| 110 SkType_MaskFilterBlurStyle, | |
| 111 SkType_MaskFilterLight, | |
| 112 SkType_Matrix, | |
| 113 SkType_MemberFunction, | |
| 114 SkType_MemberProperty, | |
| 115 SkType_Move, | |
| 116 SkType_MoveTo, | |
| 117 SkType_Movie, | |
| 118 SkType_MSec, | |
| 119 SkType_Oval, | |
| 120 SkType_Paint, | |
| 121 SkType_Path, | |
| 122 SkType_PathDirection, | |
| 123 SkType_PathEffect, | |
| 124 SkType_Point, // used inside other structures, no vtable | |
| 125 SkType_DrawPoint, // used to draw points, has a vtable | |
| 126 SkType_PolyToPoly, | |
| 127 SkType_Polygon, | |
| 128 SkType_Polyline, | |
| 129 SkType_Post, | |
| 130 SkType_QuadTo, | |
| 131 SkType_RCubicTo, | |
| 132 SkType_RLineTo, | |
| 133 SkType_RMoveTo, | |
| 134 SkType_RQuadTo, | |
| 135 SkType_RadialGradient, | |
| 136 SkType_Random, | |
| 137 SkType_Rect, | |
| 138 SkType_RectToRect, | |
| 139 SkType_Remove, | |
| 140 SkType_Replace, | |
| 141 SkType_Rotate, | |
| 142 SkType_RoundRect, | |
| 143 SkType_Save, | |
| 144 SkType_SaveLayer, | |
| 145 SkType_Scale, | |
| 146 SkType_Screenplay, | |
| 147 SkType_Set, | |
| 148 SkType_Shader, | |
| 149 SkType_Skew, | |
| 150 SkType_3D_Camera, | |
| 151 SkType_3D_Patch, | |
| 152 SkType_3D_Point, | |
| 153 SkType_Snapshot, | |
| 154 SkType_String, // pointer to SkString | |
| 155 SkType_Style, | |
| 156 SkType_Text, | |
| 157 SkType_TextBox, | |
| 158 SkType_TextBoxAlign, | |
| 159 SkType_TextBoxMode, | |
| 160 SkType_TextOnPath, | |
| 161 SkType_TextToPath, | |
| 162 SkType_TileMode, | |
| 163 SkType_Translate, | |
| 164 SkType_TransparentShader, | |
| 165 SkType_Typeface, | |
| 166 SkType_Xfermode, | |
| 167 kNumberOfTypes | |
| 168 }; | |
| 169 | |
| 170 struct TypeNames { | |
| 171 const char* fName; | |
| 172 SkDisplayTypes fType; | |
| 173 #if defined SK_DEBUG || defined SK_BUILD_CONDENSED | |
| 174 bool fDrawPrefix; | |
| 175 bool fDisplayPrefix; | |
| 176 #endif | |
| 177 }; | |
| 178 | |
| 179 #ifdef SK_DEBUG | |
| 180 typedef SkDisplayTypes SkFunctionParamType; | |
| 181 #else | |
| 182 typedef unsigned char SkFunctionParamType; | |
| 183 #endif | |
| 184 | |
| 185 extern const TypeNames gTypeNames[]; | |
| 186 extern const int kTypeNamesSize; | |
| 187 | |
| 188 class SkDisplayType { | |
| 189 public: | |
| 190 static SkDisplayTypes Find(SkAnimateMaker* , const SkMemberInfo* ); | |
| 191 static const SkMemberInfo* GetMember(SkAnimateMaker* , SkDisplayTypes , cons
t char** ); | |
| 192 static const SkMemberInfo* GetMembers(SkAnimateMaker* , SkDisplayTypes , int
* infoCountPtr); | |
| 193 static SkDisplayTypes GetParent(SkAnimateMaker* , SkDisplayTypes ); | |
| 194 static bool IsDisplayable(SkAnimateMaker* , SkDisplayTypes ); | |
| 195 static bool IsEnum(SkAnimateMaker* , SkDisplayTypes ); | |
| 196 static bool IsStruct(SkAnimateMaker* , SkDisplayTypes ); | |
| 197 static SkDisplayTypes RegisterNewType(); | |
| 198 static SkDisplayTypes Resolve(const char[] , const SkMemberInfo** ); | |
| 199 #ifdef SK_DEBUG | |
| 200 static bool IsAnimate(SkDisplayTypes type ) { return type == SkType_Animate
|| | |
| 201 type == SkType_Set; } | |
| 202 static const char* GetName(SkAnimateMaker* , SkDisplayTypes ); | |
| 203 #endif | |
| 204 #ifdef SK_SUPPORT_UNITTEST | |
| 205 static void UnitTest(); | |
| 206 #endif | |
| 207 #if defined SK_DEBUG || defined SK_BUILD_CONDENSED | |
| 208 static void BuildCondensedInfo(SkAnimateMaker* ); | |
| 209 #endif | |
| 210 static SkDisplayTypes GetType(SkAnimateMaker* , const char[] , size_t len); | |
| 211 static SkDisplayable* CreateInstance(SkAnimateMaker* , SkDisplayTypes ); | |
| 212 private: | |
| 213 static SkDisplayTypes gNewTypes; | |
| 214 }; | |
| 215 | |
| 216 #endif // SkDisplayType_DEFINED | |
| OLD | NEW |