|
|
/***************************************************************************\ * * DirectUser-Display * \***************************************************************************/
class EventGadget { event HRESULT OnEvent(in EventMsg * pmsg);
dapi HRESULT GetFilter(out UINT nFilter); dapi HRESULT SetFilter(in UINT nNewFilter, in UINT nMask); dapi HRESULT AddHandlerG(in MSGID nEventMsg, in EventGadget * pgbHandler); dapi HRESULT AddHandlerD(in MSGID nEventMsg, in DUser::EventDelegate ed); dapi HRESULT RemoveHandlerG(in MSGID nEventMsg, in EventGadget * pgbHandler); dapi HRESULT RemoveHandlerD(in MSGID nEventMsg, in DUser::EventDelegate ed); };
class Listener : public EventGadget { };
class Visual : public EventGadget { dapi HRESULT GetExtension(out DeviceVisual * pDeviceVisual);
dapi HRESULT DeleteTree(); dapi HRESULT SetOrder(in Visual * pgvOther, in UINT nCmd); dapi HRESULT SetParent(in Visual * pgvParent, in Visual * pgvOther, in UINT nCmd);
dapi HRESULT GetRelative(in UINT nCmd, out Visual * pgv); dapi HRESULT GetStyle(out UINT nStyle); dapi HRESULT SetStyle(in UINT nNewStyle, in UINT nMask); dapi HRESULT SetKeyboardFocus(); dapi HRESULT IsParentChainStyle(in UINT nStyle, out BOOL fResult, in UINT nFlags);
dapi HRESULT GetProperty(in PRID id, out void * pvValue); dapi HRESULT SetProperty(in PRID id, in void * pvValue); dapi HRESULT RemoveProperty(in PRID id);
dapi HRESULT Invalidate(UINT nFlags); dapi HRESULT InvalidateRects(const RECT * rgrcClientPxl, int cRects, UINT nFlags); dapi HRESULT GetScale(out DirectUser::Geometry::SizeF sizefScale); dapi HRESULT SetScale(in DirectUser::Geometry::SizeF sizefScale); dapi HRESULT GetRotation(out float flRotationRad); dapi HRESULT SetRotation(in float flRotationRad); dapi HRESULT GetCenterPoint(out DirectUser::Geometry::PointF ptfCenter); dapi HRESULT SetCenterPoint(in DirectUser::Geometry::PointF ptfCenter);
dapi HRESULT GetSize(out DirectUser::Geometry::Size sizeLogicalPxl); dapi HRESULT GetRect(out DirectUser::Geometry::Rect rcPxl); dapi HRESULT SetRect(in UINT nFlags, in DirectUser::Geometry::Rect rcPxl);
dapi HRESULT ComputeContainerRect(out DirectUser::Geometry::Rect rcPxl); dapi HRESULT MapPoints(in Visual * pgvTo, in /* out */ POINT * rgptClientPxl, in int cPts); dapi HRESULT FindFromPoint(in POINT ptThisClientPxl, in UINT nStyle, out POINT ptFoundClientPxl, out Visual * pgvFound); };
class Root : public Visual { dapi HRESULT GetFocus(out Visual * pgvFocus); dapi HRESULT GetBackgroundColor(out DUser::Color clrBackground); dapi HRESULT SetBackgroundColor(in DUser::Color clrBackground); dapi HRESULT GetFullScreen(out bool fFullScreen); dapi HRESULT SetFullScreen(in bool fFullScreen); dapi HRESULT SetPreBeginSceneROs(DUser::IRenderOperation ** rgpROs, int cROs); };
// // Device extensions //
class DeviceVisual { dapi HRESULT GetVisual(out Visual * pgvVisual); };
class D3d7DeviceVisual : public DeviceVisual { dapi HRESULT GetVertexAlpha(out BYTE bAlpha); dapi HRESULT SetVertexAlpha(in BYTE bAlpha); dapi HRESULT GetLight(in int nID, in void * plight); dapi HRESULT SetLight(in int nID, in void * plight); dapi HRESULT RemoveLight(in int nID); };
// // DirectUser-Animations //
class Interpolation { dapi HRESULT AddRef(); dapi HRESULT Release(); dapi HRESULT Compute(in float flProgress, in float flStart, in float flEnd, out float flResult); };
class LinearInterpolation : public Interpolation { };
class LogInterpolation : public Interpolation { dapi HRESULT SetScale(in float flScale); };
class ExpInterpolation : public Interpolation { dapi HRESULT SetScale(in float flScale); };
class SCurveInterpolation : public Interpolation { dapi HRESULT SetScale(in float flScale); };
class Flow { dapi HRESULT AddRef(); dapi HRESULT Release();
dapi HRESULT GetPRID(out PRID prid); dapi HRESULT GetKeyFrame(in Flow::ETime time, out DUser::KeyFrame * pkf); dapi HRESULT SetKeyFrame(in Flow::ETime time, in const DUser::KeyFrame * pkf);
dapi HRESULT OnReset(in Visual * pgvSubject); dapi HRESULT OnAction(in Visual * pgvSubject, in Interpolation * pipol, in float flProgress); };
class AlphaVertexFlow : public Flow {
};
class RectFlow : public Flow {
};
class RotateFlow : public Flow {
};
class ScaleFlow : public Flow {
};
class LightFlow : public Flow {
};
class Sequence : public Listener { dapi HRESULT AddRef(); dapi HRESULT Release();
dapi HRESULT GetLength(out float flLength); dapi HRESULT GetDelay(out float flDelay); dapi HRESULT SetDelay(in float flDelay); dapi HRESULT GetFlow(out Flow * pflow); dapi HRESULT SetFlow(in Flow * pflow); dapi HRESULT GetLoop(out int repeatCount); dapi HRESULT SetLoop(in int repeatCount);
dapi HRESULT GetKeyFrameCount(out int cFrames); dapi HRESULT AddKeyFrame(in float flTime, out int idxKeyFrame); dapi HRESULT RemoveKeyFrame(in int idxKeyFrame); dapi HRESULT RemoveAllKeyFrames(); dapi HRESULT FindKeyFrame(in float flTime, out int idxKeyFrame);
dapi HRESULT GetTime(in int idxKeyFrame, out float flTime); dapi HRESULT SetTime(in int idxKeyFrame, in float flTime); dapi HRESULT GetKeyFrame(in int idxKeyFrame, out DUser::KeyFrame * pkf); dapi HRESULT SetKeyFrame(in int idxKeyFrame, in const DUser::KeyFrame * pkfSrc); dapi HRESULT GetInterpolation(in int idxKeyFrame, out Interpolation * pipol); dapi HRESULT SetInterpolation(in int idxKeyFrame, in Interpolation * pipol);
dapi HRESULT Play(in Visual * pgvSubject, in Sequence::AnimationInfo * pai); dapi HRESULT Stop(); dapi HRESULT Reset(in Visual * pgvSubject); dapi HRESULT GotoTime(in Visual * pgvSubject, in float flTime); };
|