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