Я просто следуя СВД учебник lazyfoo, и я побежал пример кода, как показано здесь:Border/Titlebar не правильно отображать в SDL OSX
#include <SDL2/SDL.h>
#include <stdio.h>
//Screen dimension constants
const int SCREEN_WIDTH = 640;
const int SCREEN_HEIGHT = 480;
int main(int argc, char* args[])
{
//The window we'll be rendering to
SDL_Window* window = NULL;
//The surface contained by the window
SDL_Surface* screenSurface = NULL;
//Initialize SDL
if(SDL_Init(SDL_INIT_VIDEO) < 0)
{
printf("Failed to initialise SDL! SDL_Error: %s\n", SDL_GetError());
}
else
{
//Create window
window = SDL_CreateWindow("SDL Tutorial", SDL_WINDOWPOS_UNDEFINED, SDL_WINDOWPOS_UNDEFINED, SCREEN_WIDTH, SCREEN_HEIGHT, SDL_WINDOW_SHOWN);
if(window == NULL)
{
printf("Failed to create window! SDL_Error: %s\n", SDL_GetError());
}
else
{
//Get window surface
screenSurface = SDL_GetWindowSurface(window);
//Fill the surface white
SDL_FillRect(screenSurface, NULL, SDL_MapRGB(screenSurface->format, 255, 0, 0));
//Update the surface
SDL_UpdateWindowSurface(window);
//Wait two seconds
SDL_Delay(2000);
}
}
//Destroy window
SDL_DestroyWindow(window);
//Quit SDL subsystems
SDL_Quit();
return 0;
}
Но по какой-то причине нет реальной границы или строки заголовка показывается, он просто отображает белый экран. Я попытался использовать SDL_SetWindowBordered, но ничего не сделал. Затем я устанавливаю цвет фона на красный, и с этого изображения вы можете видеть, что есть панель заголовка, но кнопка закрытия или свернуть не существует. Кто-нибудь знает, почему это происходит. Это только я или это проблема с Mac?
Что произойдет, если вы избавиться от 'SDL_delay'? Добавьте простой цикл событий после инициализации окна, чтобы ваше приложение не сразу закрывалось: 'bool running = true; \t while (бег) \t { \t \t SDL_Event e; \t \t в то время как (SDL_PollEvent (& е)) \t \t { \t \t \t переключатель (e.type) \t \t \t { \t \t \t \t случай SDL_Quit: \t \t \t \t \t работает = ложь; \t \t \t \t \t break; \t \t \t} \t \t} \t} ' – SingerOfTheFall
@SingerOfTheFall Да делает это работало, у вас есть объяснение, почему это происходит? – Hamish