view test/testtimer.c @ 1169:4b3e2294782d

Date: Sun, 06 Nov 2005 18:23:03 +0900 From: Hayashi Naoyuki <titan@culzean.org> To: "A list for developers using the SDL library. \(includes SDL-announce\)" <sdl@libsdl.org> Subject: Re: [SDL] Dynamic X11... 1. Compilation produce the following error on Tru64 UNIX. cc: Severe: SDL_x11dyn.h, line 31: Cannot find file <X11/extensions/extutil.h> specified in #include directive. (noinclfilef) #include <X11/extensions/extutil.h> Because Tru64 UNIX doesn't have extutil.h, this error is caused. 2. Compilation with --enable-x11-shared=no produce the following error. cc: Error: SDL_x11sym.h, line 115: In this statement, "Xutf8TextListToTextProperty" is not declared. (undeclared) SDL_X11_SYM(int,Xutf8TextListToTextProperty,(Display*,char**,int,XICCEncodingStyle,XTextProperty*)) Though it doesn't have Xutf8TextListToTextProperty, "pXutf8TextListToTextProperty = Xutf8TextListToTextProperty;" in SDL_x11dyn.c,117-119 #define SDL_X11_SYM(r,fn,arg) p##fn = fn; #include "SDL_x11sym.h" #undef SDL_X11_SYM -- Hayashi Naoyuki Key fingerprint = 60A0 D5D3 F58B 3633 2E52 0147 D17F 5578 3FDF F5B6
author Ryan C. Gordon <icculus@icculus.org>
date Sun, 06 Nov 2005 17:05:12 +0000
parents be9c9c8f6d53
children b2b476a4a73c
line wrap: on
line source


/* Test program to check the resolution of the SDL timer on the current
   platform
*/

#include <stdlib.h>
#include <stdio.h>

#include "SDL.h"

#define DEFAULT_RESOLUTION	1

static int ticks = 0;

/* Call this instead of exit(), so we can clean up SDL: atexit() is evil. */
static void quit(int rc)
{
	SDL_Quit();
	exit(rc);
}

static Uint32 ticktock(Uint32 interval)
{
	++ticks;
	return(interval);
}

static Uint32 callback(Uint32 interval, void *param)
{
  printf("Timer %d : param = %d\n", interval, (int) param);
  return interval;
}

int main(int argc, char *argv[])
{
	int desired;
	SDL_TimerID t1, t2, t3;

	if ( SDL_Init(SDL_INIT_TIMER) < 0 ) {
		fprintf(stderr, "Couldn't load SDL: %s\n", SDL_GetError());
		return(1);
	}

	/* Start the timer */
	desired = 0;
	if ( argv[1] ) {
		desired = atoi(argv[1]);
	}
	if ( desired == 0 ) {
		desired = DEFAULT_RESOLUTION;
	}
	SDL_SetTimer(desired, ticktock);

	/* Wait 10 seconds */
	printf("Waiting 10 seconds\n");
	SDL_Delay(10*1000);

	/* Stop the timer */
	SDL_SetTimer(0, NULL);

	/* Print the results */
	if ( ticks ) {
		fprintf(stderr,
		"Timer resolution: desired = %d ms, actual = %f ms\n",
					desired, (double)(10*1000)/ticks);
	}
	
	/* Test multiple timers */
	printf("Testing multiple timers...\n");
	t1 = SDL_AddTimer(100, callback, (void*)1);
	if(!t1)
	  fprintf(stderr,"Could not create timer 1: %s\n", SDL_GetError());
	t2 = SDL_AddTimer(50, callback, (void*)2);
	if(!t2)
	  fprintf(stderr,"Could not create timer 2: %s\n", SDL_GetError());
	t3 = SDL_AddTimer(233, callback, (void*)3);
	if(!t3)
	  fprintf(stderr,"Could not create timer 3: %s\n", SDL_GetError());
	
	/* Wait 10 seconds */
	printf("Waiting 10 seconds\n");
	SDL_Delay(10*1000);

	printf("Removing timer 1 and waiting 5 more seconds\n");
	SDL_RemoveTimer(t1);

	SDL_Delay(5*1000);

	SDL_RemoveTimer(t2);
	SDL_RemoveTimer(t3);

	SDL_Quit();
	return(0);
}