5f066ba65f4afcc127b76acaba94d329cf597502
[platform/upstream/libSkiaSharp.git] / src / animator / SkDraw3D.h
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& ) SK_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     virtual void executeFunction(SkDisplayable* , int index,
42         SkTDArray<SkScriptValue>& parameters, SkDisplayTypes type,
43         SkScriptValue* ) SK_OVERRIDE;
44     const SkFunctionParamType* getFunctionsParameters() SK_OVERRIDE;
45     SkPatch3D  fPatch;
46     static const SkFunctionParamType fFunctionParameters[];
47     friend class Sk3D_Camera;
48 };
49
50 #endif // SkDraw3D_DEFINED