diff options
| author | Joe Ludwig <[email protected]> | 2013-06-26 15:22:04 -0700 |
|---|---|---|
| committer | Joe Ludwig <[email protected]> | 2013-06-26 15:22:04 -0700 |
| commit | 39ed87570bdb2f86969d4be821c94b722dc71179 (patch) | |
| tree | abc53757f75f40c80278e87650ea92808274aa59 /mp/src/public/VGuiMatSurface/IMatSystemSurfaceV5.h | |
| download | source-sdk-2013-39ed87570bdb2f86969d4be821c94b722dc71179.tar.xz source-sdk-2013-39ed87570bdb2f86969d4be821c94b722dc71179.zip | |
First version of the SOurce SDK 2013
Diffstat (limited to 'mp/src/public/VGuiMatSurface/IMatSystemSurfaceV5.h')
| -rw-r--r-- | mp/src/public/VGuiMatSurface/IMatSystemSurfaceV5.h | 88 |
1 files changed, 88 insertions, 0 deletions
diff --git a/mp/src/public/VGuiMatSurface/IMatSystemSurfaceV5.h b/mp/src/public/VGuiMatSurface/IMatSystemSurfaceV5.h new file mode 100644 index 00000000..b4a6d99d --- /dev/null +++ b/mp/src/public/VGuiMatSurface/IMatSystemSurfaceV5.h @@ -0,0 +1,88 @@ +//========= Copyright Valve Corporation, All rights reserved. ============//
+//
+// Purpose:
+//
+//=============================================================================
+
+#ifndef IMATSYSTEMSURFACEV5_H
+#define IMATSYSTEMSURFACEV5_H
+#ifdef _WIN32
+#pragma once
+#endif
+
+
+#include <vgui/VGUI.h>
+#include "vgui/isurfacev30.h"
+
+
+namespace MatSystemSurfaceV5
+{
+ #define MAT_SYSTEM_SURFACE_INTERFACE_VERSION_5 "MatSystemSurface005"
+
+
+ class IMatSystemSurface : public SurfaceV30::ISurface
+ {
+ public:
+ // Hook needed to get input to work.
+ // If the app drives the input (like the engine needs to do for VCR mode),
+ // it can set bLetAppDriveInput to true and call HandleWindowMessage for the Windows messages.
+ virtual void AttachToWindow( void *hwnd, bool bLetAppDriveInput=false ) = 0;
+
+ // If you specified true for bLetAppDriveInput, then call this for each window message that comes in.
+ virtual void HandleWindowMessage( void *hwnd, unsigned int uMsg, unsigned int wParam, long lParam ) = 0;
+
+ // Tells the surface to ignore windows messages
+ virtual void EnableWindowsMessages( bool bEnable ) = 0;
+
+ // Starts, ends 3D painting
+ // NOTE: These methods should only be called from within the paint()
+ // method of a panel.
+ virtual void Begin3DPaint( int iLeft, int iTop, int iRight, int iBottom ) = 0;
+ virtual void End3DPaint() = 0;
+
+ // NOTE: This also should only be called from within the paint()
+ // method of a panel. Use it to disable clipping for the rendering
+ // of this panel.
+ virtual void DisableClipping( bool bDisable ) = 0;
+
+ // Prevents vgui from changing the cursor
+ virtual bool IsCursorLocked() const = 0;
+
+ // Sets the mouse get + set callbacks
+ virtual void SetMouseCallbacks( GetMouseCallback_t getFunc, SetMouseCallback_t setFunc ) = 0;
+
+ // Installs a function to play sounds
+ virtual void InstallPlaySoundFunc( PlaySoundFunc_t soundFunc ) = 0;
+
+ // Some drawing methods that cannot be accomplished under Win32
+ virtual void DrawColoredCircle( int centerx, int centery, float radius, int r, int g, int b, int a ) = 0;
+ virtual int DrawColoredText( vgui::HFont font, int x, int y, int r, int g, int b, int a, PRINTF_FORMAT_STRING char *fmt, ... ) = 0;
+
+ // Draws text with current font at position and wordwrapped to the rect using color values specified
+ virtual void DrawColoredTextRect( vgui::HFont font, int x, int y, int w, int h, int r, int g, int b, int a, PRINTF_FORMAT_STRING char *fmt, ... ) = 0;
+ virtual void DrawTextHeight( vgui::HFont font, int w, int& h, PRINTF_FORMAT_STRING char *fmt, ... ) = 0;
+
+ // Returns the length of the text string in pixels
+ virtual int DrawTextLen( vgui::HFont font, PRINTF_FORMAT_STRING char *fmt, ... ) = 0;
+
+ // Draws a panel in 3D space. Assumes view + projection are already set up
+ // Also assumes the (x,y) coordinates of the panels are defined in 640xN coords
+ // (N isn't necessary 480 because the panel may not be 4x3)
+ // The width + height specified are the size of the panel in world coordinates
+ virtual void DrawPanelIn3DSpace( vgui::VPANEL pRootPanel, const VMatrix &panelCenterToWorld, int nPixelWidth, int nPixelHeight, float flWorldWidth, float flWorldHeight ) = 0;
+
+ // Binds a material to a surface texture ID
+ virtual void DrawSetTextureMaterial( int id, IMaterial *pMaterial ) = 0;
+ };
+
+}
+
+//-----------------------------------------------------------------------------
+// FIXME: This works around using scoped interfaces w/ EXPOSE_SINGLE_INTERFACE
+//-----------------------------------------------------------------------------
+class IMatSystemSurfaceV5 : public MatSystemSurfaceV5::IMatSystemSurface
+{
+public:
+};
+
+#endif // IMATSYSTEMSURFACEV5_H
|