--- deliantra/Deliantra-Client/bin/pclient 2006/04/10 22:53:50 1.63 +++ deliantra/Deliantra-Client/bin/pclient 2006/04/11 12:21:30 1.64 @@ -42,6 +42,7 @@ our $ALT_ENTER_MESSAGE; our $STATUS_LINE; +our $DEBUG_STATUS; my $last_refresh; my %ANIMATE; @@ -91,6 +92,9 @@ glBlendFunc GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA; ############################################################################# + + $DEBUG_STATUS = new Crossfire::Client::Widget::Label 0, 0, 1, $FONTSIZE, ""; + $Crossfire::Client::Widget::TOPLEVEL->add ($DEBUG_STATUS); $STATUS_LINE = new Crossfire::Client::Widget::Label 0, $HEIGHT * 59 / 60 - $FONTSIZE, 1, $FONTSIZE, @@ -186,6 +190,14 @@ SDL::GLSwapBuffers; } +sub debug { + $DEBUG_STATUS->set_text ($_[0]); + $DEBUG_STATUS->size_allocate ($DEBUG_STATUS->size_request); + $DEBUG_STATUS->move ($WIDTH - $DEBUG_STATUS->{w}, 0); +} + +my $FPS; + sub refresh { $refresh_handler ||= add Glib::Idle sub { if ($SDL_APP) { @@ -199,6 +211,12 @@ my $interval = ($next_refresh - $last_refresh) * 0.001; $last_refresh = $next_refresh; + if ($interval) { + $FPS ||= 1 / $interval; + $FPS = $FPS * 0.96 + (1 / $interval) * 0.04; + debug sprintf "%5.02f\n", $FPS; + } + force_refresh; $_->animate ($interval) for grep $_, values %ANIMATE;