[英]C++ SDL2 window not opening
我編碼了這個。
#include <iostream>
#include "SDL.h"
int main(int argc , char** args)
{
SDL_Init(SDL_INIT_EVERYTHING);
SDL_Window* win = SDL_CreateWindow("my window", 100, 100, 640, 480, SDL_WINDOW_SHOWN);
if (!win)
{
std :: cout << "Failed to create a window! Error: " << SDL_GetError() << "\n";
}
SDL_Surface* winSurface = SDL_GetWindowSurface(win);
SDL_UpdateWindowSurface(win);
SDL_FillRect(winSurface, NULL, SDL_MapRGB(winSurface->format, 255, 90, 120));
SDL_DestroyWindow(win);
win = NULL;
winSurface = NULL;
return 0;
}
當我編譯它時,它會打開 window,然后立即關閉。 但控制台沒有。 這是我的控制台的屏幕截圖(也許它可以幫助解決問題?)
是否有任何解決方案可以讓 Window 不關閉?
是否有任何解決方案可以讓 Window 不關閉?
啟動一個事件處理循環並處理一些事件:
// g++ main.cpp `pkg-config --cflags --libs sdl2`
#include <SDL.h>
#include <iostream>
int main( int argc, char** argv )
{
SDL_Init(SDL_INIT_EVERYTHING);
SDL_Window* win = SDL_CreateWindow("my window", 100, 100, 640, 480, SDL_WINDOW_SHOWN);
if (!win)
{
std :: cout << "Failed to create a window! Error: " << SDL_GetError() << "\n";
}
SDL_Surface* winSurface = SDL_GetWindowSurface(win);
bool running = true;
while( running )
{
SDL_Event ev;
while( SDL_PollEvent( &ev ) )
{
if( ( SDL_QUIT == ev.type ) ||
( SDL_KEYDOWN == ev.type && SDL_SCANCODE_ESCAPE == ev.key.keysym.scancode ) )
{
running = false;
break;
}
}
SDL_FillRect(winSurface, NULL, SDL_MapRGB(winSurface->format, 255, 90, 120));
SDL_UpdateWindowSurface(win);
}
SDL_DestroyWindow(win);
SDL_Quit();
return 0;
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.