michael@0: michael@0: /* michael@0: * Copyright 2006 The Android Open Source Project michael@0: * michael@0: * Use of this source code is governed by a BSD-style license that can be michael@0: * found in the LICENSE file. michael@0: */ michael@0: michael@0: michael@0: #ifndef SkDraw3D_DEFINED michael@0: #define SkDraw3D_DEFINED michael@0: michael@0: #include "SkCamera.h" michael@0: #include "SkDrawable.h" michael@0: #include "SkMemberInfo.h" michael@0: michael@0: class Sk3D_Patch; michael@0: michael@0: struct Sk3D_Point { michael@0: DECLARE_NO_VIRTUALS_MEMBER_INFO(3D_Point); michael@0: Sk3D_Point(); michael@0: private: michael@0: SkPoint3D fPoint; michael@0: }; michael@0: michael@0: class Sk3D_Camera : public SkDrawable { michael@0: DECLARE_MEMBER_INFO(3D_Camera); michael@0: Sk3D_Camera(); michael@0: virtual ~Sk3D_Camera(); michael@0: virtual bool draw(SkAnimateMaker& ); michael@0: private: michael@0: SkScalar hackWidth; michael@0: SkScalar hackHeight; michael@0: SkCamera3D fCamera; michael@0: Sk3D_Patch* patch; michael@0: }; michael@0: michael@0: class Sk3D_Patch : public SkDisplayable { michael@0: DECLARE_MEMBER_INFO(3D_Patch); michael@0: private: michael@0: virtual void executeFunction(SkDisplayable* , int index, michael@0: SkTDArray& parameters, SkDisplayTypes type, michael@0: SkScriptValue* ); michael@0: virtual const SkFunctionParamType* getFunctionsParameters(); michael@0: SkPatch3D fPatch; michael@0: static const SkFunctionParamType fFunctionParameters[]; michael@0: friend class Sk3D_Camera; michael@0: }; michael@0: michael@0: #endif // SkDraw3D_DEFINED