Compare commits

...

2 Commits

Author SHA1 Message Date
milang 4d281516db
testing fxengine --> bug found, not corrected yet ! 2019-09-19 21:08:27 +02:00
milang 9e755bd4fb
us fxengine as functionnal lib 2019-09-18 19:05:45 +02:00
7 changed files with 671 additions and 370 deletions

BIN
1v13D.g1a

Binary file not shown.

Binary file not shown.

File diff suppressed because it is too large Load Diff

Binary file not shown.

Binary file not shown.

View File

@ -16,7 +16,7 @@ ICON_CG_SEL = assets-cg/icon-cg-sel.png
# Additional compiler flags
CFLAGS = -std=c11 -Os
# Additional linker flags
LDFLAGS = -lfxengine -lgint-fx -lprof
LDFLAGS = -llog -lfxengine -lgint-fx -lprof
# FxEngine font
# FONT.FxEngine.png = charset:print grid.size:3x5 grid.padding:1 proportional:true

View File

@ -1,10 +1,11 @@
/*
#include <gint/display.h>
#include <gint/keyboard.h>
#include <gint/std/stdio.h>
#include <gint/std/stdlib.h>
#include <gint/clock.h>
#include <fxengine/point.h>
*/
/*
int main(void)
{
@ -48,13 +49,15 @@ int main(void)
#include <gint/std/stdlib.h>
#include <gint/clock.h>
#include <fxengine/point.h>
#include <fxengine/texture.h>
#include <fxengine/triangle.h>
#include <fxengine/camera.h>
#include <fxengine/object.h>
#include <fxengine/fxengine.h>
#include <liblog.h>
int main(void)
{
fe_custom_panic();
//init_controls();
dclear(C_WHITE);
//render_integer_point point[4]={{{10,0,0},{0,0,0}},{{10,10,0},{0,0,0}},{{10,0,10},{0,0,0}},{{10,10,10},{0,0,0}}};
@ -99,49 +102,153 @@ int main(void)
fe_texture_rich * bmp = fe_texture_new_rich(32, 32, color, 0, 0, 0);
fe_texture_debug(bmp);
/*
fe_integer_point points[3]=
//fe_texture_debug(bmp);
fe_ivertex v[4]=
{
{
{1,1,0},
{54,6,5}
{300,-100,-100},
{0,0,0}
},
{
{0,1,0},
{5,3,8}
{30,100,100},
{0,0,0}
},
{
{1,0,0},
{5,3,64}
{300,-100,100},
{0,0,0}
},
{
{300,100,-100},
{0,0,0}
}
};
fe_object object;
fe_object_init(&object);
fe_object_set_points(&object, points, 3, 0);
fe_object_set_points(&object, &v, 4, 0);
fe_triangle triangle =
{
&points[0].translated,
&points[1].translated,
&points[2].translated,
bmp,
0,
0
{
fe_object_get_vertex(&object, 0),
fe_object_get_vertex(&object, 1),
fe_object_get_vertex(&object, 2),
bmp,
1,
0
},
{
fe_object_get_vertex(&object, 0),
fe_object_get_vertex(&object, 1),
fe_object_get_vertex(&object, 3),
bmp,
0,
0
}
};
fe_object_set_faces(&object, &triangle, 1, 0);
fe_render_update(1);
fe_object_set_faces(&object, &triangle, 2, 0);
bool state=1;
//fe_object_debug(&object);
fe_camera cam = {{0,0,0},{0,0,0},0,0,0};
while (1)
{
label:;
key_event_t event = pollevent();
if (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);
//fe_object_display(&object);
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));
}
fe_render_update(1);
cam.dv = fe_modulo_2pi(cam.dv);
dupdate();
getkey();
if (event.key == KEY_EXIT)
break;
if (event.key==KEY_F1 && event.type==KEYEV_DOWN)
state = !state;
goto label;
}
fe_view_set(&cam);
fe_object_display(&object);
char str[1000];
/* sprintf(str, "S1 %d %d %d",
fe_object_get_vertex(&object, 0)->x,
fe_object_get_vertex(&object, 0)->y,
fe_object_get_vertex(&object, 0)->z);
fe_log(str);
sprintf(str, "S2 %d %d %d",
fe_object_get_vertex(&object, 1)->x,
fe_object_get_vertex(&object, 1)->y,
fe_object_get_vertex(&object, 1)->z);
fe_log(str);
sprintf(str, "S3 %d %d %d",
fe_object_get_vertex(&object, 2)->x,
fe_object_get_vertex(&object, 2)->y,
fe_object_get_vertex(&object, 2)->z);
*/
sprintf(str, "Camera Settings :\n>> x %d; y %d; z %d\n>> dh %d; dv %d",
cam.pos.x,
cam.pos.y,
cam.pos.z,
(int)(cam.dh*180/pi),
(int)(cam.dv*180/pi)
);
ll_log(str);
if (state)
{
fe_display(1);
}
else
{
fe_update(1);
ll_display_log();
}
}
return 1;
}