| 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 |
} |