]> icculus.org git repositories - btb/d2x.git/blob - 3d/setup.c
remove rcs tags
[btb/d2x.git] / 3d / setup.c
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-1998 PARALLAX SOFTWARE CORPORATION.  ALL RIGHTS RESERVED.
12 */
13 /*
14  * 
15  * Setup for 3d library
16  * 
17  */
18
19 #ifdef HAVE_CONFIG_H
20 #include <conf.h>
21 #endif
22
23 #include <stdlib.h>
24
25 #include "error.h"
26
27 #include "3d.h"
28 #include "globvars.h"
29 #include "clipper.h"
30 //#include "div0.h"
31
32 #ifdef OGL
33 #include "ogl_init.h"
34 #else
35 #include "texmap.h"  // for init_interface_vars_to_assembler()
36 #endif
37
38 //initialize the 3d system
39 void g3_init(void)
40 {
41 //      div0_init(DM_ERROR);
42         atexit(g3_close);
43 }
44
45 //close down the 3d system
46 void g3_close(void) {}
47
48 //start the frame
49 void g3_start_frame(void)
50 {
51         fix s;
52
53         //set int w,h & fixed-point w,h/2
54         Canv_w2 = (Canvas_width  = grd_curcanv->cv_bitmap.bm_w)<<15;
55         Canv_h2 = (Canvas_height = grd_curcanv->cv_bitmap.bm_h)<<15;
56 #ifdef __powerc
57         fCanv_w2 = f2fl((Canvas_width  = grd_curcanv->cv_bitmap.bm_w)<<15);
58         fCanv_h2 = f2fl((Canvas_height = grd_curcanv->cv_bitmap.bm_h)<<15);
59 #endif
60
61         //compute aspect ratio for this canvas
62
63         s = fixmuldiv(grd_curscreen->sc_aspect,Canvas_height,Canvas_width);
64
65         if (s <= f1_0) {           //scale x
66                 Window_scale.x = s;
67                 Window_scale.y = f1_0;
68         }
69         else {
70                 Window_scale.y = fixdiv(f1_0,s);
71                 Window_scale.x = f1_0;
72         }
73         
74         Window_scale.z = f1_0;          //always 1
75
76         init_free_points();
77
78 #ifdef OGL
79         ogl_start_frame();
80 #else
81         init_interface_vars_to_assembler();             //for the texture-mapper
82 #endif
83 }
84
85 //this doesn't do anything, but is here for completeness
86 void g3_end_frame(void)
87 {
88 #ifdef OGL
89         ogl_end_frame();
90 #endif
91
92 //      Assert(free_point_num==0);
93         free_point_num = 0;
94
95 }
96
97