loadSurface
这是SDL2作者的官方demo中所制作出的一个函数,具体如下:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32
| SDL_Surface* loadSurface( std::string path ) {
SDL_Surface* optimizedSurface = NULL;
SDL_Surface* loadedSurface = IMG_Load( path.c_str() );
if( loadedSurface == NULL ) { std::cout << "Unable to load image %s! SDL_image Error: " << path.c_str() << IMG_GetError() << std::endl; } else {
optimizedSurface = SDL_ConvertSurface( loadedSurface, gScreenSurface->format, 0 );
if( optimizedSurface == NULL ) { std::cout << "Unable to optimize image %s! SDL Error: " << path.c_str() << SDL_GetError() << std::endl; }
SDL_FreeSurface( loadedSurface ); }
return optimizedSurface; }
|
这个函数十分简单,主要进行的操作就是两步
第一步,loadedSurface读取图像
SDL_Surface* loadedSurface = IMG_Load( path.c_str() );
第二步,SDL_ConvertSurface将图像输出到表面。
optimizedSurface = SDL_ConvertSurface( loadedSurface, gScreenSurface->format, 0 );