#pragma once #include "IAppSystem.hpp" #include "vector.hpp" #include "color.hpp" enum FontDrawType_t { FONT_DRAW_DEFAULT = 0, FONT_DRAW_NONADDITIVE, FONT_DRAW_ADDITIVE, FONT_DRAW_TYPE_COUNT = 2, }; enum FontFlags_t { FONTFLAG_NONE, FONTFLAG_ITALIC = 0x001, FONTFLAG_UNDERLINE = 0x002, FONTFLAG_STRIKEOUT = 0x004, FONTFLAG_SYMBOL = 0x008, FONTFLAG_ANTIALIAS = 0x010, FONTFLAG_GAUSSIANBLUR = 0x020, FONTFLAG_ROTARY = 0x040, FONTFLAG_DROPSHADOW = 0x080, FONTFLAG_ADDITIVE = 0x100, FONTFLAG_OUTLINE = 0x200, FONTFLAG_CUSTOM = 0x400, FONTFLAG_BITMAP = 0x800, }; enum ImageFormat { IMAGE_FORMAT_UNKNOWN = -1, IMAGE_FORMAT_RGBA8888 = 0, IMAGE_FORMAT_ABGR8888, IMAGE_FORMAT_RGB888, IMAGE_FORMAT_BGR888, IMAGE_FORMAT_RGB565, IMAGE_FORMAT_I8, IMAGE_FORMAT_IA88, IMAGE_FORMAT_P8, IMAGE_FORMAT_A8, IMAGE_FORMAT_RGB888_BLUESCREEN, IMAGE_FORMAT_BGR888_BLUESCREEN, IMAGE_FORMAT_ARGB8888, IMAGE_FORMAT_BGRA8888, IMAGE_FORMAT_DXT1, IMAGE_FORMAT_DXT3, IMAGE_FORMAT_DXT5, IMAGE_FORMAT_BGRX8888, IMAGE_FORMAT_BGR565, IMAGE_FORMAT_BGRX5551, IMAGE_FORMAT_BGRA4444, IMAGE_FORMAT_DXT1_ONEBITALPHA, IMAGE_FORMAT_BGRA5551, IMAGE_FORMAT_UV88, IMAGE_FORMAT_UVWQ8888, IMAGE_FORMAT_RGBA16161616F, IMAGE_FORMAT_RGBA16161616, IMAGE_FORMAT_UVLX8888, IMAGE_FORMAT_R32F, // Single-channel 32-bit floating point IMAGE_FORMAT_RGB323232F, IMAGE_FORMAT_RGBA32323232F, // Depth-stencil texture formats for shadow depth mapping IMAGE_FORMAT_NV_DST16, // IMAGE_FORMAT_NV_DST24, // IMAGE_FORMAT_NV_INTZ, // Vendor-specific depth-stencil texture IMAGE_FORMAT_NV_RAWZ, // formats for shadow depth mapping IMAGE_FORMAT_ATI_DST16, // IMAGE_FORMAT_ATI_DST24, // IMAGE_FORMAT_NV_NULL, // Dummy format which takes no video memory // Compressed normal map formats IMAGE_FORMAT_ATI2N, // One-surface ATI2N / DXN format IMAGE_FORMAT_ATI1N, // Two-surface ATI1N format NUM_IMAGE_FORMATS }; struct vertex_t { vertex_t( ) {} vertex_t( const vec2_t& pos, const vec2_t& coord = vec2_t( 0, 0 ) ) { m_position = pos; m_tex_coord = coord; } void init( float x, float y, const vec2_t& coord = vec2_t( 0, 0 ) ) { m_position = vec2_t( x, y ); m_tex_coord = coord; } vec2_t m_position; vec2_t m_tex_coord; }; using HFont = unsigned long; using VPANEL = unsigned long; class IntRect; class IHTMLEvents; class IHTML; using HCursor = unsigned long; using HTexture = unsigned long; class CharRenderInfo; class IVguiMatInfo; class IImage; class DrawTexturedRectParms_t; class IHTMLChromeController; class ISurface : public IAppSystem { public: void SetCursorAlwaysVisible( bool state ) { return util::get_vfunc< 52, void >( this, state ); } void UnlockCursor( ) { return util::get_vfunc< 61, void >( this ); } };