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