mirror of
https://github.com/libsdl-org/SDL.git
synced 2025-09-05 19:08:12 +00:00
Moved SDL_rand auto-initialization out of SDL_rand_r
This commit is contained in:

committed by
Sam Lantinga

parent
421326b6da
commit
f4ee59a1a2
@@ -23,15 +23,23 @@
|
||||
/* This file contains portable random functions for SDL */
|
||||
|
||||
static Uint64 SDL_rand_state;
|
||||
static SDL_bool SDL_rand_initialized = SDL_FALSE;
|
||||
|
||||
void SDL_srand(Uint64 seed)
|
||||
{
|
||||
if (!seed) {
|
||||
seed = SDL_GetPerformanceCounter();
|
||||
}
|
||||
SDL_rand_state = seed;
|
||||
SDL_rand_initialized = SDL_TRUE;
|
||||
}
|
||||
|
||||
Uint32 SDL_rand(void)
|
||||
{
|
||||
return SDL_rand_r(&SDL_rand_state);
|
||||
if(!SDL_rand_initialized) {
|
||||
SDL_srand(0);
|
||||
}
|
||||
return SDL_rand_r(&SDL_rand_state);
|
||||
}
|
||||
|
||||
/*
|
||||
@@ -62,10 +70,6 @@ Uint32 SDL_rand_r(Uint64 *state)
|
||||
return 0;
|
||||
}
|
||||
|
||||
if (!*state) {
|
||||
*state = SDL_GetPerformanceCounter();
|
||||
}
|
||||
|
||||
// Multiplier from Table 6 of
|
||||
// Steele GL, Vigna S. Computationally easy, spectrally good multipliers
|
||||
// for congruential pseudorandom number generators.
|
||||
|
Reference in New Issue
Block a user