summaryrefslogtreecommitdiff
path: root/utils/hlfaceposer/matsyswin.h
diff options
context:
space:
mode:
Diffstat (limited to 'utils/hlfaceposer/matsyswin.h')
-rw-r--r--utils/hlfaceposer/matsyswin.h210
1 files changed, 210 insertions, 0 deletions
diff --git a/utils/hlfaceposer/matsyswin.h b/utils/hlfaceposer/matsyswin.h
new file mode 100644
index 0000000..3985168
--- /dev/null
+++ b/utils/hlfaceposer/matsyswin.h
@@ -0,0 +1,210 @@
+//========= Copyright Valve Corporation, All rights reserved. ============//
+//
+// Purpose:
+//
+// $Workfile: $
+// $Date: $
+//
+//-----------------------------------------------------------------------------
+// $Log: $
+//
+// $NoKeywords: $
+//=============================================================================//
+
+#ifndef MATSYSWIN_H
+#define MATSYSWIN_H
+#pragma once
+
+
+#include <mxtk/mxMatSysWindow.h>
+#include "materialsystem/imaterialsystem.h"
+#include "faceposertoolwindow.h"
+#include "interface.h"
+
+
+class MatSysWindow : public mxMatSysWindow, public IFacePoserToolWindow
+{
+ typedef mxMatSysWindow BaseClass;
+public:
+
+ // CREATORS
+ MatSysWindow( mxWindow *parent, int x, int y, int w, int h, const char *label, int style );
+ ~MatSysWindow( );
+
+ // MANIPULATORS
+ virtual int handleEvent( mxEvent *event );
+ virtual void draw( );
+
+ virtual void redraw();
+
+ void EnableStickySnapshotMode( void );
+ void DisableStickySnapshotMode( void );
+ void PushSnapshotMode( int nSnapShotSize );
+ void PopSnapshotMode( void );
+
+ void TakeSnapshotRect( const char *pFilename, int x, int y, int w, int h );
+ bool IsSuppressingResize( void );
+ void SuppressResize( bool suppress );
+
+ void TakeScreenShot(const char *filename);
+
+ void Frame( void );
+ void DrawFrame( void );
+
+ void SuppressBufferSwap( bool bSuppress );
+
+ void *m_hWnd;
+
+private:
+ bool m_bSuppressResize;
+ bool m_bSuppressSwap;
+
+ // stack and sticky window mode
+ int m_stickyDepth;
+ bool m_bIsSticky;
+ int m_snapshotDepth;
+ WINDOWPLACEMENT m_wp;
+ HCURSOR m_hPrevCursor;
+};
+
+extern MatSysWindow *g_pMatSysWindow;
+
+extern IMaterialSystem *g_pMaterialSystem;
+extern IMaterial *g_materialBackground;
+extern IMaterial *g_materialWireframe;
+extern IMaterial *g_materialWireframe;
+extern IMaterial *g_materialWireframeVertexColor;
+extern IMaterial *g_materialWireframeVertexColorNoCull;
+extern IMaterial *g_materialDebugCopyBaseTexture;
+extern IMaterial *g_materialFlatshaded;
+extern IMaterial *g_materialSmoothshaded;
+extern IMaterial *g_materialBones;
+extern IMaterial *g_materialLines;
+extern IMaterial *g_materialFloor;
+
+
+#if 0
+
+typedef struct
+{
+ int width;
+ int height;
+ int bpp;
+ int flags;
+ int frequency;
+} screen_res_t;
+
+
+
+typedef struct
+{
+ int width;
+ int height;
+ int bpp;
+} devinfo_t;
+
+
+
+class MaterialSystemApp
+{
+public:
+
+ MaterialSystemApp();
+ ~MaterialSystemApp();
+
+ void Term();
+
+ // Post a message to shutdown the app.
+ void AppShutdown();
+
+ int WinMain(void *hInstance, void *hPrevInstance, char *szCmdLine, int iCmdShow);
+ long WndProc(void *hwnd, long iMsg, long wParam, long lParam);
+
+ int FindNumParameter(const char *s, int defaultVal=-1);
+ bool FindParameter(const char *s);
+ const char* FindParameterArg(const char *s);
+
+ void SetTitleText(PRINTF_FORMAT_STRING const char *fmt, ...);
+
+
+private:
+
+ bool InitMaterialSystem();
+ void Clear();
+
+ bool CreateMainWindow(int width, int height, int bpp, bool fullscreen);
+
+ void RenderScene();
+
+ void MouseCapture();
+ void MouseRelease();
+
+ void GetParameters();
+
+
+public:
+ IMaterialSystem *m_pMaterialSystem;
+ void *m_hMaterialSystemInst;
+
+ devinfo_t m_DevInfo;
+
+ void *m_hInstance;
+ int m_iCmdShow;
+ void *m_hWnd;
+ void *m_hDC;
+ bool m_bActive;
+ bool m_bFullScreen;
+ int m_width;
+ int m_height;
+ int m_centerx; // for mouse offset calculations
+ int m_centery;
+ int m_bpp;
+ BOOL m_bChangeBPP;
+ BOOL m_bAllowSoft;
+ BOOL m_bPaused;
+ int m_glnWidth;
+ int m_glnHeight;
+ float m_gldAspect;
+ float m_NearClip;
+ float m_FarClip;
+ float m_fov;
+
+ screen_res_t *m_pResolutions;
+ int m_iResCount;
+
+ int m_iVidMode;
+};
+
+
+// ---------------------------------------------------------------------------------------- //
+// Global functions
+// ---------------------------------------------------------------------------------------- //
+
+// Show an error dialog and quit.
+bool Sys_Error(PRINTF_FORMAT_STRING const char *pMsg, ...);
+
+// Print to the trace window.
+void con_Printf(PRINTF_FORMAT_STRING const char *pMsg, ...);
+
+// Returns true if the key is down.
+bool IsKeyDown(char key);
+
+
+
+extern MaterialSystemApp g_MaterialSystemApp;
+
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+extern unsigned int g_Time;
+
+#ifdef __cplusplus
+};
+#endif
+
+
+#endif
+
+#endif // GLAPP_H