diff --git a/stepmania/src/RageDisplay.cpp b/stepmania/src/RageDisplay.cpp index 181560ef95..14e192cc20 100644 --- a/stepmania/src/RageDisplay.cpp +++ b/stepmania/src/RageDisplay.cpp @@ -633,25 +633,25 @@ bool RageDisplay::SaveScreenshot( CString sPath, GraphicsFileFormat format ) CString buf; buf.reserve( 1024*1024 ); - SDL_RWops *rw = OpenRWops( buf ); + SDL_RWops rw; + OpenRWops( &rw, &buf ); switch( format ) { case SAVE_LOSSLESS: - SDL_SaveBMP_RW( surface, rw, false ); + SDL_SaveBMP_RW( surface, &rw, false ); break; case SAVE_LOSSY_LOW_QUAL: - IMG_SaveJPG_RW( surface, rw, false ); + IMG_SaveJPG_RW( surface, &rw, false ); case SAVE_LOSSY_HIGH_QUAL: - IMG_SaveJPG_RW( surface, rw, true ); + IMG_SaveJPG_RW( surface, &rw, true ); break; default: ASSERT(0); return false; } - SDL_RWclose( rw ); - SDL_FreeRW( rw ); + SDL_RWclose( &rw ); SDL_FreeSurface( surface ); surface = NULL; diff --git a/stepmania/src/SDL_utils.cpp b/stepmania/src/SDL_utils.cpp index e3a36dfcee..888721d3cf 100644 --- a/stepmania/src/SDL_utils.cpp +++ b/stepmania/src/SDL_utils.cpp @@ -1086,15 +1086,13 @@ int RWString_Close(struct SDL_RWops *context) return 0; } -SDL_RWops *OpenRWops( CString &sBuf ) +void OpenRWops( SDL_RWops *rw, CString *sBuf ) { - SDL_RWops *rw = SDL_AllocRW(); - rw->hidden.unknown.data1 = new RWString( &sBuf ); + rw->hidden.unknown.data1 = new RWString( sBuf ); rw->seek = RWString_Seek; rw->read = RWString_Read; rw->write = RWString_Write; rw->close = RWString_Close; - return rw; } SDL_Surface *mySDL_MakeDummySurface( int height, int width ) diff --git a/stepmania/src/SDL_utils.h b/stepmania/src/SDL_utils.h index 5908f18b11..f22abcf08f 100644 --- a/stepmania/src/SDL_utils.h +++ b/stepmania/src/SDL_utils.h @@ -86,7 +86,7 @@ void ApplyHotPinkColorKey( SDL_Surface *&img ); class RageFile; void OpenRWops( SDL_RWops *rw, RageFile *f ); -SDL_RWops *OpenRWops( CString &sBuf ); +void OpenRWops( SDL_RWops *rw, CString *sBuf ); SDL_Surface *mySDL_MakeDummySurface( int height, int width ); CString mySDL_GetError();