#define _GNU_SOURCE //vasprintf #include #include #include #include #include "global.h" #include "library.h" using namespace std; extern sf::RenderWindow window; static void draw_text(int x,int y,const char *s,size_t len){ static sf::Font font; static bool fontLoaded=false; static sf::Text text; if(!fontLoaded){ font.loadFromFile("/Library/Fonts/Arial.ttf"); fontLoaded=true; } text.setFont(font); text.setFillColor(sf::Color::Black); text.setString(string(s,len)); text.setPosition(x,y); window.draw(text); } void draw_text(int x,int y,const char *s){ draw_text(x,y,s,strlen(s)); } __attribute__((format (printf, 3, 4))) void draw_textf(int x,int y,const char *format,...){ va_list ap; va_start(ap,format); char *buf; int len=vasprintf(&buf,format,ap); va_end(ap); assert(len>=0); draw_text(x,y,buf,len); free(buf); } static void log(const char *buf,size_t len){ cerr<<"[LOG] "; cerr.write(buf,len); cerr<=0); log(buf,len); free(buf); }