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.
25 cvar_t gr_aspectratio = { "r_aspectratio", "0", CVAR_NONE };
29 int gr_close_screen(void);
31 void gr_cmd_pixelaspect(int argc, char **argv);
43 // Only do this function once!
44 if (gr_installed == 1)
47 cvar_registervariable(&gr_palette_gamma);
48 cvar_registervariable(&gr_aspectratio);
50 cmd_addcommand("pixelaspect", gr_cmd_pixelaspect, "pixelaspect [n]\n" " set the pixel aspect ratio to <n> (1.0 is square pixels)");
52 // Set flags indicating that this is installed.
61 int gr_close_screen(void)
64 d_free(grd_curscreen);
72 int gr_init_screen(int bitmap_type, int w, int h, int x, int y, int rowsize, ubyte *screen_addr)
77 if (grd_curscreen == NULL)
78 MALLOC( grd_curscreen, grs_screen, 1 );
80 memset(grd_curscreen, 0, sizeof(grs_screen));
82 grd_curscreen->sc_mode = bitmap_type;
83 grd_curscreen->sc_w = w;
84 grd_curscreen->sc_h = h;
85 switch (gr_aspectratio.intval) {
88 grd_curscreen->sc_aspect = fixdiv(grd_curscreen->sc_w * 3, grd_curscreen->sc_h * 4);
91 grd_curscreen->sc_aspect = fixdiv(grd_curscreen->sc_w * 9, grd_curscreen->sc_h * 16);
94 grd_curscreen->sc_aspect = fixdiv(grd_curscreen->sc_w * 10, grd_curscreen->sc_h * 16);
97 grd_curscreen->sc_canvas.cv_bitmap.bm_x = x;
98 grd_curscreen->sc_canvas.cv_bitmap.bm_y = y;
99 grd_curscreen->sc_canvas.cv_bitmap.bm_w = w;
100 grd_curscreen->sc_canvas.cv_bitmap.bm_h = h;
101 grd_curscreen->sc_canvas.cv_bitmap.bm_rowsize = rowsize;
102 grd_curscreen->sc_canvas.cv_bitmap.bm_type = bitmap_type;
103 grd_curscreen->sc_canvas.cv_bitmap.bm_data = (bitmap_type == BM_LINEAR) ? screen_addr : NULL;
105 grd_curscreen->sc_canvas.cv_color = 0;
106 grd_curscreen->sc_canvas.cv_drawmode = 0;
107 grd_curscreen->sc_canvas.cv_font = NULL;
108 grd_curscreen->sc_canvas.cv_font_fg_color = 0;
109 grd_curscreen->sc_canvas.cv_font_bg_color = 0;
111 gr_set_current_canvas( &grd_curscreen->sc_canvas );
117 void gr_cmd_pixelaspect(int argc, char **argv)
119 if (argc < 2 || argc > 2) {
120 cmd_insertf("help %s", argv[0]);
124 grd_curscreen->sc_aspect = fl2f(strtof(argv[1], NULL));