X-Git-Url: https://hackdaworld.org/gitweb/?p=my-code%2Fivac.git;a=blobdiff_plain;f=src%2Fdisplay.c;fp=src%2Fdisplay.c;h=e42c30b38dd0a6e983f1a2d213fe3db334b2d6ef;hp=c46c11c9aeff52ad5530d68e3d5e732bea9e08cc;hb=99e577ce594ed343397276ac6c2dd9729ac10d6d;hpb=050a55681aaf01024a475eb4e68880040af758bd diff --git a/src/display.c b/src/display.c index c46c11c..e42c30b 100644 --- a/src/display.c +++ b/src/display.c @@ -6,6 +6,8 @@ #include "display.h" +#define USE_NCURSES + int display_init(t_display *display) { struct winsize ws; @@ -30,6 +32,14 @@ int display_init(t_display *display) { /* space as display pixel default */ memset(display->screen,0x20,display->max_x*display->max_y); +#ifdef USE_NCURSES + initscr(); + nonl(); + noecho(); + cbreak(); + curs_set(0); +#endif + return D_SUCCESS; } @@ -37,11 +47,19 @@ int display_draw(t_display *display) { int x,y; +#ifdef USE_NCURSES + mvprintw(0,0,"%s",display->screen); + for(y=0;ymax_y;y++) + for(x=0;xmax_x;x++) + mvaddch(y,x,*(display->screen+y*display->max_x+x)); + refresh(); +#else for(y=0;ymax_y;y++) { for(x=0;xmax_x;x++) printf("%c",*(display->screen+y*display->max_x+x)); printf("\n"); } +#endif return D_SUCCESS; } @@ -50,11 +68,29 @@ int display_draw_until_line(t_display *display,int line) { int x,y; +#ifdef USE_NCURSES + for(y=0;ymax_x;x++) + mvaddch(y,x,*(display->screen+y*display->max_x+x)); + refresh(); + } +#else for(y=0;ymax_x;x++) printf("%c",*(display->screen+y*display->max_x+x)); printf("\n"); } +#endif + + return D_SUCCESS; +} + +int display_set_cursor(t_display *display,int x,int y) { + +#ifdef USE_NCURSES + move(y,x); + refresh(); +#endif return D_SUCCESS; } @@ -68,6 +104,10 @@ int display_clear_screen(t_display *display) { int display_shutdown(t_display *display) { +#ifdef USE_NCURSES + endwin(); +#endif + free(display->screen); puts("[display] shutdown");