00001
00002
00003 #ifndef __GXRENDERER_H_
00004 #define __GXRENDERER_H_
00005
00006 #include "resource.h"
00007
00008 #include "..\GraphX\Headers\GXGraphicsEngine.h"
00009
00010
00012
00013 class ATL_NO_VTABLE CGXRenderer :
00014 public CComObjectRootEx<CComSingleThreadModel>,
00015 public CComCoClass<CGXRenderer, &CLSID_GXRenderer>,
00016 public IDispatchImpl<IGXRenderer, &IID_IGXRenderer, &LIBID_GXCOMDLLLib>
00017 {
00018 protected:
00019 CGXGraphicsEngine m_Engine;
00020
00021 public:
00022 CGXRenderer()
00023 {
00024 }
00025
00026 ~CGXRenderer()
00027 {
00028 m_Engine.Cleanup();
00029 }
00030
00031 DECLARE_REGISTRY_RESOURCEID(IDR_GXRENDERER)
00032
00033 DECLARE_PROTECT_FINAL_CONSTRUCT()
00034
00035 BEGIN_COM_MAP(CGXRenderer)
00036 COM_INTERFACE_ENTRY(IGXRenderer)
00037 COM_INTERFACE_ENTRY(IDispatch)
00038 END_COM_MAP()
00039
00040
00041 public:
00042 STDMETHOD(GetCameraDirection)(float* pOut);
00043 STDMETHOD(GetCameraVelocity)(float* pOut);
00044 STDMETHOD(RotateCamera)(const float fX, const float fY);
00045 STDMETHOD(SetCameraVelocity)(const float fVel);
00046 STDMETHOD(GetEntityPos)(UINT uEntity, float* pOutPos);
00047 STDMETHOD(SetSpriteInfo)(UINT uIndex, SGXSpriteInfo* pIn);
00048 STDMETHOD(GetSpriteInfo)(UINT uIndex, SGXSpriteInfo* pOut);
00049 STDMETHOD(DeleteSpriteInstance)(UINT uIndex);
00050 STDMETHOD(AddSpriteInstance)(SGXSpriteInfo* pInfo);
00051 STDMETHOD(PrecacheSprite)(BSTR FileName, UINT* pOut);
00052 STDMETHOD(DisplayStats)(BOOL bDisplay);
00053 STDMETHOD(ValidateWindow)();
00054 STDMETHOD(SetEntityWaypoint)(UINT uID, SGXEntityWaypoints* pIn);
00055 STDMETHOD(GetEntityWaypoint)(UINT uID, SGXEntityWaypoints* pOut);
00056 STDMETHOD(DeleteEntity)(UINT uID);
00057 STDMETHOD(CreateEntity)(UINT uModel, UINT* pIDOut);
00058 STDMETHOD(PrecacheModel)(BSTR szFileName, UINT* pIndexOut);
00059 STDMETHOD(IncrementTime)();
00060 STDMETHOD(SetTime)(UINT uNewTime);
00061 STDMETHOD(GetTime)(UINT* pOut);
00062 STDMETHOD(ToggleWindowConfig)(BOOL bFullScreen, UINT uWidth, UINT uHeight);
00063 STDMETHOD(MoveCamera)(GXMOVEDIR Direction, float fAmt);
00064 STDMETHOD(SetCameraPos)(float* pIn);
00065 STDMETHOD(GetCameraPos)(float* pOut);
00066 STDMETHOD(GenerateLand)(const UINT uRandSeed, BSTR szColorSpline);
00067 STDMETHOD(SaveLand)(BSTR szFileName);
00068 STDMETHOD(LoadLand)(BSTR szFileName);
00069 STDMETHOD(Init)(UINT uWindowWidth, UINT uWindowHeight,UINT uBBWidth, UINT uBBHeight, BOOL bFullScreen, HWND hWnd);
00070 STDMETHOD(Cleanup)();
00071
00072
00073 };
00074
00075 #endif //__GXRENDERER_H_