Mercurial > sdl-ios-xcode
view docs/html/guidetimeexamples.html @ 1119:430d8d701f69
SDL_GetAppState() correction when toggling fullscreen on OSX.
Patch by me to address this comment on the SDL mailing list:
"There appears to be a serious bug with SDL_GetAppState on OS X (10.3.9). When
first running in windowed mode and then switching to full screen mode by
calling SDL_SetVideoMode, SDL_GetAppState returns 4 (SDL_APPACTIVE) instead of
7 (SDL_APPMOUSEFOCUS | SDL_APPINPUTFOCUS | SDL_APPACTIVE). However, the SDL
application clearly does have the keyboard focus, since it is able to receive
keyboard events."
--ryan.
author | Ryan C. Gordon <icculus@icculus.org> |
---|---|
date | Thu, 18 Aug 2005 06:18:30 +0000 |
parents | 355632dca928 |
children |
line wrap: on
line source
<HTML ><HEAD ><TITLE >Time Examples</TITLE ><META NAME="GENERATOR" CONTENT="Modular DocBook HTML Stylesheet Version 1.76b+ "><LINK REL="HOME" TITLE="SDL Library Documentation" HREF="index.html"><LINK REL="UP" TITLE="Examples" HREF="guideexamples.html"><LINK REL="PREVIOUS" TITLE="CDROM Examples" HREF="guidecdromexamples.html"><LINK REL="NEXT" TITLE="SDL Reference" HREF="reference.html"></HEAD ><BODY CLASS="SECT1" BGCOLOR="#FFF8DC" TEXT="#000000" LINK="#0000ee" VLINK="#551a8b" ALINK="#ff0000" ><DIV CLASS="NAVHEADER" ><TABLE SUMMARY="Header navigation table" WIDTH="100%" BORDER="0" CELLPADDING="0" CELLSPACING="0" ><TR ><TH COLSPAN="3" ALIGN="center" >SDL Library Documentation</TH ></TR ><TR ><TD WIDTH="10%" ALIGN="left" VALIGN="bottom" ><A HREF="guidecdromexamples.html" ACCESSKEY="P" >Prev</A ></TD ><TD WIDTH="80%" ALIGN="center" VALIGN="bottom" >Chapter 4. Examples</TD ><TD WIDTH="10%" ALIGN="right" VALIGN="bottom" ><A HREF="reference.html" ACCESSKEY="N" >Next</A ></TD ></TR ></TABLE ><HR ALIGN="LEFT" WIDTH="100%"></DIV ><DIV CLASS="SECT1" ><H1 CLASS="SECT1" ><A NAME="GUIDETIMEEXAMPLES" ></A >Time Examples</H1 ><P ></P ><DIV CLASS="SECT2" ><H2 CLASS="SECT2" ><A NAME="AEN412" ></A >Time based game loop</H2 ><P ><PRE CLASS="PROGRAMLISTING" >#define TICK_INTERVAL 30 static Uint32 next_time; Uint32 time_left(void) { Uint32 now; now = SDL_GetTicks(); if(next_time <= now) return 0; else return next_time - now; } /* main game loop */ next_time = SDL_GetTicks() + TICK_INTERVAL; while ( game_running ) { update_game_state(); SDL_Delay(time_left()); next_time += TICK_INTERVAL; } </PRE ></P ></DIV ></DIV ><DIV CLASS="NAVFOOTER" ><HR ALIGN="LEFT" WIDTH="100%"><TABLE SUMMARY="Footer navigation table" WIDTH="100%" BORDER="0" CELLPADDING="0" CELLSPACING="0" ><TR ><TD WIDTH="33%" ALIGN="left" VALIGN="top" ><A HREF="guidecdromexamples.html" ACCESSKEY="P" >Prev</A ></TD ><TD WIDTH="34%" ALIGN="center" VALIGN="top" ><A HREF="index.html" ACCESSKEY="H" >Home</A ></TD ><TD WIDTH="33%" ALIGN="right" VALIGN="top" ><A HREF="reference.html" ACCESSKEY="N" >Next</A ></TD ></TR ><TR ><TD WIDTH="33%" ALIGN="left" VALIGN="top" >CDROM Examples</TD ><TD WIDTH="34%" ALIGN="center" VALIGN="top" ><A HREF="guideexamples.html" ACCESSKEY="U" >Up</A ></TD ><TD WIDTH="33%" ALIGN="right" VALIGN="top" >SDL Reference</TD ></TR ></TABLE ></DIV ></BODY ></HTML >