/* =========================================================================== Copyright (C) 1999-2005 Id Software, Inc. This file is part of Quake III Arena source code. Quake III Arena source code is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. Quake III Arena source code is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with Quake III Arena source code; if not, write to the Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA =========================================================================== */ // win_local.h: Win32-specific Quake3 header file #include "windows.h" void WIN_QueEvent( int time, sysEventType_t type, int value, int value2, int ptrLength, void *ptr ); // "early console" window management void WIN_CreateConsole(); void WIN_DestroyConsole(); const char* WIN_ConsoleInput(); void WIN_AppendConsoleText( const char *msg ); // input void IN_Activate( qbool active ); qbool IN_ProcessMessage( UINT msg, WPARAM wParam, LPARAM lParam ); // returns true if the event was handled void IN_Frame(); // misc. Windows-specific stuff void WIN_UpdateMonitorIndexFromCvar(); void WIN_UpdateMonitorIndexFromMainWindow(); void WIN_UpdateResolution( int width, int height ); void WIN_RegisterLastValidHotKey(); void WIN_UnregisterHotKey(); void WIN_SetGameDisplaySettings(); void WIN_SetDesktopDisplaySettings(); // sound void WIN_S_Mute( qbool mute ); LRESULT CALLBACK MainWndProc( HWND hWnd, UINT uMsg, WPARAM wParam, LPARAM lParam ); // crash handling LONG CALLBACK WIN_HandleException( EXCEPTION_POINTERS* ep ); void WIN_HandleExit(); void WIN_EndTimePeriod(); // opening OpenGL and loading core functions extern "C" { qbool WIN_LoadGL( const char* dllName ); void WIN_UnloadGL(); } #define MAX_MONITOR_COUNT 16 typedef struct { HWND hWnd; HINSTANCE hInstance; qbool activeApp; // when we get a windows message, we store the time off // using Sys_Milliseconds int sysMsgTime; RECT monitorRects[MAX_MONITOR_COUNT]; HMONITOR hMonitors[MAX_MONITOR_COUNT]; int monitor; // 0-based index of the monitor currently used for display int primaryMonitor; // 0-based index of the primary monitor int monitorCount; int minimizeHotKeyId; qbool minimizeHotKeyValid; UINT minimizeHotKeyKey; UINT minimizeHotKeyMods; qbool inputInitialized; qbool forceUnmute; // overrides s_autoMute } WinVars_t; extern WinVars_t g_wv;