forked from metin2/client
1
0
Fork 0
client/UserInterface/AbstractApplication.h

56 lines
1.5 KiB
C++

#pragma once
#include "AbstractSingleton.h"
class IAbstractApplication : public TAbstractSingleton<IAbstractApplication>
{
public:
struct SCameraPos
{
float m_fUpDir;
float m_fViewDir;
float m_fCrossDir;
SCameraPos() : m_fUpDir(0.0f), m_fViewDir(0.0f), m_fCrossDir(0.0f) {}
};
struct SCameraSetting
{
D3DXVECTOR3 v3CenterPosition;
SCameraPos kCmrPos;
float fRotation;
float fPitch;
float fZoom;
SCameraSetting() : v3CenterPosition(0.0f, 0.0f, 0.0f),
fRotation(0.0f),
fPitch(0.0f),
fZoom(0.0f) {}
};
public:
IAbstractApplication() {}
virtual ~IAbstractApplication() {}
virtual void GetMousePosition(POINT* ppt) = 0;
virtual float GetGlobalTime() = 0;
virtual float GetGlobalElapsedTime() = 0;
virtual void SkipRenderBuffering(DWORD dwSleepMSec) = 0;
virtual void SetServerTime(time_t tTime) = 0;
virtual void SetCenterPosition(float fx, float fy, float fz) = 0;
virtual void SetEventCamera(const SCameraSetting & c_rCameraSetting) = 0;
virtual void BlendEventCamera(const SCameraSetting & c_rCameraSetting, float fBlendTime) = 0;
virtual void SetDefaultCamera() = 0;
virtual void RunIMEUpdate() = 0;
virtual void RunIMETabEvent() = 0;
virtual void RunIMEReturnEvent() = 0;
virtual void RunIMEChangeCodePage() = 0;
virtual void RunIMEOpenCandidateListEvent() = 0;
virtual void RunIMECloseCandidateListEvent() = 0;
virtual void RunIMEOpenReadingWndEvent() = 0;
virtual void RunIMECloseReadingWndEvent() = 0;
};