A kódex ezt a funkciót:
Uint32
SDL_GetMouseState(int *x, int *y)
{
SDL_Mouse *mouse = SDL_GetMouse();
if (x) {
*x = mouse->x;
}
if (y) {
*y = mouse->y;
}
return mouse->buttonstate;
}
És SDL_GetMouse
most vissza címe statikus globális változót. Ezért nincs semmi veszélyes vele, de nincs atomicitás.
Azonban eseményt dolgoz fel külön-külön. Ha nem prcess események egér struktúra nem frissíti, és SDL_GetMouseState
kapsz elavult értékeket. Dokumentáció kifejezetten kimondja, meg kell hívni SDL_PumpEvents
csak grafikus menet (az egyik, hogy inicializált grafikus rendszer).
Legrosszabb esetben is olvasol vales származó SDL_GetMouseState
míg másik szál frissíti. Lehet olvasni a régi érték, új érték, vagy akár egy mix két (pl x új, hanem a régi y).