gba-x3dtest

diff src/game.c @ 12:ecc022a21279

more tuff
author John Tsiombikas <nuclear@member.fsf.org>
date Mon, 23 Jun 2014 06:44:04 +0300
parents b0ed38f13261
children 2070a81127f2
line diff
     1.1 --- a/src/game.c	Sun Jun 22 07:54:29 2014 +0300
     1.2 +++ b/src/game.c	Mon Jun 23 06:44:04 2014 +0300
     1.3 @@ -9,11 +9,12 @@
     1.4  static void draw_rect(int x, int y, int w, int h, uint16_t color);
     1.5  
     1.6  #define X16INT(x)	((x) << 16)
     1.7 +#define X16FLT(x)	((int32_t)((x) * 65536.0))
     1.8  
     1.9  static const int32_t poly[] = {
    1.10 -	X16INT(120), X16INT(20), 0,
    1.11 -	X16INT(200), X16INT(130), 0,
    1.12 -	X16INT(40), X16INT(100), 0
    1.13 +	X16FLT(0), X16FLT(1), 0,
    1.14 +	X16FLT(1), X16FLT(-0.8), 0,
    1.15 +	X16FLT(-1), X16FLT(-0.5), 0
    1.16  };
    1.17  static const short vcount = sizeof poly / sizeof *poly / 3;
    1.18  
    1.19 @@ -24,6 +25,8 @@
    1.20  	palman_init();
    1.21  #endif
    1.22  
    1.23 +	x3d_projection(45.0, (WIDTH << 16) / HEIGHT, 65536 / 2, 65536 * 500);
    1.24 +
    1.25  	return 0;
    1.26  }
    1.27  
    1.28 @@ -37,13 +40,20 @@
    1.29  	clear_buffer(back_buffer, 0);
    1.30  
    1.31  	x3d_load_identity();
    1.32 -	x3d_translate(-itox16(WIDTH / 2), -itox16(HEIGHT / 2), 0);
    1.33 +	/*x3d_translate(-itox16(WIDTH / 2), -itox16(HEIGHT / 2), 0);
    1.34  	if(autorot) {
    1.35  		x3d_rotate((msec / 64) << 16, 0, 0, 65536);
    1.36  	} else {
    1.37  		x3d_rotate(keyrot << 16, 0, 0, 65536);
    1.38  	}
    1.39 -	x3d_translate(itox16(WIDTH / 2), itox16(HEIGHT / 2), 0);
    1.40 +	x3d_translate(itox16(WIDTH / 2), itox16(HEIGHT / 2), 0);*/
    1.41 +
    1.42 +	if(autorot) {
    1.43 +		x3d_rotate((msec / 64) << 16, 0, 65536, 0);
    1.44 +	} else {
    1.45 +		x3d_rotate(keyrot << 16, 0, 65536, 0);
    1.46 +	}
    1.47 +	x3d_translate(0, 0, X16INT(2));
    1.48  
    1.49  	x3d_vertex_array(vcount, poly);
    1.50  
    1.51 @@ -52,14 +62,14 @@
    1.52  #else
    1.53  	x3d_color(65536, 65536, 65536);
    1.54  #endif
    1.55 -	x3d_draw_arrays(X3D_TRIANGLES, vcount);
    1.56 +	x3d_draw(X3D_TRIANGLES, vcount);
    1.57  
    1.58  #ifdef PALMODE
    1.59  	x3d_color_index(RGBPAL(0, 255, 0));
    1.60  #else
    1.61  	x3d_color(0, 65536, 0);
    1.62  #endif
    1.63 -	x3d_draw_arrays(X3D_POINTS, vcount);
    1.64 +	x3d_draw(X3D_POINTS, vcount);
    1.65  	x3d_vertex_array(0, 0);
    1.66  
    1.67  	draw_rect(0, 0, WIDTH, HEIGHT, RGBPAL(255, 0, 0));