什么 ? SDL不会打开窗口?

时间:2016-09-17 22:14:32

标签: macos sdl

#include <iostream>
#include <SDL2/sdl.h>

int main(int argc, char * argv[]) {
    // insert code here...
    std::cout << "Hello, World!\n";
    SDL_Init(SDL_INIT_VIDEO);
    SDL_Window *window = SDL_CreateWindow("Fen", 640, 480, 640, 480, SDL_WINDOW_SHOWN);
    std::cout << SDL_GetError();
    SDL_Delay(3000);
    return 0;
}

为什么我没有开窗户?它很奇怪.... 构建正常,但没有打开窗口

有关信息,我使用的是Mac

1 个答案:

答案 0 :(得分:0)

实际上,您的窗口已创建。您可以在OS X dock中看到cmd应用程序图标。

您无法获得正面反馈的真正问题是此窗口为空并且不显示任何内容。以下代码将填充为白色。

SDL_Init(SDL_INIT_VIDEO);
SDL_Window *window = SDL_CreateWindow("Fen", 640, 480, 640, 480, SDL_WINDOW_SHOWN);

auto screenSurface = SDL_GetWindowSurface( window );

//Fill the surface white
SDL_FillRect( screenSurface, NULL, SDL_MapRGB( screenSurface->format, 0xFF, 0xFF, 0xFF ) );

//Update the surface
SDL_UpdateWindowSurface( window );

SDL_Delay(3000);

//Destroy window
SDL_DestroyWindow( window );

//Quit SDL subsystems
SDL_Quit();