18-05-2007, 09:41
|
|
|
|
חבר מתאריך: 09.04.02
הודעות: 8,000
|
|
יש דרך להעביר ל-callback של SDL_AddTimer יותר ממצביע אחד?
במהלך כתיבת תוכנה נתלתי בצורך לשנות משתנה מסויים (משתנה שמכיל צבע לצורך העניין) מתוך callback של טיימר. הבעיה היא שהפונקציה ש-"ממפה" מספרים לצבע צריכה לקבל את פורמט ה-Surface, ולכן נאלצתי להפוך את המצביע ל-Surface למשתנה גלובלי.
הקריאה ל-SDL_AddTimer:
קוד PHP:
SDL_AddTimer(1000, (SDL_NewTimerCallback) ColorTimerCallback, ¤tColor);
פונקציית ה-callback:
קוד PHP:
unsigned long int ColorTimerCallback(unsigned long int interval, unsigned long int * color)
{
*color = SDL_MapRGB(screen->format, 0x00, 0xff, 0x00);
return 0;
}
קיימת דרך לוותר על המשתנה הגלובלי ועדיין לאפשר שינוי צבע מתוך הפונקציה?
תודה מראש
|