testtimer.c File Reference
`#include <stdlib.h>`
`#include <stdio.h>`
`#include "SDL.h"`
Include dependency graph for testtimer.c:

Go to the source code of this file.

## Macros

#define | DEFAULT_RESOLUTION 1

## Functions

static Uint32 | ticktock (Uint32 interval, void *param)
static Uint32 | callback (Uint32 interval, void *param)
int | main (int argc, char *argv[])

## Variables

static int | ticks = 0

## Macro Definition Documentation

## DEFAULT_RESOLUTION

#define DEFAULT_RESOLUTION 1

Definition at line 22 of file testtimer.c.

## Function Documentation

## callback()

static Uint32 callback | ( | Uint32 | interval,
|  | void * | param
| ) |  |

static

Definition at line 34 of file testtimer.c.

{
SDL_Log("Timer %d : param = %d\n", interval, (int) (uintptr_t) param);
return interval;
}

References SDL_Log.

Referenced by VULKAN_HPP_NAMESPACE::Instance::createDebugReportCallbackEXT(), VULKAN_HPP_NAMESPACE::Instance::createDebugReportCallbackEXTUnique(), VULKAN_HPP_NAMESPACE::Instance::destroy(), VULKAN_HPP_NAMESPACE::Instance::destroyDebugReportCallbackEXT(), main(), SDL_AddHintCallback(), SDL_AddTimer(), SDL_CaptureAudio(), SDL_DelEventWatch(), SDL_DelHintCallback(), SDL_LogGetOutputFunction(), SDL_LogSetOutputFunction(), SDL_RunAudio(), SDL_SetWindowHitTest(), SDLTest_SetTestTimeout(), VULKAN_HPP_NAMESPACE::DispatchLoaderStatic::vkDestroyDebugReportCallbackEXT(), wl_display_sync(), and wl_surface_frame().

## main()

int main | ( | int | argc,
|  | char * | argv[]
| ) |  |

Definition at line 41 of file testtimer.c.

{
int i, desired;
SDL_TimerID t1, t2, t3;
Uint32 start32, now32;
Uint64 start, now;
/* Enable standard application logging */
SDL_LogSetPriority(SDL_LOG_CATEGORY_APPLICATION, SDL_LOG_PRIORITY_INFO);
if (SDL_Init(SDL_INIT_TIMER) < 0) {
SDL_LogError(SDL_LOG_CATEGORY_APPLICATION, "Couldn't initialize 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;
}
t1 = SDL_AddTimer(desired, ticktock, NULL);
/* Wait 10 seconds */
SDL_Log("Waiting 10 seconds\n");
SDL_Delay(10 * 1000);
/* Stop the timer */
SDL_RemoveTimer(t1);
/* Print the results */
if (ticks) {
SDL_Log("Timer resolution: desired = %d ms, actual = %f ms\n",
desired, (double) (10 * 1000) / ticks);
}
/* Test multiple timers */
SDL_Log("Testing multiple timers...\n");
t1 = SDL_AddTimer(100, callback, (void *) 1);
if (!t1)
SDL_LogError(SDL_LOG_CATEGORY_APPLICATION,"Could not create timer 1: %s\n", SDL_GetError());
t2 = SDL_AddTimer(50, callback, (void *) 2);
if (!t2)
SDL_LogError(SDL_LOG_CATEGORY_APPLICATION,"Could not create timer 2: %s\n", SDL_GetError());
t3 = SDL_AddTimer(233, callback, (void *) 3);
if (!t3)
SDL_LogError(SDL_LOG_CATEGORY_APPLICATION,"Could not create timer 3: %s\n", SDL_GetError());
/* Wait 10 seconds */
SDL_Log("Waiting 10 seconds\n");
SDL_Delay(10 * 1000);
SDL_Log("Removing timer 1 and waiting 5 more seconds\n");
SDL_RemoveTimer(t1);
SDL_Delay(5 * 1000);
SDL_RemoveTimer(t2);
SDL_RemoveTimer(t3);
start = SDL_GetPerformanceCounter();
for (i = 0; i < 1000000; ++i) {
ticktock(0, NULL);
}
now = SDL_GetPerformanceCounter();
SDL_Log("1 million iterations of ticktock took %f ms\n", (double)((now - start)*1000) / SDL_GetPerformanceFrequency());
SDL_Log("Performance counter frequency: %"SDL_PRIu64"\n", (unsigned long long) SDL_GetPerformanceFrequency());
start32 = SDL_GetTicks();
start = SDL_GetPerformanceCounter();
SDL_Delay(1000);
now = SDL_GetPerformanceCounter();
now32 = SDL_GetTicks();
SDL_Log("Delay 1 second = %d ms in ticks, %f ms according to performance counter\n", (now32-start32), (double)((now - start)*1000) / SDL_GetPerformanceFrequency());
SDL_Quit();
return (0);
}

References callback(), DEFAULT_RESOLUTION, i, NULL, SDL_AddTimer, SDL_Delay, SDL_GetError, SDL_GetPerformanceCounter, SDL_GetPerformanceFrequency(), SDL_GetTicks(), SDL_Init, SDL_INIT_TIMER, SDL_Log, SDL_LOG_CATEGORY_APPLICATION, SDL_LOG_PRIORITY_INFO, SDL_LogError, SDL_LogSetPriority, SDL_PRIu64, SDL_Quit, SDL_RemoveTimer, ticks, and ticktock().

## ticktock()

static Uint32 ticktock | ( | Uint32 | interval,
|  | void * | param
| ) |  |

static

Definition at line 27 of file testtimer.c.

{
++ticks;
return (interval);
}

References ticks.

Referenced by main().

## Variable Documentation

## ticks

int ticks = 0

static

Definition at line 24 of file testtimer.c.

Referenced by main(), and ticktock().

SDL_GetError
#define SDL_GetError
Definition: SDL_dynapi_overrides.h:113
Uint32
uint32_t Uint32
Definition: SDL_stdinc.h:203
t1
GLuint GLfloat GLfloat GLfloat GLfloat GLfloat GLfloat GLfloat GLfloat GLfloat t1
Definition: SDL_opengl_glext.h:8583
SDL_LOG_CATEGORY_APPLICATION
@ SDL_LOG_CATEGORY_APPLICATION
Definition: SDL_log.h:66
NULL
#define NULL
Definition: begin_code.h:167
SDL_GetPerformanceFrequency
Uint64 SDL_GetPerformanceFrequency(void)
Get the count per second of the high resolution counter.
SDL_TimerID
int SDL_TimerID
Definition: SDL_timer.h:86
SDL_PRIu64
#define SDL_PRIu64
Definition: SDL_stdinc.h:238
callback
static Uint32 callback(Uint32 interval, void *param)
Definition: testtimer.c:34
SDL_LogError
#define SDL_LogError
Definition: SDL_dynapi_overrides.h:36
SDL_AddTimer
#define SDL_AddTimer
Definition: SDL_dynapi_overrides.h:487
SDL_Log
#define SDL_Log
Definition: SDL_dynapi_overrides.h:31
ticks
static int ticks
Definition: testtimer.c:24
SDL_GetTicks
Uint32 SDL_GetTicks(void)
Get the number of milliseconds since the SDL library initialization.
SDL_Quit
#define SDL_Quit
Definition: SDL_dynapi_overrides.h:58
param
GLfloat param
Definition: SDL_opengl_glext.h:370
SDL_Delay
#define SDL_Delay
Definition: SDL_dynapi_overrides.h:486
SDL_GetPerformanceCounter
#define SDL_GetPerformanceCounter
Definition: SDL_dynapi_overrides.h:484
start
GLuint start
Definition: SDL_opengl.h:1571
ticktock
static Uint32 ticktock(Uint32 interval, void *param)
Definition: testtimer.c:27
SDL_LOG_PRIORITY_INFO
@ SDL_LOG_PRIORITY_INFO
Definition: SDL_log.h:106
DEFAULT_RESOLUTION
#define DEFAULT_RESOLUTION
Definition: testtimer.c:22
SDL_LogSetPriority
#define SDL_LogSetPriority
Definition: SDL_dynapi_overrides.h:236
SDL_INIT_TIMER
#define SDL_INIT_TIMER
Definition: SDL.h:77
Uint64
uint64_t Uint64
Definition: SDL_stdinc.h:216
SDL_Init
#define SDL_Init
Definition: SDL_dynapi_overrides.h:54
i
return Display return Display Bool Bool int int int return Display XEvent Bool(*) XPointer return Display return Display Drawable _Xconst char unsigned int unsigned int return Display Pixmap Pixmap XColor XColor unsigned int unsigned int return Display _Xconst char char int char return Display Visual unsigned int int int char unsigned int unsigned int in i)
Definition: SDL_x11sym.h:50
SDL_RemoveTimer
#define SDL_RemoveTimer
Definition: SDL_dynapi_overrides.h:488
uintptr_t
unsigned int uintptr_t
Definition: SDL_config_windows.h:70