X-Git-Url: https://hackdaworld.org/gitweb/?a=blobdiff_plain;f=display%2Fdisplay.c;h=fd53247732d42ba3dccc4021733cd03a004457f0;hb=8780881d6185bf57b37dcfb51c8d387527b3f96c;hp=a925e3ac5d942d84b523f151053f87270d8bd1b3;hpb=24edc387e6e88c32c6142f397ee891746eed62e3;p=my-code%2Fapi.git diff --git a/display/display.c b/display/display.c index a925e3a..fd53247 100644 --- a/display/display.c +++ b/display/display.c @@ -6,9 +6,9 @@ #include "display.h" -// #define USE_NCURSES +#define USE_NCURSES -int display_init(t_display *display) { +int display_init(t_display *display,int outfd) { struct winsize ws; @@ -20,11 +20,13 @@ int display_init(t_display *display) { display->max_x=ws.ws_col; display->max_y=ws.ws_row; - printf("[display] initializing display, width: %02d / height: %02d ...\n", - ws.ws_col,ws.ws_row); + display->outfd=outfd; + + dprintf(display->outfd,"[display] initializing display, w: %02d / h: %02d\n", + ws.ws_col,ws.ws_row); /* allocating 'screen' buffer */ - if((display->screen=(unsigned char *)malloc(display->max_x*display->max_y)) + if((display->screen=(char *)malloc(display->max_x*display->max_y)) ==NULL) { perror("[display] malloc call"); return D_ERROR; @@ -45,19 +47,21 @@ int display_init(t_display *display) { int display_draw(t_display *display) { +#ifndef USE_NCURSES int x,y; +#endif #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)); + //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"); + fprintf(stderr,"%c",*(display->screen+y*display->max_x+x)); + fprintf(stderr,"\n"); } #endif @@ -77,8 +81,8 @@ int display_draw_until_line(t_display *display,int line) { #else for(y=0;ymax_x;x++) - printf("%c",*(display->screen+y*display->max_x+x)); - printf("\n"); + fprintf(stderr,"%c",*(display->screen+y*display->max_x+x)); + fprintf(stderr,"\n"); } #endif @@ -110,7 +114,7 @@ int display_shutdown(t_display *display) { free(display->screen); - puts("[display] shutdown"); + dprintf(display->outfd,"[display] shutdown\n"); return D_SUCCESS; } @@ -122,9 +126,17 @@ int display_line(t_display *display,int X,int Y,int X_,int Y_,char sym) { m=(Y_-Y)/(X_-X); - for(y=0;ymax_y;y++) - for(x=0;xmax_x;x++) - if((int)((x-X)*m+Y)==y) *(display->screen+y*display->max_x+x)=sym; + for(x=X;x<=X_;x++) { + y=(x-X)*m+Y; + *(display->screen+y*display->max_x+x)=sym; + } + + return D_SUCCESS; +} + +int display_hor_line(t_display *display,int Y,char sym) { + + display_line(display,0,Y,display->max_x,Y,sym); return D_SUCCESS; }