添加头文件 #include <SDL.h>
初始化SDL
退出SDL
#include <SDL2/SDL.h>
int main(int argc, char* argv[]) {
SDL_Window *window = NULL;
SDL_Renderer *render = NULL;
SDL_Init(SDL_INIT_VIDEO | SDL_INIT_AUDIO);
SDL_Log("Hello World!");
window = SDL_CreateWindow("hello world",
SDL_WINDOWPOS_CENTERED, SDL_WINDOWPOS_CENTERED,
640, 480,
SDL_WINDOW_RESIZABLE);
if (!window) {
SDL_Log("Failed to Create Window!");
goto __EXIT;
}
render = SDL_CreateRenderer(window, -1, 0);
if (!render) {
SDL_Log("Failed to Create Render!");
goto __DWINDOW;
}
SDL_SetRenderDrawColor(render, 255, 255, 255, 255);
SDL_RenderClear(render);
// draw
SDL_SetRenderDrawColor(render, 0, 255, 0, 255);
SDL_Rect bigrect = { 0,0,100, 100 };
SDL_RenderFillRect(render, &bigrect);
SDL_RenderPresent(render);
SDL_Event windowEvent;
while(1) {
if (SDL_PollEvent(&windowEvent)) { // 对当前待处理事件进行轮询。
if (SDL_QUIT == windowEvent.type) { // 如果事件为推出SDL,结束循环。
printf("SDL quit!\n");
break;
}
}
}
// 第二种方式
int quit = 1;
do {
SDL_WaitEvent(&event);
switch(event.type) {
case SDL_QUIT:
quit = 0;
break;
default:
SDL_Log("event type is %d", event.type);
}
}while(quit);
__DWINDOW:
SDL_DestroyWindow(window);
__EXIT:
SDL_Quit();
printf("end...\n");
return 0;
}
网友评论