美文网首页
使用SDL基本步骤

使用SDL基本步骤

作者: 程序员都是傻子呀 | 来源:发表于2020-03-01 15:25 被阅读0次

    添加头文件 #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;
    }
    

    相关文章

      网友评论

          本文标题:使用SDL基本步骤

          本文链接:https://www.haomeiwen.com/subject/hacckhtx.html