#include #include #include #include #include #include #include #include #include #include int callback(void) { fe_callback_start(); fe_draw(); dupdate(); ll_send("Rendered Image\n"); key_event_t event = pollevent(); int state=0; while (event.type!=KEYEV_NONE) { if (event.key == KEY_F1) state = 1; event=pollevent(); } if (state) { timer_pause(1); ll_pause(); timer_start(1); } fe_callback_end(); return 0; } int main(void) { dclear(C_WHITE); uint32_t color[32] = { 0b11111111111111111111111111111111, 0b11111111111111111111111111111111, 0b11111111111111111111111111111111, 0b11111111111111111111111111111111, 0b11111111111111111111111111111111, 0b11111111111111111111111111111111, 0b11111111111111111111111111111111, 0b11111111111111111111111111111111, 0b11111111111111111111111111111111, 0b11111111111111111111111111111111, 0b11111111111111111111111111111111, 0b11111111111111111111111111111111, 0b11111111111111111111111111111111, 0b11111111111111111111111111111111, 0b11111111111111111111111111111111, 0b11111111111111111111111111111111, 0b11111111111111111111111111111111, 0b11111111111111111111111111111111, 0b11111111111111111111111111111111, 0b11111111111111111111111111111111, 0b11111111111111111111111111111111, 0b11111111111111111111111111111111, 0b11111111111111111111111111111111, 0b11111111111111111111111111111111, 0b11111111111111111111111111111111, 0b11111111111111111111111111111111, 0b11111111111111111111111111111111, 0b11111111111111111111111111111111, 0b11111111111111111111111111111111, 0b11111111111111111111111111111111 }; fe_bitmap * bmp = fe_bitmap_new(32, 32, color, 0, 0, 0); fe_vertex v[3]= { {30,-10,-10}, {30,10,10}, {30,-10,10} }; fe_object obj; fe_object_init(&obj); fe_object_set_vertex(&obj, v, 3, 0); fe_triangle t[1]= { fe_object_getvx(&obj,0), fe_object_getvx(&obj,1), fe_object_getvx(&obj,2), bmp, bmp, 0 }; fe_object_set_faces(&obj, t, 1, 0); // Add object to list fe_renderlist_add(&obj); // Launch game timer at 40 FPS max timer_setup(1, timer_delay(0, 25 * 1000), 0, callback, 0); timer_start(1); // Launch 3D renderer fe_load(); // Free Data return; } /* #include #include #include #include #include #include #include #include #include #include int main(void) { ll_set_state(0); ll_set_panic(); ll_send("Log Beginning\n"); dclear(C_WHITE); uint32_t color[32] = { 0b11111111111111111111111111111111, 0b11111111111111111111111111111111, 0b11111111111111111111111111111111, 0b11111111111111111111111111111111, 0b11111111111111111111111111111111, 0b11111111111111111111111111111111, 0b11111111111111111111111111111111, 0b11111111111111111111111111111111, 0b11111111111111111111111111111111, 0b11111111111111111111111111111111, 0b11111111111111111111111111111111, 0b11111111111111111111111111111111, 0b11111111111111111111111111111111, 0b11111111111111111111111111111111, 0b11111111111111111111111111111111, 0b11111111111111111111111111111111, 0b11111111111111111111111111111111, 0b11111111111111111111111111111111, 0b11111111111111111111111111111111, 0b11111111111111111111111111111111, 0b11111111111111111111111111111111, 0b11111111111111111111111111111111, 0b11111111111111111111111111111111, 0b11111111111111111111111111111111, 0b11111111111111111111111111111111, 0b11111111111111111111111111111111, 0b11111111111111111111111111111111, 0b11111111111111111111111111111111, 0b11111111111111111111111111111111, 0b11111111111111111111111111111111 }; fe_texture_rich * bmp = fe_texture_new_rich(32, 32, color, 0, 0, 0); fe_ivertex v[4]= { { {30,-10,-10}, {0,0,0} }, { {30,10,10}, {0,0,0} }, { {30,-10,10}, {0,0,0} } }; fe_triangle triangle = { { fe_object_get_vertex(&object, 0), fe_object_get_vertex(&object, 1), fe_object_get_vertex(&object, 2), bmp, 0, 0 } }; fe_object object; fe_object_init(&object); fe_object_set_points(&object, &v, 3, 0); fe_triangle triangle = { { fe_object_get_vertex(&object, 0), fe_object_get_vertex(&object, 1), fe_object_get_vertex(&object, 2), bmp, 0, 0 } }; fe_object_set_faces(&object, &triangle, 1, 0); fe_camera cam = {{20,20,0},{20,20,0},0,0,0}; int fps; while (1) { int state=1; key_event_t event = pollevent(); while (event.type!=KEYEV_NONE) { //ll_log(str); if (event.key == KEY_LEFT) cam.dh -= 0.01; if (event.key == KEY_RIGHT) cam.dh += 0.01; cam.dh = fe_modulo_2pi(cam.dh); if (event.key == KEY_UP) cam.dv += 0.01; if (event.key == KEY_DOWN) cam.dv -= 0.01; cam.dv = fe_modulo_2pi(cam.dv); if (event.key == KEY_8) { cam.pos.x = cam.pos.x + (int32_t)(5*fe_sin(cam.dh)); cam.pos.y = cam.pos.y + (int32_t)(5*fe_cos(cam.dh)); } if (event.key == KEY_2) { cam.pos.x = cam.pos.x + (int32_t)(5*fe_sin(cam.dh+pi)); cam.pos.y = cam.pos.y + (int32_t)(5*fe_cos(cam.dh+pi)); } if (event.key == KEY_6) { cam.pos.x = cam.pos.x + (int32_t)(5*fe_sin(cam.dh+pi_sur_2)); cam.pos.y = cam.pos.y + (int32_t)(5*fe_cos(cam.dh+pi_sur_2)); } if (event.key == KEY_4) { cam.pos.x = cam.pos.x + (int32_t)(5*fe_sin(cam.dh-pi_sur_2)); cam.pos.y = cam.pos.y + (int32_t)(5*fe_cos(cam.dh-pi_sur_2)); } cam.dv = fe_modulo_2pi(cam.dv); if (event.key == KEY_MENU) return; if (event.key==KEY_F1 && event.type==KEYEV_DOWN) { ll_pause(); } event=pollevent(); } fe_view_set(&cam); fe_object_display(&object); char str[300]; sprintf(str, "\nCamera Settings :\n>> x %d; y %d; z %d;\n>> dh %d; dv %d;\n", cam.pos.x, cam.pos.y, cam.pos.z, (int)(cam.dh*180/pi), (int)(cam.dv*180/pi) ); ll_send(str); sprintf(str,"FPS=%d",fps); dtext(1,1,str,C_BLACK,C_NONE); fps=fe_display(0); } return 1; } */