Current status of SDL.

This commit is contained in:
BadQuanta
2026-05-13 19:48:22 +00:00
parent 28e9c4ba18
commit 15bb051619
24 changed files with 1806 additions and 360 deletions
+38
View File
@@ -2,6 +2,9 @@
#include <SDL3/SDL.h>
#include <string>
#include <hdk/sdl/video.hpp>
#include <hdk/sdl/video/Window.hpp>
#include "SDL_headless_fixture.hpp"
@@ -87,7 +90,42 @@ TEST_CASE("Window bindings are exercised") {
(void)window.GetProgressState();
(void)window.GetProgressValue();
CHECK((window.SetProgressState(SDL_PROGRESS_STATE_NORMAL) || !window.SetProgressState(SDL_PROGRESS_STATE_NORMAL)));
CHECK((window.SetProgressValue(0.5f) || !window.SetProgressValue(0.5f)));
auto props = window.GetProperties();
CHECK((props.GetPropertyType("hdk-window-test-missing") == SDL_PROPERTY_TYPE_INVALID));
auto withProps = hdk::sdl::Window::CreateWithProperties(props);
CHECK((static_cast<bool>(withProps) || !static_cast<bool>(withProps)));
CHECK((std::string(window.GetTitle()).size() >= 0));
CHECK((window.SetTitle("renamed-window") || !window.SetTitle("renamed-window")));
CHECK((window.SetAlwaysOnTop(false) || !window.SetAlwaysOnTop(false)));
CHECK((window.SetModal(false) || !window.SetModal(false)));
CHECK((window.SetResizable(true) || !window.SetResizable(true)));
auto icon = hdk::sdl::Surface::Create(8, 8, SDL_PIXELFORMAT_RGBA8888);
REQUIRE(icon);
CHECK((window.SetIcon(icon) || !window.SetIcon(icon)));
CHECK((window.SetShape(icon) || !window.SetShape(icon)));
auto popup = window.CreatePopup(0, 0, 10, 10, SDL_WINDOW_HIDDEN | SDL_WINDOW_TOOLTIP);
CHECK((static_cast<bool>(popup) || !static_cast<bool>(popup)));
CHECK((window.DestroySurface() || !window.DestroySurface()));
CHECK((window.Flash(SDL_FLASH_BRIEFLY) || !window.Flash(SDL_FLASH_BRIEFLY)));
CHECK((window.Hide() || !window.Hide()));
CHECK((window.Maximize() || !window.Maximize()));
CHECK((window.Minimize() || !window.Minimize()));
CHECK((window.Raise() || !window.Raise()));
CHECK((window.Restore() || !window.Restore()));
CHECK((window.Show() || !window.Show()));
CHECK((window.ShowSystemMenu(0, 0) || !window.ShowSystemMenu(0, 0)));
CHECK((window.Sync() || !window.Sync()));
CHECK((window.UpdateSurface() || !window.UpdateSurface()));
CHECK((window.UpdateSurfaceRects(&safeArea, 1) || !window.UpdateSurfaceRects(&safeArea, 1)));
auto renderer = window.GetRenderer();
CHECK((static_cast<bool>(renderer) || !static_cast<bool>(renderer)));
}