diff options
| author | boris <wzn@moneybot.cc> | 2018-11-28 16:00:02 +1300 |
|---|---|---|
| committer | boris <wzn@moneybot.cc> | 2018-11-28 16:00:02 +1300 |
| commit | 3d412a4b30a9f7c7f51ea6562e694315948bd3da (patch) | |
| tree | 26d67dfd1f3e5fd12903ad13e85d0cb8bcf8f21c /internal_rewrite/ISurface.hpp | |
| parent | e4729e4393d90271a3814c7a79950a660c48325a (diff) | |
cleaned up
in short, the cheat and loader are now separate solutions. unused stuff was moved into the legacy solution in case anyone wants to compile it or whatever.
i can change this back if you want to. also, i configured the loader to compile in x64, and have separate build types for linux and win64
Diffstat (limited to 'internal_rewrite/ISurface.hpp')
| -rw-r--r-- | internal_rewrite/ISurface.hpp | 421 |
1 files changed, 0 insertions, 421 deletions
diff --git a/internal_rewrite/ISurface.hpp b/internal_rewrite/ISurface.hpp deleted file mode 100644 index 2845eaa..0000000 --- a/internal_rewrite/ISurface.hpp +++ /dev/null @@ -1,421 +0,0 @@ -#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: - // frame - virtual void RunFrame( ) = 0; - - // hierarchy root - virtual VPANEL GetEmbeddedPanel( ) = 0; - virtual void SetEmbeddedPanel( VPANEL pPanel ) = 0; - - // drawing context - virtual void PushMakeCurrent( VPANEL panel, bool useInsets ) = 0; - virtual void PopMakeCurrent( VPANEL panel ) = 0; //13 - - // rendering functions - virtual void DrawSetColor( ) = 0; //15 - virtual void DrawSetColor( clr_t col ) = 0; //14 - - virtual void DrawFilledRect( int x0, int y0, int x1, int y1 ) = 0; //16 - virtual void DrawFilledRectArray( IntRect *pRects, int numRects ) = 0; - virtual void DrawOutlinedRect( int x0, int y0, int x1, int y1 ) = 0; - - virtual void DrawLine( int x0, int y0, int x1, int y1 ) = 0; - virtual void DrawPolyLine( int *px, int *py, int numPoints ) = 0; - - virtual void DrawSetApparentDepth( float flDepth ) = 0; - virtual void DrawClearApparentDepth( ) = 0; - - virtual void DrawSetTextFont( HFont font ) = 0; - virtual void DrawSetTextColor( ) = 0; //25 - virtual void DrawSetTextColor( clr_t col ) = 0; //24 - virtual void DrawSetTextPos( int x, int y ) = 0; //26 - virtual void DrawGetTextPos( int& x, int& y ) = 0; - virtual void DrawPrintText( const wchar_t *text, int textLen, FontDrawType_t drawType = FONT_DRAW_DEFAULT ) = 0; - virtual void DrawUnicodeChar( wchar_t wch, FontDrawType_t drawType = FONT_DRAW_DEFAULT ) = 0; - - virtual void DrawFlushText( ) = 0; // flushes any buffered text (for rendering optimizations) - virtual IHTML *CreateHTMLWindow( IHTMLEvents *events, VPANEL context ) = 0; - virtual void PaintHTMLWindow( IHTML *htmlwin ) = 0; - virtual void DeleteHTMLWindow( IHTML *htmlwin ) = 0; - - enum ETextureFormat - { - eTextureFormat_RGBA, - eTextureFormat_BGRA, - eTextureFormat_BGRA_Opaque, // bgra format but alpha is always 255, CEF does this, we can use this fact for better perf on win32 gdi - }; - - virtual int DrawGetTextureId( char const *filename ) = 0; - virtual bool DrawGetTextureFile( int id, char *filename, int maxlen ) = 0; - virtual void DrawSetTextureFile( int id, const char *filename, int hardwareFilter, bool forceReload ) = 0; - virtual void DrawSetTextureRGBA( int id, const unsigned char *rgba, int wide, int tall ) = 0; - virtual void DrawSetTexture( int id ) = 0; //38 - virtual void DrawGetTextureSize( int id, int &wide, int &tall ) = 0; - virtual void DrawTexturedRect( int x0, int y0, int x1, int y1 ) = 0; - virtual bool IsTextureIDValid( int id ) = 0; - virtual bool DeleteTextureByID( int id ) = 0; - - virtual int CreateNewTextureID( bool procedural = false ) = 0; //43 - - virtual void GetScreenSize( int &wide, int &tall ) = 0; - virtual void SetAsTopMost( VPANEL panel, bool state ) = 0; - virtual void BringToFront( VPANEL panel ) = 0; - virtual void SetForegroundWindow( VPANEL panel ) = 0; - virtual void SetPanelVisible( VPANEL panel, bool state ) = 0; - virtual void SetMinimized( VPANEL panel, bool state ) = 0; - virtual bool IsMinimized( VPANEL panel ) = 0; - virtual void FlashWindow( VPANEL panel, bool state ) = 0; - virtual void SetTitle( VPANEL panel, const wchar_t *title ) = 0; - virtual void SetAsToolBar( VPANEL panel, bool state ) = 0; // removes the window's task bar entry (for context menu's, etc.) - - // windows stuff - virtual void CreatePopup( VPANEL panel, bool minimised, bool showTaskbarIcon = true, bool disabled = false, bool mouseInput = true, bool kbInput = true ) = 0; - virtual void SwapBuffers( VPANEL panel ) = 0; - virtual void Invalidate( VPANEL panel ) = 0; - virtual void SetCursor( HCursor cursor ) = 0; - virtual bool IsCursorVisible( ) = 0; - virtual void ApplyChanges( ) = 0; - virtual bool IsWithin( int x, int y ) = 0; - virtual bool HasFocus( ) = 0; - - // returns true if the surface supports minimize & maximize capabilities - enum SurfaceFeature_e - { - ANTIALIASED_FONTS = 1, - DROPSHADOW_FONTS = 2, - ESCAPE_KEY = 3, - OPENING_NEW_HTML_WINDOWS = 4, - FRAME_MINIMIZE_MAXIMIZE = 5, - OUTLINE_FONTS = 6, - DIRECT_HWND_RENDER = 7, - }; - virtual bool SupportsFeature( SurfaceFeature_e feature ) = 0; - - // restricts what gets drawn to one panel and it's children - // currently only works in the game - virtual void RestrictPaintToSinglePanel( VPANEL panel ) = 0; - - // these two functions obselete, use IInput::SetAppModalSurface() instead - virtual void SetModalPanel( VPANEL ) = 0; - virtual VPANEL GetModalPanel( ) = 0; - - virtual void UnlockCursor( ) = 0; - virtual void LockCursor( ) = 0; - virtual void SetTranslateExtendedKeys( bool state ) = 0; - virtual VPANEL GetTopmostPopup( ) = 0; - - // engine-only focus handling (replacing WM_FOCUS windows handling) - virtual void SetTopLevelFocus( VPANEL panel ) = 0; - - // fonts - // creates an empty handle to a vgui font. windows fonts can be add to this via SetFontGlyphSet(). - virtual HFont CreateFont( ) = 0; //71 - - // adds to the font - enum EFontFlags - { - 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, // custom generated font - never fall back to asian compatibility mode - FONTFLAG_BITMAP = 0x800, // compiled bitmap font - no fallbacks - }; - - virtual bool SetFontGlyphSet( HFont font, const char *windowsFontName, int tall, int weight, int blur, int scanlines, int flags, int nRangeMin = 0, int nRangeMax = 0 ) = 0; - - // adds a custom font file (only supports true type font files (.ttf) for now) - virtual bool AddCustomFontFile( const char *fontName, const char *fontFileName ) = 0; - - // returns the details about the font - virtual int GetFontTall( HFont font ) = 0; - virtual int GetFontAscent( HFont font, wchar_t wch ) = 0; - virtual bool IsFontAdditive( HFont font ) = 0; - virtual void GetCharABCwide( HFont font, int ch, int &a, int &b, int &c ) = 0; - virtual int GetCharacterWidth( HFont font, int ch ) = 0; - virtual void GetTextSize( HFont font, const wchar_t *text, int &wide, int &tall ) = 0; - - // notify icons?!? - virtual VPANEL GetNotifyPanel( ) = 0; - virtual void SetNotifyIcon( VPANEL context, HTexture icon, VPANEL panelToReceiveMessages, const char *text ) = 0; - - // plays a sound - virtual void PlaySound( const char *fileName ) = 0; //82 - - //!! these functions should not be accessed directly, but only through other vgui items - //!! need to move these to seperate interface - virtual int GetPopupCount( ) = 0; - virtual VPANEL GetPopup( int index ) = 0; - virtual bool ShouldPaintChildPanel( VPANEL childPanel ) = 0; - virtual bool RecreateContext( VPANEL panel ) = 0; - virtual void AddPanel( VPANEL panel ) = 0; - virtual void ReleasePanel( VPANEL panel ) = 0; - virtual void MovePopupToFront( VPANEL panel ) = 0; - virtual void MovePopupToBack( VPANEL panel ) = 0; - - virtual void SolveTraverse( VPANEL panel, bool forceApplySchemeSettings = false ) = 0; - virtual void PaintTraverse( VPANEL panel ) = 0; - - virtual void EnableMouseCapture( VPANEL panel, bool state ) = 0; - - // returns the size of the workspace - virtual void GetWorkspaceBounds( int &x, int &y, int &wide, int &tall ) = 0; - - // gets the absolute coordinates of the screen (in windows space) - virtual void GetAbsoluteWindowBounds( int &x, int &y, int &wide, int &tall ) = 0; - - // gets the base resolution used in proportional mode - virtual void GetProportionalBase( int &width, int &height ) = 0; - - virtual void CalculateMouseVisible( ) = 0; - virtual bool NeedKBInput( ) = 0; - - virtual bool HasCursorPosFunctions( ) = 0; - virtual void SurfaceGetCursorPos( int &x, int &y ) = 0; - virtual void SurfaceSetCursorPos( int x, int y ) = 0; - - // SRC only functions!!! - virtual void DrawTexturedLine( const vertex_t &a, const vertex_t &b ) = 0; - virtual void DrawOutlinedCircle( int x, int y, int radius, int segments ) = 0; - virtual void DrawTexturedPolyLine( const vertex_t *p, int n ) = 0; // (Note: this connects the first and last points). - virtual void DrawTexturedSubRect( int x0, int y0, int x1, int y1, float texs0, float text0, float texs1, float text1 ) = 0; - virtual void DrawTexturedPolygon( int n, vertex_t *pVertice, bool bClipVertices = true ) = 0; //106 - virtual const wchar_t* GetTitle( VPANEL panel ) = 0; - virtual bool IsCursorLocked( ) const = 0; - virtual void SetWorkspaceInsets( int left, int top, int right, int bottom ) = 0; - - // squarish comic book word bubble with pointer, rect params specify the space inside the bubble - virtual void DrawWordBubble( int x0, int y0, int x1, int y1, int nBorderThickness, clr_t rgbaBackground, clr_t rgbaBorder, - bool bPointer = false, int nPointerX = 0, int nPointerY = 0, int nPointerBaseThickness = 16 ) = 0; - - - // Lower level char drawing code, call DrawGet then pass in info to DrawRender - virtual bool DrawGetUnicodeCharRenderInfo( wchar_t ch, CharRenderInfo& info ) = 0; - virtual void DrawRenderCharFromInfo( const CharRenderInfo& info ) = 0; - - // global alpha setting functions - // affect all subsequent draw calls - shouldn't normally be used directly, only in Panel::PaintTraverse() - virtual void DrawSetAlphaMultiplier( float alpha /* [0..1] */ ) = 0; - virtual float DrawGetAlphaMultiplier( ) = 0; - - // web browser - virtual void SetAllowHTMLJavaScript( bool state ) = 0; - - // video mode changing - virtual void OnScreenSizeChanged( int nOldWidth, int nOldHeight ) = 0; - - virtual HCursor CreateCursorFromFile( char const *curOrAniFile, char const *pPathID = nullptr ) = 0; - - // create IVguiMatInfo object ( IMaterial wrapper in VguiMatSurface, NULL in CWin32Surface ) - virtual IVguiMatInfo* DrawGetTextureMatInfoFactory( int id ) = 0; - - virtual void PaintTraverseEx( VPANEL panel, bool paintPopups = false ) = 0; - - virtual float GetZPos( ) const = 0; - - // From the Xbox - virtual void SetPanelForInput( VPANEL vpanel ) = 0; - virtual void DrawFilledRectFastFade( int x0, int y0, int x1, int y1, int fadeStartPt, int fadeEndPt, unsigned int alpha0, unsigned int alpha1, bool bHorizontal ) = 0; - virtual void DrawFilledRectFade( int x0, int y0, int x1, int y1, unsigned int alpha0, unsigned int alpha1, bool bHorizontal ) = 0; //123 - - virtual void DrawSetTextureRGBAEx( int id, const unsigned char *rgba, int wide, int tall, ImageFormat imageFormat ) = 0; - virtual void DrawSetTextScale( float sx, float sy ) = 0; - virtual bool SetBitmapFontGlyphSet( HFont font, const char *windowsFontName, float scalex, float scaley, int flags ) = 0; - // adds a bitmap font file - virtual bool AddBitmapFontFile( const char *fontFileName ) = 0; - // sets a symbol for the bitmap font - virtual void SetBitmapFontName( const char *pName, const char *pFontFilename ) = 0; - // gets the bitmap font filename - virtual const char* GetBitmapFontName( const char *pName ) = 0; - virtual void ClearTemporaryFontCache( ) = 0; - - virtual IImage* GetIconImageForFullPath( char const *pFullPath ) = 0; - virtual void DrawUnicodeString( const wchar_t *pwString, FontDrawType_t drawType = FONT_DRAW_DEFAULT ) = 0; - virtual void PrecacheFontCharacters( HFont font, const wchar_t *pCharacters ) = 0; - // Console-only. Get the string to use for the current video mode for layout files. - //virtual const char *GetResolutionKey( void ) const = 0; - - virtual const char *GetFontName( HFont font ) = 0; - //virtual const char *GetFontFamilyName( HFont font ) = 0; - - virtual bool ForceScreenSizeOverride( bool bState, int wide, int tall ) = 0; - // LocalToScreen, ParentLocalToScreen fixups for explicit PaintTraverse calls on Panels not at 0, 0 position - virtual bool ForceScreenPosOffset( bool bState, int x, int y ) = 0; - virtual void OffsetAbsPos( int &x, int &y ) = 0; - - virtual void SetAbsPosForContext( int, int, int ) = 0; - virtual void GetAbsPosForContext( int, int &, int & ) = 0; - - // Causes fonts to get reloaded, etc. - virtual void ResetFontCaches( ) = 0; - - virtual bool IsScreenSizeOverrideActive( ) = 0; - virtual bool IsScreenPosOverrideActive( ) = 0; - - virtual void DestroyTextureID( int id ) = 0; - - virtual int GetTextureNumFrames( int id ) = 0; - virtual void DrawSetTextureFrame( int id, int nFrame, unsigned int *pFrameCache ) = 0; - - virtual void GetClipRect( int &x0, int &y0, int &x1, int &y1 ) = 0; - virtual void SetClipRect( int x0, int y0, int x1, int y1 ) = 0; - - virtual void DrawTexturedRectEx( DrawTexturedRectParms_t *pDrawParms ) = 0; - - virtual void GetKernedCharWidth( HFont font, wchar_t ch, wchar_t chBefore, wchar_t chAfter, float &wide, float &abcA ) = 0; - - virtual void DrawUpdateRegionTextureRGBA( int nTextureID, int x, int y, const unsigned char *pchData, int wide, int tall, ImageFormat imageFormat ) = 0; - virtual bool BHTMLWindowNeedsPaint( IHTML *htmlwin ) = 0; - - virtual void DrawSetTextureRGBALinear( int, unsigned char const*, int, int ) = 0; - - virtual const char *GetWebkitHTMLUserAgentString( ) = 0; - - virtual IHTMLChromeController *Deprecated_AccessChromeHTMLController( ) = 0; - - /* - 154 CMatSystemSurface::SetAppDrivesInput(bool) - 155 CMatSystemSurface::EnableWindowsMessages(bool) - 156 CMatSystemSurface::Begin3DPaint(int,int,int,int,bool) - 157 CMatSystemSurface::End3DPaint(bool) - 158 CMatSystemSurface::DisableClipping(bool) - 159 CMatSystemSurface::SetMouseCallbacks(void (*)(int &,int &),void (*)(int,int)) - 160 CMatSystemSurface::InstallPlaySoundFunc(void (*)(char const*)) - 161 CMatSystemSurface::DrawColoredCircle(int,int,float,int,int,int,int) - 162 CMatSystemSurface::DrawColoredText(unsigned long,int,int,int,int,int,int,char const*,...) - 163 CMatSystemSurface::DrawColoredTextRect(unsigned long,int,int,int,int,int,int,int,int,char const*,...) - 164 CMatSystemSurface::DrawTextHeight(unsigned long,int,int &,char *,...) - 165 CMatSystemSurface::DrawTextLen(unsigned long,char const*,...) - 166 CMatSystemSurface::DrawPanelIn3DSpace(unsigned long long,VMatrix const&,int,int,float,float) - 167 CMatSystemSurface::DrawSetTextureMaterial(int,IMaterial *) - 168 CMatSystemSurface::HandleInputEvent(InputEvent_t const&) - 169 CMatSystemSurface::Set3DPaintTempRenderTarget(char const*) - 170 CMatSystemSurface::Reset3DPaintTempRenderTarget(void) - 171 CMatSystemSurface::DrawGetTextureMaterial(int) - 172 CMatSystemSurface::SetInputContext(InputContextHandle_t__ *) - 173 CMatSystemSurface::DrawSetSubTextureRGBA(int,int,int,unsigned char const*,int,int) - 174 CMatSystemSurface::DrawTexturedSubRectGradient(int,int,int,int,float,float,float,float,Color,Color,bool) - 175 CMatSystemSurface::~CMatSystemSurface() - 176 CMatSystemSurface::~CMatSystemSurface() - 177 CMatSystemSurface::SupportsFontFeature(FontFeature_t) - 178 CMatSystemSurface::InEngine(void) - 179 CMatSystemSurface::IsInThink(unsigned long long) - 180 CMatSystemSurface::SetLanguage(char const*) - 181 CMatSystemSurface::GetLanguage(void) - 182 CMatSystemSurface::ComputeTextWidth(wchar_t const*) - */ -};
\ No newline at end of file |
