This commit is contained in:
@@ -0,0 +1,11 @@
|
||||
# RetroArch adapter boundary
|
||||
|
||||
The compiled scaffold exposes a dependency-free query contract. It reports
|
||||
RGUI and SDL software fallback as the intended integration path, but reports
|
||||
software-frame binding not yet implemented and hardware contexts unavailable.
|
||||
Every hardware-context request returns `SAFETY_POLICY`.
|
||||
|
||||
The future driver lifecycle is: initialize a `chimera_gfx_context`, create one
|
||||
surface, create/reuse textures for software core frames, upload a frame, present
|
||||
through the selected backend, then destroy texture, surface, and context in
|
||||
that order. No RetroArch private type or header enters the public library API.
|
||||
@@ -0,0 +1,28 @@
|
||||
/* SPDX-License-Identifier: GPL-3.0-or-later */
|
||||
#include <chimera/gfx/adapters/retroarch.h>
|
||||
|
||||
chimera_gfx_status chimera_gfx_retroarch_query_scaffold(
|
||||
chimera_gfx_retroarch_adapter_info *out_info) {
|
||||
if (out_info == NULL || out_info->struct_size < sizeof(*out_info)) {
|
||||
return CHIMERA_GFX_STATUS_INVALID_ARGUMENT;
|
||||
}
|
||||
out_info->struct_size = sizeof(*out_info);
|
||||
out_info->api_version = CHIMERA_GFX_API_VERSION;
|
||||
out_info->accepts_software_frames = 0u;
|
||||
out_info->supports_hardware_contexts = 0u;
|
||||
out_info->supports_rgui = 1u;
|
||||
out_info->has_sdl_software_fallback = 1u;
|
||||
return CHIMERA_GFX_STATUS_OK;
|
||||
}
|
||||
|
||||
chimera_gfx_status
|
||||
chimera_gfx_retroarch_bind_scaffold(chimera_gfx_context *context,
|
||||
uint32_t request_hardware_context) {
|
||||
if (context == NULL) {
|
||||
return CHIMERA_GFX_STATUS_INVALID_ARGUMENT;
|
||||
}
|
||||
if (request_hardware_context != 0u) {
|
||||
return CHIMERA_GFX_STATUS_SAFETY_POLICY;
|
||||
}
|
||||
return CHIMERA_GFX_STATUS_UNSUPPORTED;
|
||||
}
|
||||
@@ -0,0 +1,11 @@
|
||||
# SDL2 renderer adapter boundary
|
||||
|
||||
The compiled scaffold reports that no accelerated renderer exists and that the
|
||||
current PS5 window, VideoOut, input, and audio facilities must remain owned by
|
||||
SDL. Acceleration requests return `SAFETY_POLICY`; non-accelerated creation is
|
||||
`UNSUPPORTED` until the real adapter phase.
|
||||
|
||||
The future renderer will translate SDL textures and presents to the stable
|
||||
`libchimera-gfx` resource lifecycle without replacing SDL's platform backends.
|
||||
The Phase-1 clear-frame sample is evidence for the existing SDL VideoOut route,
|
||||
not an accelerated renderer implementation.
|
||||
@@ -0,0 +1,28 @@
|
||||
/* SPDX-License-Identifier: GPL-3.0-or-later */
|
||||
#include <chimera/gfx/adapters/sdl2.h>
|
||||
|
||||
chimera_gfx_status
|
||||
chimera_gfx_sdl2_query_scaffold(chimera_gfx_sdl2_adapter_info *out_info) {
|
||||
if (out_info == NULL || out_info->struct_size < sizeof(*out_info)) {
|
||||
return CHIMERA_GFX_STATUS_INVALID_ARGUMENT;
|
||||
}
|
||||
out_info->struct_size = sizeof(*out_info);
|
||||
out_info->api_version = CHIMERA_GFX_API_VERSION;
|
||||
out_info->accelerated_renderer_available = 0u;
|
||||
out_info->reuses_ps5_window_backend = 1u;
|
||||
out_info->reuses_ps5_input_audio = 1u;
|
||||
out_info->software_fallback_required = 1u;
|
||||
return CHIMERA_GFX_STATUS_OK;
|
||||
}
|
||||
|
||||
chimera_gfx_status
|
||||
chimera_gfx_sdl2_create_renderer_scaffold(chimera_gfx_context *context,
|
||||
uint32_t request_acceleration) {
|
||||
if (context == NULL) {
|
||||
return CHIMERA_GFX_STATUS_INVALID_ARGUMENT;
|
||||
}
|
||||
if (request_acceleration != 0u) {
|
||||
return CHIMERA_GFX_STATUS_SAFETY_POLICY;
|
||||
}
|
||||
return CHIMERA_GFX_STATUS_UNSUPPORTED;
|
||||
}
|
||||
Reference in New Issue
Block a user