/* Console.h Written by Matthew Fisher A simple console interface that can be used by the callback DLL to write feedback text to the user. */ struct ConsoleLine { String Text; RGBColor Color; }; struct ConsolePanel { UINT CurHeadPtr; Vector Lines; }; class Overlay : public ID3D9DeviceOverlay { public: Overlay(); void FreeMemory(); void Init(D3D9Base::LPDIRECT3DDEVICE9 Device); void CreateNullPixelShader(); void SetNullPixelShader(); void OnLostDevice(); void OnResetDevice(); void WriteLine(const String &Text, RGBColor Color, UINT PanelIndex); void ClearPanel(UINT PanelIndex); void AddMesh(const Mesh &M); void SetMeshTransform(const Matrix4 &Transform); void ClearMeshes(); void RenderConsole(); void RenderMeshes(); private: static const UINT ConsolePanelCount = 5; ConsolePanel _Panels[ConsolePanelCount]; D3D9Base::LPD3DXFONT _Font; D3D9Base::ID3DXSprite* _Sprite; D3D9Base::LPDIRECT3DDEVICE9 _Device; D3D9Base::LPDIRECT3DPIXELSHADER9 _NullPixelShader; Vector _Meshes; Matrix4 _MeshTransform; };