1 /*
2 THE COMPUTER CODE CONTAINED HEREIN IS THE SOLE PROPERTY OF PARALLAX
3 SOFTWARE CORPORATION ("PARALLAX").  PARALLAX, IN DISTRIBUTING THE CODE TO
4 END-USERS, AND SUBJECT TO ALL OF THE TERMS AND CONDITIONS HEREIN, GRANTS A
5 ROYALTY-FREE, PERPETUAL LICENSE TO SUCH END-USERS FOR USE BY SUCH END-USERS
6 IN USING, DISPLAYING,  AND CREATING DERIVATIVE WORKS THEREOF, SO LONG AS
7 SUCH USE, DISPLAY OR CREATION IS FOR NON-COMMERCIAL, ROYALTY OR REVENUE
8 FREE PURPOSES.  IN NO EVENT SHALL THE END-USER USE THE COMPUTER CODE
9 CONTAINED HEREIN FOR REVENUE-BEARING PURPOSES.  THE END-USER UNDERSTANDS
10 AND AGREES TO THE TERMS HEREIN AND ACCEPTS THE SAME BY USE OF THIS FILE.
11 COPYRIGHT 1993-1999 PARALLAX SOFTWARE CORPORATION.  ALL RIGHTS RESERVED.
12 */
13 
14 #ifndef _SCREEN_H
15 #define _SCREEN_H
16 
17 #include "gr.h"
18 
19 //What graphics modes the game & editor open
20 
21 //for Screen_mode variable
22 #define SCREEN_MENU				0	//viewing the menu screen
23 #define SCREEN_GAME				1	//viewing the menu screen
24 #define SCREEN_EDITOR			2	//viewing the editor screen
25 
26 //from editor.c
27 extern grs_canvas *Canv_editor;			//the full on-scrren editor canvas
28 extern grs_canvas *Canv_editor_game;	//the game window on the editor screen
29 
30 //from game.c
31 extern int set_screen_mode(int sm);		// True = editor screen
32 
33 //About the screen
34 extern ubyte			VR_screen_flags;
35 extern ubyte			VR_current_page;
36 extern fix				VR_eye_width;
37 extern int 				VR_eye_switch;
38 
39 //NEWVR (Add a bunch off lines)
40 #define VR_SEPARATION F1_0*7/10
41 #define VR_PIXEL_SHIFT -6
42 #define VR_WHITE_INDEX 255
43 #define VR_BLACK_INDEX 0
44 extern int				VR_eye_offset;
45 extern int 				VR_eye_offset_changed;
46 extern void 			VR_reset_params();
47 extern int				VR_use_reg_code;
48 
49 
50 extern int				VR_screen_mode;
51 extern int				VR_render_mode;
52 extern int				VR_low_res;
53 extern int 				VR_show_hud;
54 extern int				VR_sensitivity;
55 
56 extern grs_canvas		*VR_offscreen_buffer;		// The offscreen data buffer
57 extern grs_canvas		VR_render_buffer[2];			//  Two offscreen buffers for left/right eyes.
58 extern grs_canvas		VR_render_sub_buffer[2];	//  Two sub buffers for left/right eyes.
59 extern grs_canvas		VR_screen_pages[2];			//  Two pages of VRAM if paging is available
60 extern grs_canvas		VR_screen_sub_pages[2];		//  Two sub pages of VRAM if paging is available
61 
62 //values for VR_screen_flags
63 
64 #define VRF_USE_PAGING				1		//means page flips
65 #define VRF_SWITCH_EYES				2
66 #define VRF_COMPATIBLE_MENUS		4
67 #define VRF_ALLOW_COCKPIT			8
68 
69 //values for VR_render_mode
70 
71 #define VR_NONE			0	//viewing the game screen
72 #define VR_AREA_DET		1	//viewing with the stereo area determined method
73 #define VR_INTERLACED	2	//viewing with the stereo interlaced method
74 
75 void game_init_render_buffers(int screen_mode, int render_max_w, int render_max_h, int render_method, int flags );
76 void game_init_render_sub_buffers(int x, int y, int w, int h);
77 
78 void set_display_mode(int mode);
79 extern int Default_display_mode;		//cannot be -1
80 //values are:
81 // -1: some special VR mode.
82 //  0: 320 x 200
83 //  1: 640 x 480
84 //  2: 320 x 400
85 //  3: 640 x 400
86 //  4: 800 x 600
87 //  5: 102 x 768
88 
89 //called to get the screen in a mode compatible with popup menus.
90 //if we can't have popups over the game screen, switch to menu mode.
91 void set_popup_screen(void);
92 
93 #endif
94