1 |
function d3d_set_perspective(arg0) |
2 |
{ |
3 |
var __persp = arg0; |
4 |
if (global.__d3d == false) |
5 |
__persp = false; |
6 |
var __mat = camera_get_proj_mat(camera_get_default()); |
7 |
if (__persp) |
8 |
__mat[11] = 1; |
9 |
else |
10 |
__mat[11] = 0; |
11 |
camera_set_proj_mat(camera_get_default(), __mat); |
12 |
var __numcams = 0; |
13 |
var __cams = []; |
14 |
for (var __i = 0; __i < 8; __i++) |
15 |
{ |
16 |
if (view_camera[__i] != -1) |
17 |
{ |
18 |
__cams[__numcams * 3] = view_camera[__i]; |
19 |
__cams[(__numcams * 3) + 1] = view_camera[__i]; |
20 |
__cams[(__numcams * 3) + 2] = view_camera[__i]; |
21 |
__numcams++; |
22 |
} |
23 |
} |
24 |
var __currroom = room_first; |
25 |
while (__currroom != -1) |
26 |
{ |
27 |
for (var __i = 0; __i < 8; __i++) |
28 |
{ |
29 |
var __cam = room_get_camera(__currroom, __i); |
30 |
if (__cam != -1) |
31 |
{ |
32 |
__cams[__numcams] = __cam; |
33 |
__numcams++; |
34 |
} |
35 |
} |
36 |
__currroom = room_next(__currroom); |
37 |
} |
38 |
for (var __i = 0; __i < __numcams; __i++) |
39 |
{ |
40 |
var __cam = __cams[__i]; |
41 |
__mat = camera_get_proj_mat(__cam); |
42 |
var __ispersp = (__mat[11] != 0) ? true : false; |
43 |
if (__ispersp != __persp) |
44 |
{ |
45 |
if (camera_get_view_width(__cam) > 0) |
46 |
{ |
47 |
var __width = camera_get_view_width(__cam); |
48 |
var __height = camera_get_view_height(__cam); |
49 |
if (__persp) |
50 |
{ |
51 |
var __projmat = matrix_build_projection_perspective(1, -(__height / __width), 1, 32000); |
52 |
camera_set_proj_mat(__cam, __projmat); |
53 |
} |
54 |
else |
55 |
{ |
56 |
var __projmat = matrix_build_projection_ortho(__width, __height, -16000, 16000); |
57 |
camera_set_proj_mat(__cam, __projmat); |
58 |
} |
59 |
} |
60 |
} |
61 |
} |
62 |
} |