… | |
… | |
2270 | my $animate_timer; |
2270 | my $animate_timer; |
2271 | |
2271 | |
2272 | my $fps = 9; |
2272 | my $fps = 9; |
2273 | |
2273 | |
2274 | sub force_refresh { |
2274 | sub force_refresh { |
2275 | $WANT_REFRESH->stop; |
|
|
2276 | |
|
|
2277 | if ($ENV{CFPLUS_DEBUG} & 4) { |
2275 | if ($ENV{CFPLUS_DEBUG} & 4) { |
2278 | $fps = $fps * 0.98 + 1 / (($NOW - $LAST_REFRESH) || 0.1) * 0.02; |
2276 | $fps = $fps * 0.98 + 1 / (($NOW - $LAST_REFRESH) || 0.1) * 0.02; |
2279 | debug sprintf "%3.2f", $fps; |
2277 | debug sprintf "%3.2f", $fps; |
2280 | } |
2278 | } |
|
|
2279 | |
|
|
2280 | $WANT_REFRESH->stop; |
2281 | |
2281 | |
2282 | $CFPlus::UI::ROOT->draw; |
2282 | $CFPlus::UI::ROOT->draw; |
2283 | CFPlus::SDL_GL_SwapBuffers; |
2283 | CFPlus::SDL_GL_SwapBuffers; |
2284 | $LAST_REFRESH = $NOW; |
2284 | $LAST_REFRESH = $NOW; |
2285 | } |
2285 | } |
… | |
… | |
2316 | }, |
2316 | }, |
2317 | CFPlus::SDL_VIDEOEXPOSE => sub { |
2317 | CFPlus::SDL_VIDEOEXPOSE => sub { |
2318 | CFPlus::UI::full_refresh; |
2318 | CFPlus::UI::full_refresh; |
2319 | }, |
2319 | }, |
2320 | CFPlus::SDL_ACTIVEEVENT => sub { |
2320 | CFPlus::SDL_ACTIVEEVENT => sub { |
2321 | # not useful, as APPACTIVE include sonly iconified state, not unmapped |
2321 | # not useful, as APPACTIVE includes only iconified state, not unmapped |
2322 | # printf "active %x %x %x\n", $_[0]{gain}, $_[0]{state}, CFPlus::SDL_GetAppState;#d# |
2322 | # printf "active %x %x %x\n", $_[0]{gain}, $_[0]{state}, CFPlus::SDL_GetAppState;#d# |
2323 | # printf "a %x\n", CFPlus::SDL_GetAppState & CFPlus::SDL_APPACTIVE;#d# |
2323 | # printf "a %x\n", CFPlus::SDL_GetAppState & CFPlus::SDL_APPACTIVE;#d# |
2324 | # printf "A\n" if $_[0]{state} & CFPlus::SDL_APPACTIVE; |
2324 | # printf "A\n" if $_[0]{state} & CFPlus::SDL_APPACTIVE; |
2325 | # printf "K\n" if $_[0]{state} & CFPlus::SDL_APPINPUTFOCUS; |
2325 | # printf "K\n" if $_[0]{state} & CFPlus::SDL_APPINPUTFOCUS; |
2326 | # printf "M\n" if $_[0]{state} & CFPlus::SDL_APPMOUSEFOCUS; |
2326 | # printf "M\n" if $_[0]{state} & CFPlus::SDL_APPMOUSEFOCUS; |