From f7f5eaefbdc65be5f6f879f46ee2e8a4d4d6fe20 Mon Sep 17 00:00:00 2001 From: Giftzwerg02 Date: Sun, 2 Aug 2026 21:03:31 +0200 Subject: [PATCH 1/3] 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() From 102b9350afdd51336417d9ecc5128494d25a4ee1 Mon Sep 17 00:00:00 2001 From: Giftzwerg02 Date: Sun, 2 Aug 2026 21:07:58 +0200 Subject: [PATCH 2/3] Increment mouse-wheel instead of overriding to reflect --- examples/SDL3-simple-demo/main.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/examples/SDL3-simple-demo/main.c b/examples/SDL3-simple-demo/main.c index eafd803..5303438 100644 --- a/examples/SDL3-simple-demo/main.c +++ b/examples/SDL3-simple-demo/main.c @@ -161,7 +161,8 @@ 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: - state->mouseWheel = (Clay_Vector2) { event->wheel.x, event->wheel.y }; + state->mouseWheel.x = event->wheel.x; + state->mouseWheel.y = event->wheel.y; break; default: break; From d409b564fdb1cd98ec2155159421fa41d45d9f31 Mon Sep 17 00:00:00 2001 From: Giftzwerg02 Date: Sun, 2 Aug 2026 21:08:33 +0200 Subject: [PATCH 3/3] Increment mouse-wheel instead of overriding to reflect --- examples/SDL3-simple-demo/main.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/examples/SDL3-simple-demo/main.c b/examples/SDL3-simple-demo/main.c index 5303438..5a30d53 100644 --- a/examples/SDL3-simple-demo/main.c +++ b/examples/SDL3-simple-demo/main.c @@ -161,8 +161,8 @@ 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: - state->mouseWheel.x = event->wheel.x; - state->mouseWheel.y = event->wheel.y; + state->mouseWheel.x += event->wheel.x; + state->mouseWheel.y += event->wheel.y; break; default: break;