diff --git a/app/backend/systemproperties.cpp b/app/backend/systemproperties.cpp index 7dd54e26..272184a5 100644 --- a/app/backend/systemproperties.cpp +++ b/app/backend/systemproperties.cpp @@ -184,21 +184,13 @@ void SystemProperties::startAsyncLoad() return; } - testWindow = SDL_CreateWindow("", 0, 0, 1280, 720, - SDL_WINDOW_HIDDEN | StreamUtils::getPlatformWindowFlags()); + testWindow = StreamUtils::createTestWindow(); if (!testWindow) { - SDL_LogWarn(SDL_LOG_CATEGORY_APPLICATION, - "Failed to create test window with platform flags: %s", - SDL_GetError()); - - testWindow = SDL_CreateWindow("", 0, 0, 1280, 720, SDL_WINDOW_HIDDEN); - if (!testWindow) { - SDL_LogError(SDL_LOG_CATEGORY_APPLICATION, - "Failed to create window for hardware decode test: %s", - SDL_GetError()); - SDL_QuitSubSystem(SDL_INIT_VIDEO); - return; - } + SDL_LogError(SDL_LOG_CATEGORY_APPLICATION, + "Failed to create window for hardware decode test: %s", + SDL_GetError()); + SDL_QuitSubSystem(SDL_INIT_VIDEO); + return; } // Update display related attributes (max FPS, native resolution, etc). diff --git a/app/streaming/session.cpp b/app/streaming/session.cpp index 4952b600..d2936991 100644 --- a/app/streaming/session.cpp +++ b/app/streaming/session.cpp @@ -640,21 +640,13 @@ bool Session::initialize(QQuickWindow* qtWindow) getWindowDimensions(x, y, width, height); // Create a hidden window to use for decoder initialization tests - SDL_Window* testWindow = SDL_CreateWindow("", x, y, width, height, - SDL_WINDOW_HIDDEN | StreamUtils::getPlatformWindowFlags()); + SDL_Window* testWindow = StreamUtils::createTestWindow(); if (!testWindow) { - SDL_LogWarn(SDL_LOG_CATEGORY_APPLICATION, - "Failed to create test window with platform flags: %s", - SDL_GetError()); - - testWindow = SDL_CreateWindow("", x, y, width, height, SDL_WINDOW_HIDDEN); - if (!testWindow) { - SDL_LogError(SDL_LOG_CATEGORY_APPLICATION, - "Failed to create window for hardware decode test: %s", - SDL_GetError()); - SDL_QuitSubSystem(SDL_INIT_VIDEO); - return false; - } + SDL_LogError(SDL_LOG_CATEGORY_APPLICATION, + "Failed to create window for hardware decode test: %s", + SDL_GetError()); + SDL_QuitSubSystem(SDL_INIT_VIDEO); + return false; } qInfo() << "Server GPU:" << m_Computer->gpuModel; diff --git a/app/streaming/streamutils.cpp b/app/streaming/streamutils.cpp index 651ed4c3..b8ca4aef 100644 --- a/app/streaming/streamutils.cpp +++ b/app/streaming/streamutils.cpp @@ -84,6 +84,26 @@ Uint32 StreamUtils::getPlatformWindowFlags() #endif } +SDL_Window* StreamUtils::createTestWindow() +{ + SDL_Window* testWindow; + + testWindow = SDL_CreateWindow("", 0, 0, 1280, 720, + SDL_WINDOW_HIDDEN | StreamUtils::getPlatformWindowFlags()); + if (!testWindow) { + SDL_LogWarn(SDL_LOG_CATEGORY_APPLICATION, + "Failed to create test window with platform flags: %s", + SDL_GetError()); + + testWindow = SDL_CreateWindow("", 0, 0, 1280, 720, SDL_WINDOW_HIDDEN); + if (!testWindow) { + return nullptr; + } + } + + return testWindow; +} + void StreamUtils::scaleSourceToDestinationSurface(SDL_Rect* src, SDL_Rect* dst) { int dstH = SDL_ceilf((float)dst->w * src->h / src->w); diff --git a/app/streaming/streamutils.h b/app/streaming/streamutils.h index 63ea7e61..3e62175e 100644 --- a/app/streaming/streamutils.h +++ b/app/streaming/streamutils.h @@ -8,6 +8,9 @@ public: static Uint32 getPlatformWindowFlags(); + static + SDL_Window* createTestWindow(); + static void scaleSourceToDestinationSurface(SDL_Rect* src, SDL_Rect* dst);