इस समारोह का कोड है:
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;
}
और SDL_GetMouse
सिर्फ स्थिर वैश्विक चर का पता देता है। इसलिए, इसके साथ असुरक्षित कुछ भी नहीं है, लेकिन कोई atomicity है।
हालांकि घटनाओं अलग संसाधित किया जाता। आप घटनाओं prcess नहीं है, तो माउस संरचना को अपडेट नहीं होता और SDL_GetMouseState
आप पुराने मान दे देंगे। प्रलेखन स्पष्ट रूप से कहा कि आप कॉल करना चाहिए SDL_PumpEvents
केवल ग्राफिक्स धागा (एक है कि ग्राफिक्स प्रणाली initialised) में।
सबसे खराब स्थिति आप से vales पढ़ रही है SDL_GetMouseState
अन्य धागा यह अद्यतन करता है। आप पुराने मूल्य, नए मूल्य, या यहां तक कि एक (नई लेकिन पुराने से y से जैसे एक्स) दो के मिश्रण पढ़ सकते हैं।