1 2 /* 3 * Copyright 2006 The Android Open Source Project 4 * 5 * Use of this source code is governed by a BSD-style license that can be 6 * found in the LICENSE file. 7 */ 8 9 10 #ifndef SkDraw3D_DEFINED 11 #define SkDraw3D_DEFINED 12 13 #include "SkCamera.h" 14 #include "SkADrawable.h" 15 #include "SkMemberInfo.h" 16 17 class Sk3D_Patch; 18 19 struct Sk3D_Point { 20 DECLARE_NO_VIRTUALS_MEMBER_INFO(3D_Point); 21 Sk3D_Point(); 22 private: 23 SkPoint3D fPoint; 24 }; 25 26 class Sk3D_Camera : public SkADrawable { 27 DECLARE_MEMBER_INFO(3D_Camera); 28 Sk3D_Camera(); 29 virtual ~Sk3D_Camera(); 30 bool draw(SkAnimateMaker& ) override; 31 private: 32 SkScalar hackWidth; 33 SkScalar hackHeight; 34 SkCamera3D fCamera; 35 Sk3D_Patch* patch; 36 }; 37 38 class Sk3D_Patch : public SkDisplayable { 39 DECLARE_MEMBER_INFO(3D_Patch); 40 private: 41 void executeFunction(SkDisplayable* , int index, 42 SkTDArray<SkScriptValue>& parameters, SkDisplayTypes type, 43 SkScriptValue* ) override; 44 const SkFunctionParamType* getFunctionsParameters() override; 45 SkPatch3D fPatch; 46 static const SkFunctionParamType fFunctionParameters[]; 47 friend class Sk3D_Camera; 48 }; 49 50 #endif // SkDraw3D_DEFINED 51