299 lines
7.5 KiB
C
Executable File
299 lines
7.5 KiB
C
Executable File
#include <gint/display.h>
|
|
#include <gint/timer.h>
|
|
#include <gint/keyboard.h>
|
|
|
|
#include <liblog.h>
|
|
|
|
#include <fxengine/model/bitmap.h>
|
|
#include <fxengine/model/vertex.h>
|
|
#include <fxengine/model/triangle.h>
|
|
#include <fxengine/model/object.h>
|
|
#include <fxengine/renderlist.h>
|
|
#include <fxengine/fxengine.h>
|
|
|
|
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 <gint/display.h>
|
|
#include <gint/keyboard.h>
|
|
#include <gint/std/stdio.h>
|
|
#include <gint/std/stdlib.h>
|
|
#include <gint/clock.h>
|
|
|
|
#include <fxengine/camera.h>
|
|
#include <fxengine/object.h>
|
|
#include <fxengine/fxengine.h>
|
|
|
|
#include <liblog.h>
|
|
|
|
#include <fxengine.h>
|
|
|
|
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;
|
|
}
|
|
*/ |