#include "signal.h" #include "display33.h" #include "clock33.h" #include "logger33.h" #include "system33.h" #include "strings33.h" #include "input33.h" #include "ui33.h" static void _term_sighandler( int sig ); int main(int argc, char *argv[]) { Size fps, FPS; long timeOld, time; if( e33_set_signal( SIGHUP, _term_sighandler ) == -1 ) { LOGW( "SIGHUP not handled"); } if( e33_set_signal( SIGINT, _term_sighandler ) == -1 ) { LOGW( "SIGINT not handled"); } if( e33_set_signal( SIGTERM, _term_sighandler ) == -1 ) { LOGW( "SIGTERM not handled"); } timeOld = clock_get_us(); time = 0; fps = 0; FPS = 0; if( logger33_init() ) { return EXIT_FAILURE; } if( input33_init() ) { return EXIT_FAILURE; } if( display33_init() ) { return EXIT_FAILURE; } while(1) { display33_vtswitcher_poll(1); if( __display.active ) { input33_poll(); QPRINTF( 5, 5, "fps: %d", FPS-1 ); if( KEYDOWN(KEY_K) ) { ui33_add_message("Pressed '%c'", 'K'); } if( MOUSEX ) { __mouse.x += MOUSEX; } if( MOUSEY ) { __mouse.y += MOUSEY; } if( __mouse.x < 0 ) __mouse.x = 0; if( __mouse.y < 0 ) __mouse.y = 0; if( __mouse.x >= __display.surface.w ) __mouse.x = __display.surface.w-1; if( __mouse.y >= __display.surface.h ) __mouse.y = __display.surface.h-1; ui33_draw_mouse(); QPRINTF( 100, 5, "M: x(%d), y(%d)", __mouse.x, __mouse.y ); ui33_draw_messages(); display33_flip(); } time += clock_get_us() - timeOld; timeOld = clock_get_us(); if(time >= 1000000) { FPS = fps; time = 0; fps = 0; } ++fps; } display33_term(); logger33_term(); input33_term(); return EXIT_SUCCESS; } static void _term_sighandler( int sig ) { display33_term(); logger33_term(); exit(0); }