#ifndef KOTTUI_H #define KOTTUI_H #include "../materialsystem/imaterialsystem.h" #include "../materialsystem/igamewindow.h" #include "tier2/iappsystem.h" abstract_class IKotRenderFont { public: virtual IImage *GetAtlas() = 0; virtual bool IsLetterPresent( uint32_t letter ) = 0; virtual float GetLetterX( uint32_t letter ) = 0; virtual float GetLetterY( uint32_t letter ) = 0; virtual float GetWidth( uint32_t letter ) = 0; virtual float GetHeight( uint32_t letter ) = 0; virtual bool IsMono() = 0; virtual uint32_t GetLetterWidth() = 0; virtual uint32_t GetLetterHeight() = 0; }; abstract_class IKotUIBuffer { public: virtual void SetPosition( int iY, int iX ) = 0; virtual void Move( int iY, int iX ) = 0; virtual void SetColor( char c ) = 0; virtual void Clear( char c ) = 0; virtual void PutChar( char c ) = 0; virtual void Printf(const char *szFormat, ...) = 0; virtual void Draw( IImage *pImage ) = 0; virtual void SetTextSize( int iY, int iX ) = 0; virtual void SetTextFont( IKotRenderFont *pFont ) = 0; }; abstract_class IKotUIManager: public IAppSystem2 { public: virtual IKotRenderFont *LoadFont( const char *szPath ) = 0; virtual IKotUIBuffer *CreateBuffer( int iWidth, int iHeight ) = 0; virtual void DeleteBuffer( IKotUIBuffer *pBuffer ) = 0; }; IKotUIManager *KotUIManager(); #define KOT_UI_INTEFACE_VERSION "KotUI001" #endif