mirror of
https://github.com/nillerusr/source-engine.git
synced 2026-08-18 06:21:55 +00:00
1
This commit is contained in:
@@ -0,0 +1,171 @@
|
||||
//========= Copyright Valve Corporation, All rights reserved. ============//
|
||||
//
|
||||
// Purpose:
|
||||
//
|
||||
// $Workfile: $
|
||||
// $Date: $
|
||||
//
|
||||
//-----------------------------------------------------------------------------
|
||||
// $Log: $
|
||||
//
|
||||
// $NoKeywords: $
|
||||
//=============================================================================//
|
||||
|
||||
#ifndef GLAPP_H
|
||||
#define GLAPP_H
|
||||
#pragma once
|
||||
|
||||
|
||||
class CSysModule;
|
||||
|
||||
|
||||
// Mouse button identifiers.
|
||||
#define MSA_BUTTON_LEFT 0
|
||||
#define MSA_BUTTON_RIGHT 1
|
||||
|
||||
|
||||
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();
|
||||
void QuitNextFrame();
|
||||
|
||||
// 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, ...);
|
||||
|
||||
// Make the matsysapp window the top window.
|
||||
void MakeWindowTopmost();
|
||||
|
||||
void MouseCapture();
|
||||
void MouseRelease();
|
||||
|
||||
|
||||
private:
|
||||
|
||||
bool InitMaterialSystem();
|
||||
void Clear();
|
||||
|
||||
bool CreateMainWindow(int width, int height, int bpp, bool fullscreen);
|
||||
|
||||
void RenderScene();
|
||||
|
||||
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;
|
||||
char *m_szCmdLine;
|
||||
int m_argc;
|
||||
char **m_argv;
|
||||
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;
|
||||
};
|
||||
|
||||
|
||||
// ---------------------------------------------------------------------------------------- //
|
||||
// The app needs to define these symbols.
|
||||
// ---------------------------------------------------------------------------------------- //
|
||||
// g_szAppName[] -- char array applicaton name
|
||||
// void AppInit( void ) -- Called at init time
|
||||
// void AppRender( void ) -- Called each frame (as often as possible)
|
||||
// void AppExit( void ) -- Called to shut down
|
||||
// void AppKey( int key, int down ); -- called on each key up/down
|
||||
// void AppChar( int key ); -- key was pressed & released
|
||||
extern "C" char g_szAppName[];
|
||||
extern "C" void AppInit( void );
|
||||
extern "C" void AppRender( float frametime, float mouseDeltaX, float mouseDeltaY );
|
||||
extern "C" void AppExit( void );
|
||||
extern "C" void AppKey( int key, int down );
|
||||
extern "C" void AppChar( int key );
|
||||
extern bool g_bCaptureOnFocus; // The app needs to define this to control how matsysapp handles mouse cursor hiding.
|
||||
// If it's set to true, the mouse is captured and hidden when the app gets focus.
|
||||
// If false, the mouse is only captured and hidden while the left button is down.
|
||||
|
||||
|
||||
// ---------------------------------------------------------------------------------------- //
|
||||
// Global functions (MSA stands for Material System App)..
|
||||
// ---------------------------------------------------------------------------------------- //
|
||||
|
||||
// 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 MSA_IsKeyDown(char key);
|
||||
|
||||
// Sleep for the specified number of milliseconds... passing 0 does nothing.
|
||||
void MSA_Sleep(unsigned long countMS);
|
||||
|
||||
// Returns true if the specified button is down.
|
||||
// button should be one of the MSA_BUTTON identifiers.
|
||||
bool MSA_IsMouseButtonDown( int button );
|
||||
|
||||
|
||||
extern MaterialSystemApp g_MaterialSystemApp;
|
||||
|
||||
|
||||
extern unsigned int g_Time;
|
||||
|
||||
|
||||
#endif // GLAPP_H
|
||||
Reference in New Issue
Block a user