blob: e6549ea7a150f14bc5a1047343feba845cd1ac3f [file] [log] [blame]
epoger@google.comec3ed6a2011-07-28 14:26:00 +00001
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
reed@android.com8a1c16f2008-12-17 15:59:43 +00009
10#ifndef SkDraw3D_DEFINED
11#define SkDraw3D_DEFINED
12
13#include "SkCamera.h"
14#include "SkDrawable.h"
15#include "SkMemberInfo.h"
16
17class Sk3D_Patch;
18
19struct Sk3D_Point {
20 DECLARE_NO_VIRTUALS_MEMBER_INFO(3D_Point);
21 Sk3D_Point();
22private:
23 SkPoint3D fPoint;
24};
25
26class Sk3D_Camera : public SkDrawable {
27 DECLARE_MEMBER_INFO(3D_Camera);
28 Sk3D_Camera();
29 virtual ~Sk3D_Camera();
30 virtual bool draw(SkAnimateMaker& );
31private:
32 SkScalar hackWidth;
33 SkScalar hackHeight;
34 SkCamera3D fCamera;
35 Sk3D_Patch* patch;
36};
37
38class Sk3D_Patch : public SkDisplayable {
39 DECLARE_MEMBER_INFO(3D_Patch);
40private:
41 virtual void executeFunction(SkDisplayable* , int index,
42 SkTDArray<SkScriptValue>& parameters, SkDisplayTypes type,
43 SkScriptValue* );
44 virtual const SkFunctionParamType* getFunctionsParameters();
45 SkPatch3D fPatch;
46 static const SkFunctionParamType fFunctionParameters[];
47 friend class Sk3D_Camera;
48};
49
50#endif // SkDraw3D_DEFINED
51