学习SDL,看官方的例子很多,网上其他的人例子总有一点残缺,学习成本较高,比如显示窗口就单纯的显示窗口,如果你把消息循环也放进去,理解起来程序并不复杂,而且瞬间就提高了一个档次。
#include "SDL.h"
#include <iostream>
#pragma comment(lib, "./SDL2.0.4/lib/x86/SDL2.lib")
int _tmain(int argc, _TCHAR* argv[])
{
SDL_Window *pWindow = nullptr;
SDL_Renderer*pRenderer = nullptr;
if (SDL_Init(SDL_INIT_EVERYTHING) < 0)
{
std::cout << "SDL initialize fail: " << SDL_GetError() << std::endl;
return -1;
}
pWindow = SDL_CreateWindow("SDL", SDL_WINDOWPOS_CENTERED, SDL_WINDOWPOS_CENTERED,
640, 480,
SDL_WINDOW_SHOWN);
if (NULL == pWindow)
{
std::cout << "Create window fail : " << SDL_GetError() << std::endl;
}
pRenderer = SDL_CreateRenderer(pWindow, -1, 0);
SDL_SetRenderDrawColor(pRenderer, 0, 0xaa, 0xaa, 0xaa);
SDL_RenderClear(pRenderer);
SDL_RenderPresent(pRenderer);
//消息循环
SDL_Event sldEvent;
bool bQuit = false;
while (!bQuit)
{
while (SDL_PollEvent(&sldEvent))
{
switch (sldEvent.type)
{
case SDL_QUIT:
bQuit = true;
break;
}
}
}
return 0;
}
SDL不但做了视频渲染,还添加了事件循环,不错。
本例子基于 SDL2.0.4 + VS2013
git源码下载:https://github.com/Qyee/SDL-window