Я пытаюсь настроить изменение размера окна xdg_toplevel в RetroArch, но после последнего «else» происходит сбой toplevel
static void handle_toplevel_config(void *data, struct xdg_toplevel *toplevel,
int32_t width, int32_t height, struct wl_array *states)
{
gfx_ctx_wayland_data_t *wl = (gfx_ctx_wayland_data_t*)data;
/* TODO: implement resizing */
printf("Configure event got, width: %d, height: %d\n", width, height);
wl->fullscreen = false;
wl->maximized = wl->resize = false;
enum xdg_toplevel_state *state;
wl_array_for_each(state, states) {
switch (*state) {
case XDG_TOPLEVEL_STATE_FULLSCREEN:
wl->fullscreen = true;
break;
case XDG_TOPLEVEL_STATE_MAXIMIZED:
printf("Surface state: XDG_SURFACE_STATE_MAXIMIZED\n");
wl->maximized = true;
break;
case XDG_TOPLEVEL_STATE_RESIZING:
printf("Surface state: XDG_SURFACE_STATE_RESIZING\n");
wl->resize = true;
break;
case XDG_TOPLEVEL_STATE_ACTIVATED:
printf("Surface state: XDG_SURFACE_STATE_ACTIVATED\n");
wl->activated = true;
break;
}
}
if (width > 0 && height > 0) {
if (!wl->fullscreen) {
wl->prev_width = width;
wl->prev_height = height;
wl->width = width;
wl->height = height;
}
}
else {
wl->width = wl->prev_width;
wl->height = wl->prev_height;
}
wl->configured = false;
}
[WARN] [stb] Слишком большой атлас шрифтов: 2457×2457 [ERROR] Не удалось создать
рендеринг серверной части: stb. [INFO] [Font]: Использование рендеринга шрифтов:
битовая карта. [WARN] [stb] Слишком большой атлас шрифтов: 2457×2457 [ERROR] Не удалось
создать рендеринг серверной части: [INFO] [Font]: использование рендеринга шрифтов
бэкэнд: растровое изображение.
Без последнего блока else он работает отлично.
Задача ещё не решена.
Других решений пока нет …