]> icculus.org git repositories - taylor/freespace2.git/blob - include/osapi.h
MacOS X updates (Ryan)
[taylor/freespace2.git] / include / osapi.h
1 /*
2  * Copyright (C) Volition, Inc. 1999.  All rights reserved.
3  *
4  * All source code herein is the property of Volition, Inc. You may not sell 
5  * or otherwise commercially exploit the source or things you created based on
6  * the source.
7  */
8
9 #ifndef _OSAPI_H
10 #define _OSAPI_H
11
12 #include <stdlib.h>
13
14 #include "pstypes.h"
15
16 // --------------------------------------------------------------------------------------------------
17 // OSAPI DEFINES/VARS
18 //
19
20 // set if running under MsDev - done after os_init(...) has returned
21 extern int Os_debugger_running;
22
23 // game-wide
24 // #define THREADED
25
26 #ifdef THREADED
27         #define ENTER_CRITICAL_SECTION(csc)             do { EnterCriticalSection(csc); } while(0);
28         #define LEAVE_CRITICAL_SECTION(csc)             do { LeaveCriticalSection(csc); } while(0);
29 #else
30         #define ENTER_CRITICAL_SECTION(csc)             do { } while(0);
31         #define LEAVE_CRITICAL_SECTION(csc)             do { } while(0);
32 #endif
33
34 // --------------------------------------------------------------------------------------------------
35 // OSAPI FUNCTIONS
36 //
37
38 // initialization/shutdown functions -----------------------------------------------
39
40 // If app_name is NULL or ommited, then TITLE is used
41 // for the app name, which is where registry keys are stored.
42 void os_init(char * wclass, char * title, char *app_name=NULL, char *version_string=NULL );
43
44 // set the main window title
45 void os_set_title( char * title );
46
47 // call at program end
48 void os_cleanup();
49
50
51 // window management ---------------------------------------------------------------
52
53 // toggle window size between full screen and windowed
54 void os_toggle_fullscreen();
55
56 // Returns 1 if app is not the foreground app.
57 int os_foreground();
58
59 // Returns the handle to the main window
60 uint os_get_window();
61
62
63 // process management --------------------------------------------------------------
64
65 // call to process windows messages. only does something in non THREADED mode
66 void os_poll();
67
68 // Sleeps for n milliseconds or until app becomes active.
69 void os_sleep(int ms);
70
71 // Used to stop message processing
72 void os_suspend();
73
74 // resume message processing
75 void os_resume();
76
77 #endif
78