Code: Select all
#include
int main()
{
SDL_InitSubSystem(SDL_INIT_VIDEO);
SDL_WindowFlags flags = {};
flags |= SDL_WINDOW_OPENGL;
flags |= SDL_WINDOW_RESIZABLE;
flags |= SDL_WINDOW_BORDERLESS;
SDL_Window *w = SDL_CreateWindow("", 3440, 1440, flags); // use fullscreen resolution here
SDL_GLContext wCtx = SDL_GL_CreateContext(w);
while (true) {
SDL_Event event;
while (SDL_PollEvent(&event)) { }
SDL_GL_SwapWindow(w); // commenting this line solves the issue
}
}
Der gesamte Screen -Bildschirm, der gesamte Bildschirm, der gesamte Bildschirm, der den gesamten Aufgabenbereich, der den gesamten Aufgabenbar -Bereich, den gesamten Aufgabenbereich, den gesamten Aufgabenbereich, der den gesamten Aufgabenbereich, den gesamten Aufgabenbereich, den gesamten Bildschirm, der den gesamten Aufgabenbereich erstellt. /> Alt-Tabbing funktioniert reibungslos ohne Änderungen des Anzeigemodus. Modus beim ersten Aufruf an sdl_gl_swapwindow :
Es gibt einen kurzen Bildschirmflackern oder Blanking, was auf eine Änderung des Display-Modus oder eine Übernahme von Swapchain-Übernahmen hinweist. /> < /ul>
Ich habe das Problem als Problem für SDL gemeldet, aber das Problem wurde mit der folgenden Antwort geschlossen: < /p>
Dies ist das Verhalten des OpenGL -Treibers, um die Leistung zu erhöhen, und nicht etwas SDL kann. Versucht mehrere Dinge:
Erstellen des Fensters mit etwas kleineren Abmessungen (z. B. Modus. Sdl_setwindowfulscreen (Fenster, True) Auch führt zu demselben unerwünschten exklusiven Vollbildverhalten. Sdl_gl_setswapinterval (0/1/-1) verhindern nicht Verhinderung dieses Verhaltens.SetWindowLongPtr(m_handle, GWL_STYLE, WS_OVERLAPPED | WS_CLIPCHILDREN | WS_CLIPSIBLINGS);
SetWindowLongPtr(m_handle, GWL_EXSTYLE, WS_EX_APPWINDOW);
SetWindowPos(m_handle, HWND_TOP, left, top, width, height,
SWP_FRAMECHANGED | SWP_NOOWNERZORDER | SWP_SHOWWINDOW);
< /code>
Die obige Problemumgehung ist jedoch spröde, stützt sich auf undokumentiertes Verhalten und muss-vor allem-das Fenster beim Wechsel zwischen Fenster und nicht exklusivem Vollbildmodus nachgebildet werden. /> Sogar explizite Verwendung von Win32 -API ist akzeptabel. < /p>