From f7f5eaefbdc65be5f6f879f46ee2e8a4d4d6fe20 Mon Sep 17 00:00:00 2001 From: Giftzwerg02 Date: Sun, 2 Aug 2026 21:03:31 +0200 Subject: [PATCH] Move Clay_UpdateScrollContainers call to frame-rendering loop --- examples/SDL3-simple-demo/main.c | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/examples/SDL3-simple-demo/main.c b/examples/SDL3-simple-demo/main.c index c787db3..eafd803 100644 --- a/examples/SDL3-simple-demo/main.c +++ b/examples/SDL3-simple-demo/main.c @@ -21,6 +21,8 @@ typedef struct app_state { SDL_Window *window; Clay_SDL3RendererData rendererData; ClayVideoDemo_Data demoData; + + Clay_Vector2 mouseWheel; } AppState; SDL_Texture *sample_image; @@ -72,7 +74,7 @@ Clay_RenderCommandArray ClayImageSample_CreateLayout() { }); } - return Clay_EndLayout(); + return Clay_EndLayout(0.01); } @@ -143,6 +145,7 @@ SDL_AppResult SDL_AppInit(void **appstate, int argc, char *argv[]) SDL_AppResult SDL_AppEvent(void *appstate, SDL_Event *event) { + AppState *state = appstate; SDL_AppResult ret_val = SDL_APP_CONTINUE; switch (event->type) { @@ -158,7 +161,7 @@ SDL_AppResult SDL_AppEvent(void *appstate, SDL_Event *event) Clay_SetLayoutDimensions((Clay_Dimensions) { (float) event->window.data1, (float) event->window.data2 }); break; case SDL_EVENT_MOUSE_WHEEL: - Clay_UpdateScrollContainers(true, (Clay_Vector2) { event->wheel.x, event->wheel.y }, 0.01f); + state->mouseWheel = (Clay_Vector2) { event->wheel.x, event->wheel.y }; break; default: break; @@ -180,6 +183,9 @@ SDL_AppResult SDL_AppIterate(void *appstate) buttons & SDL_BUTTON_LMASK ); + Clay_UpdateScrollContainers(true, state->mouseWheel, 0.01f); + state->mouseWheel = (Clay_Vector2){ 0, 0 }; + Clay_RenderCommandArray render_commands = (show_demo ? ClayVideoDemo_CreateLayout(&state->demoData) : ClayImageSample_CreateLayout()