(nur) gp2x lockt bei SDL_createRGBSurface()


G.o.D

Member
Joined
Jan 15, 2007
Messages
358
Mich fuxt seit Tagen ein fieser Bug. Folgende Routine verwende ich:
Code:
<i>
</i>SDL_Surface *sdlCreateSurface(int width, int height) {
   SDL_Surface *screen=SDL_GetVideoSurface();
   SDL_Surface *surface;
   surface = SDL_CreateRGBSurface(
      SDL_SWSURFACE,
      width,
      height,
      screen->format->BitsPerPixel,
      screen->format->Rmask,
      screen->format->Gmask,
      screen->format->Bmask,
      screen->format->Amask
   );
   return surface;
}

sichergestellt ist, dass das erzeugte SDL_Surface wieder korrekt freigegeben wird.

Das Ganze wird mehrmals hintereinander aufgerufen. Auf PC funktioniert alles wunderbar, aber auf dem gp2x bleibt das Ding nach einigen Aufrufen einfach haengen. Ich konnte das Ganze soweit eingrenzen, dass es wirklich IN der SDL_CreateRGBSurface routine passiert. Die Zeile davor wird noch ausgefuehrt, die danach nicht mehr.

Das schlimme ist eben, das am PC alles wunderbar funktioniert, und von der Sorte hab ich noch ein Problem, aber das konnte ich noch nicht weit genug eingrenzen :-/

Hat jemand schonmal aenliche Probleme gehabt, oder eine Idee woran das liegen kann? Wie bekomme ich eigentlich raus welche Version der SDL Libraries auf dem gp2x sind, und wie kann ich updaten. Es waere nicht das erste mal, dass ich ueber einen SDL Bug stolpere, der schon laengst gefixt ist :-(

BTW: Gibts eigentlich eine einfachere Moeglichkeit am gp2x zu debuggen als farbige Lienien hinzuschmieren?
 
Problem geloest, kam durch einen vergessenen SDL_Lock/-UnlockSurface() an voellig anderer Stelle auf ein voellig anderes Surface. Schade, dass solche Fehler immer nur auf dem gp2x auftauchen und nicht gleich auf dem PC auffallen, das erschwert das Entwickeln doch erheblich :/
 
Back
Top