**废话不说了,let's go ** 示例代码建立一个最基本的SDL窗体。ios
#include <SDL.h> #include <iostream> using namespace std; int main(int argc, char** argv) { SDL_Window* pWindow = 0; SDL_Renderer *pRenderer = 0; bool bRunning = true; if (SDL_Init(SDL_INIT_EVERYTHING) < 0) { cerr << "SDL_Init fail" << endl; return EXIT_FAILURE; } pWindow = SDL_CreateWindow("Hello,SDL", SDL_WINDOWPOS_CENTERED, SDL_WINDOWPOS_CENTERED, 640, 480, SDL_WINDOW_SHOWN); if (pWindow != nullptr) { pRenderer = SDL_CreateRenderer(pWindow, -1, 0); } else return EXIT_FAILURE; SDL_SetRenderDrawColor(pRenderer, 0, 0, 0, 255); SDL_Event event; while (bRunning) { if (SDL_PollEvent(&event)) { switch (event.type) { case SDL_QUIT: bRunning = false; break; default: break; } } SDL_RenderClear(pRenderer); SDL_RenderPresent(pRenderer); } SDL_DestroyWindow(pWindow); SDL_DestroyRenderer(pRenderer); SDL_Quit(); return 0; }
int SDL_Init(Uint32 flags)
SDL_Init(SDL_INIT_VIDEO|SDL_INIT_AUDIO);
另外也能够使用SDL_WasInit 来检查子系统是否初始化成功。框架
SDL_Renderer* SDL_CreateRenderer(SDL_Window* window, int index, Uint32 flags)
index 能够理解为当前的支援渲染的显卡索引, 赋值为-1 使用第一个显卡函数
flags 有如下3个可供选择学习
SDL_RENDERER_SOFTWAREui
SDL_RENDERER_ACCELERATEDspa
SDL_RENDERER_PRESENTVSYNCcode
SDL_RENDERER_TARGETTEXTURE索引
SDL_Window ,SDL_Renderer 能够使用SDL_DestroyWindow(),SDL_DestroyRenderer()销毁图片
SDL_Event 循环it
渲染和绘制操做一般独立到单独的函数中,如
void draw (SDL_Renderder*) { //draw something... } void render( ) { SDL_RenderClear(pRenderer); draw(pRenderer); SDL_RenderPresent(pRenderer); }
本文参考Shaun Mitchell 《SDL Game Development》