
I'm taking a page from Dolphin's book, and including copies of each dependency's source code. This combines the ease of use of including pre-built libraries instead of needing to navigate a package manager - as is (or was) the case for MSVC - with the portability of using packages. Granted, this method's more of a jack of all trades, master of none, since it's *less* user-friendly than prebuilt packages (compilation times), and you don't get the per-distro compatibility fixes you'd get from a package manager. You can still use system libs if you want. In fact, it's still the default behaviour: compiling the libs manually is just a fallback. I'll add an option to force-enable this soon, however, since it's a nicer way to produce static MSYS2 builds than the hackish nightmare that I was using before. Not to mention, having my own copy of the sources means I can provide my own fixes and tweaks your package manager may not. For example, I can combine MSYS2's FreeType subpixel rendering with vcpkg's fix for SDL2 exporting its symbols in static builds.
61 lines
1.5 KiB
C
61 lines
1.5 KiB
C
/**
|
|
* SysWM test suite
|
|
*/
|
|
|
|
#include <stdio.h>
|
|
|
|
#include "SDL.h"
|
|
#include "SDL_syswm.h"
|
|
#include "SDL_test.h"
|
|
|
|
/* Test case functions */
|
|
|
|
/**
|
|
* @brief Call to SDL_GetWindowWMInfo
|
|
*/
|
|
int
|
|
syswm_getWindowWMInfo(void *arg)
|
|
{
|
|
SDL_bool result;
|
|
SDL_Window *window;
|
|
SDL_SysWMinfo info;
|
|
|
|
window = SDL_CreateWindow("", 0, 0, 0, 0, SDL_WINDOW_HIDDEN);
|
|
SDLTest_AssertPass("Call to SDL_CreateWindow()");
|
|
SDLTest_AssertCheck(window != NULL, "Check that value returned from SDL_CreateWindow is not NULL");
|
|
if (window == NULL) {
|
|
return TEST_ABORTED;
|
|
}
|
|
|
|
/* Initialize info structure with SDL version info */
|
|
SDL_VERSION(&info.version);
|
|
|
|
/* Make call */
|
|
result = SDL_GetWindowWMInfo(window, &info);
|
|
SDLTest_AssertPass("Call to SDL_GetWindowWMInfo()");
|
|
SDLTest_Log((result == SDL_TRUE) ? "Got window information" : "Couldn't get window information");
|
|
|
|
SDL_DestroyWindow(window);
|
|
SDLTest_AssertPass("Call to SDL_DestroyWindow()");
|
|
|
|
return TEST_COMPLETED;
|
|
}
|
|
|
|
/* ================= Test References ================== */
|
|
|
|
/* SysWM test cases */
|
|
static const SDLTest_TestCaseReference syswmTest1 =
|
|
{ (SDLTest_TestCaseFp)syswm_getWindowWMInfo, "syswm_getWindowWMInfo", "Call to SDL_GetWindowWMInfo", TEST_ENABLED };
|
|
|
|
/* Sequence of SysWM test cases */
|
|
static const SDLTest_TestCaseReference *syswmTests[] = {
|
|
&syswmTest1, NULL
|
|
};
|
|
|
|
/* SysWM test suite (global) */
|
|
SDLTest_TestSuiteReference syswmTestSuite = {
|
|
"SysWM",
|
|
NULL,
|
|
syswmTests,
|
|
NULL
|
|
};
|