Files
Chimera GFX release export a6037502d7
phase0-ci / build-and-audit (push) Successful in 2m14s
Publish Chimera GFX source
2026-09-03 03:27:14 +02:00

63 lines
2.9 KiB
C

/* SPDX-License-Identifier: GPL-3.0-or-later */
#include <chimera/gfx/adapters/retroarch.h>
#include <chimera/gfx/adapters/sdl2.h>
#include <stdio.h>
static int failures;
#define CHECK(expression) \
do { \
if (!(expression)) { \
(void)fprintf(stderr, "%s:%d: check failed: %s\n", __FILE__, \
__LINE__, #expression); \
failures += 1; \
} \
} while (0)
int main(void) {
chimera_gfx_config config = CHIMERA_GFX_CONFIG_INIT;
chimera_gfx_context *context = NULL;
chimera_gfx_retroarch_adapter_info retroarch =
CHIMERA_GFX_RETROARCH_ADAPTER_INFO_INIT;
chimera_gfx_sdl2_adapter_info sdl2 = CHIMERA_GFX_SDL2_ADAPTER_INFO_INIT;
CHECK(chimera_gfx_retroarch_query_scaffold(NULL) ==
CHIMERA_GFX_STATUS_INVALID_ARGUMENT);
retroarch.struct_size = sizeof(retroarch) - 1u;
CHECK(chimera_gfx_retroarch_query_scaffold(&retroarch) ==
CHIMERA_GFX_STATUS_INVALID_ARGUMENT);
retroarch = (chimera_gfx_retroarch_adapter_info)
CHIMERA_GFX_RETROARCH_ADAPTER_INFO_INIT;
CHECK(chimera_gfx_retroarch_query_scaffold(&retroarch) ==
CHIMERA_GFX_STATUS_OK);
CHECK(retroarch.supports_rgui == 1u);
CHECK(retroarch.supports_hardware_contexts == 0u);
CHECK(retroarch.accepts_software_frames == 0u);
CHECK(chimera_gfx_sdl2_query_scaffold(NULL) ==
CHIMERA_GFX_STATUS_INVALID_ARGUMENT);
sdl2.struct_size = sizeof(sdl2) - 1u;
CHECK(chimera_gfx_sdl2_query_scaffold(&sdl2) ==
CHIMERA_GFX_STATUS_INVALID_ARGUMENT);
sdl2 = (chimera_gfx_sdl2_adapter_info)CHIMERA_GFX_SDL2_ADAPTER_INFO_INIT;
CHECK(chimera_gfx_sdl2_query_scaffold(&sdl2) == CHIMERA_GFX_STATUS_OK);
CHECK(sdl2.accelerated_renderer_available == 0u);
CHECK(sdl2.software_fallback_required == 1u);
CHECK(chimera_gfx_create(&config, &context) == CHIMERA_GFX_STATUS_OK);
CHECK(chimera_gfx_retroarch_bind_scaffold(NULL, 0u) ==
CHIMERA_GFX_STATUS_INVALID_ARGUMENT);
CHECK(chimera_gfx_retroarch_bind_scaffold(context, 0u) ==
CHIMERA_GFX_STATUS_UNSUPPORTED);
CHECK(chimera_gfx_retroarch_bind_scaffold(context, 1u) ==
CHIMERA_GFX_STATUS_SAFETY_POLICY);
CHECK(chimera_gfx_sdl2_create_renderer_scaffold(NULL, 0u) ==
CHIMERA_GFX_STATUS_INVALID_ARGUMENT);
CHECK(chimera_gfx_sdl2_create_renderer_scaffold(context, 0u) ==
CHIMERA_GFX_STATUS_UNSUPPORTED);
CHECK(chimera_gfx_sdl2_create_renderer_scaffold(context, 1u) ==
CHIMERA_GFX_STATUS_SAFETY_POLICY);
CHECK(chimera_gfx_context_destroy(context) == CHIMERA_GFX_STATUS_OK);
return failures == 0 ? 0 : 1;
}