如何找到专业的湛江百度SEO公司来优化福州地区的搜索引擎排名?
摘要:湛江百度seo公司,福州搜索引擎优化公司,淄博周村网站建设方案,济宁网站建设服务加载BMP 1.使用SDL_init初始化SDL库 2.使用SDL_CreateWindow创建一个窗口 3.使用SDL_GetWindowSurface获取创
湛江百度seo公司,福州搜索引擎优化公司,淄博周村网站建设方案,济宁网站建设服务加载BMP
1.使用SDL_init初始化SDL库
2.使用SDL_CreateWindow创建一个窗口
3.使用SDL_GetWindowSurface获取创建窗口的surface
4.使用SDL_LoadBMP加载一张BMP图片
5.使用SDL_BlitSurface将加载的bmp surface拷贝到窗口的surface
6.使用SDL_UpdateWindowSurface更新到窗口 …加载BMP
1.使用SDL_init初始化SDL库
2.使用SDL_CreateWindow创建一个窗口
3.使用SDL_GetWindowSurface获取创建窗口的surface
4.使用SDL_LoadBMP加载一张BMP图片
5.使用SDL_BlitSurface将加载的bmp surface拷贝到窗口的surface
6.使用SDL_UpdateWindowSurface更新到窗口
7.使用SDL_FreeSurface释放申请的空间
8.使用SDL_DestroyWindow销毁窗口
9.使用SDL_Quit释放SDL库
以下时完整代码
#include iostream
#include sdl.hconst int SCREEN_WIDTH 640;
const int SCREEN_HEIGHT 480;SDL_Window* gWindow nullptr;
SDL_Surface* gScreenSurface nullptr;
SDL_Surface* gHelloWorld nullptr;bool init()
{bool success true;if (SDL_Init(SDL_INIT_VIDEO) 0){printf(SDL could not initialize!SDL Error:%s\n, SDL_GetError());success false;}else{//create windowgWindow SDL_CreateWindow(SDL tutorial, SDL_WINDOWPOS_UNDEFINED, SDL_WINDOWPOS_UNDEFINED, SCREEN_WIDTH, SCREEN_HEIGHT, SDL_WINDOW_SHOWN);if (gWindow nullptr){printf(window could not created!SDL_Error:%s\n, SDL_GetError());success false;}else{//get window surfacegScreenSurface SDL_GetWindowSurface(gWindow);}}return success;
}bool loadMedia()
{//loading success flagbool success true;//load splash imagegHelloWorld SDL_LoadBMP(../BMP2.bmp);if (gWindow nullptr){printf(unable to load image!SDL_ERROR%s\n,SDL_GetError());success false;}return success;
}void close()
{SDL_FreeSurface(gHelloWorld);gHelloWorld NULL;SDL_DestroyWindow(gWindow);gWindow NULL;SDL_Quit();}int main(int argc, char* args[])
{if (!init()){printf(failed to initialize!\n);}else{//load mediaif (!loadMedia()){printf(failed to load media!\n);}else{SDL_BlitSurface(gHelloWorld, nullptr, gScreenSurface, nullptr);//update the surfaceSDL_UpdateWindowSurface(gWindow);SDL_Event e;bool quit false;while (quit false){while (SDL_PollEvent(e)){if (e.type SDL_QUIT)quit true;}}}}close();return 0;
} 加载PNG
由于默认的SDL库只能加载BMP格式的图片如果需要加载png等其他格式的图片需要下载一个扩展库SDL_image
这里我们下载SDL2_image-devel-2.6.3-VC.zipSDL_image 加载步骤与加载BMP步骤差不多这里需要注意以下几点
1.需要使用IMG_Init初始化iamge库
2. 使用IMG_Load加载png图片之前使用SDL_LoadBMP加载BMP
3.使用IMG_Quit释放image库
以下是完整代码
#include iostream
#include sdl.h
#include sdl_image.h
#include stringusing namespace std;const int SCREEN_WIDTH 640;
const int SCREEN_HEIGHT 480;SDL_Surface* loadSurface(std::string path);SDL_Window* gWindow nullptr;SDL_Surface* gScreenSurface nullptr;SDL_Surface* gPNGSurface nullptr;bool init()
{bool success true;//initialize SDLif (SDL_Init(SDL_INIT_VIDEO) 0){printf(SDL_ERROR:%s\n, SDL_GetError());success false;}else{//create windowgWindow SDL_CreateWindow(SDL load PNG, SDL_WINDOWPOS_UNDEFINED, SDL_WINDOWPOS_UNDEFINED, SCREEN_WIDTH, SCREEN_HEIGHT, SDL_WINDOW_SHOWN );if (gWindow nullptr){printf(SDL_ERROR:%s\n, SDL_GetError());success false;}else{//initialize PNG loadingint imgFlag IMG_INIT_PNG;if (!(IMG_Init(imgFlag) imgFlag)){printf(SDL_IMAGE could not initialize!SDL_IMAGE ERROR: %s\n, IMG_GetError());success false;}else{//get window surfacegScreenSurface SDL_GetWindowSurface(gWindow);}}}return success;
}SDL_Surface* loadSurface(string path)
{SDL_Surface* optimizedSurface nullptr;//load image at specified pathSDL_Surface* loadSurface IMG_Load(path.c_str());if (loadSurface nullptr){printf(load image error: %s\n, IMG_GetError());}else{//convert surface to screen formatoptimizedSurface SDL_ConvertSurface(loadSurface, gScreenSurface-format, 0);if (optimizedSurface nullptr){printf(unable to optimize image: %s\n, SDL_GetError());}//get rid of old loaded surfaceSDL_FreeSurface(loadSurface);}return optimizedSurface;
}bool loadMedia()
{//Loading success flagbool success true;//Load PNG surfacegPNGSurface loadSurface(../picture/loaded.png);if (gPNGSurface NULL){printf(Failed to load PNG image!\n);success false;}return success;
}void close()
{SDL_FreeSurface(gPNGSurface);gPNGSurface nullptr;SDL_DestroyWindow(gWindow);gWindow nullptr;IMG_Quit();SDL_Quit();
}int main(int argc, char* argv[])
{if (!init()){printf(Failed to initialize!\n);}else{//Load mediaif (!loadMedia()){printf(Failed to load media!\n);}else{//Main loop flagbool quit false;//Event handlerSDL_Event e;//While application is runningwhile (!quit){//Handle events on queuewhile (SDL_PollEvent(e) ! 0){//User requests quitif (e.type SDL_QUIT){quit true;}}//Apply the PNG imageSDL_BlitSurface(gPNGSurface, NULL, gScreenSurface, NULL);//Update the surfaceSDL_UpdateWindowSurface(gWindow);}}}//Free resources and close SDLclose();return 0;
}
