Consolidate test window creation code

This commit is contained in:
Cameron Gutman
2026-04-09 21:43:29 -05:00
parent 94d47e95fe
commit 1fc1122c65
4 changed files with 35 additions and 28 deletions

View File

@@ -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).

View File

@@ -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;

View File

@@ -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);

View File

@@ -8,6 +8,9 @@ public:
static
Uint32 getPlatformWindowFlags();
static
SDL_Window* createTestWindow();
static
void scaleSourceToDestinationSurface(SDL_Rect* src, SDL_Rect* dst);