来源:
http://adolfans.github.io/sdltutorialcn/ (中文教程)
http://www.willusher.io/pages/sdl2/ (英文教程)
环境:SDL2 + VC++2015
下面的代码将打开一个窗口显示hello.bmp
1 #include2 #include 3 4 int main(int argc, char** argv) 5 { 6 //初始化SDL 7 if (SDL_Init(SDL_INIT_VIDEO) != 0) 8 { 9 std::cout << "SDL_Init Error: " << SDL_GetError() << std::endl;10 return 1;11 }12 13 //创建窗口14 SDL_Window *win = nullptr;15 win = SDL_CreateWindow("Hello World!",16 SDL_WINDOWPOS_CENTERED, SDL_WINDOWPOS_CENTERED,17 640, 480, SDL_WINDOW_SHOWN);18 if (win == nullptr)19 {20 std::cout << SDL_GetError() << std::endl;21 return 1;22 }23 24 //创建渲染器25 SDL_Renderer *ren = nullptr;26 ren = SDL_CreateRenderer(win, -1,27 SDL_RENDERER_ACCELERATED | SDL_RENDERER_PRESENTVSYNC);28 if (ren == nullptr)29 {30 std::cout << SDL_GetError() << std::endl;31 return 1;32 }33 34 //创建表面35 SDL_Surface *bmp = nullptr;36 bmp = SDL_LoadBMP("hello.bmp");37 if (bmp == nullptr) {38 std::cout << SDL_GetError() << std::endl;39 return 1;40 }41 42 //创建材质43 SDL_Texture *tex = nullptr;44 tex = SDL_CreateTextureFromSurface(ren, bmp);45 SDL_FreeSurface(bmp);46 47 //清空渲染器48 SDL_RenderClear(ren);49 //将材质复制到渲染器50 SDL_RenderCopy(ren, tex, NULL, NULL);51 //呈现渲染器52 SDL_RenderPresent(ren);53 //窗口延时54 SDL_Delay(2000);55 56 //释放资源57 SDL_DestroyTexture(tex);58 SDL_DestroyRenderer(ren);59 SDL_DestroyWindow(win);60 //退出SDL61 SDL_Quit();62 63 return 0;64 }