SkDraw3D.h revision 986ca61cf7be3ec590f8820e9b7ba042ac2948fe
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
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 SkADrawable {
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