From e80d693d85f08e5dc0e53db708de4dd2bc23a8b1 Mon Sep 17 00:00:00 2001 From: Dominic Masters Date: Sun, 19 Jul 2026 17:39:38 -0500 Subject: [PATCH] More ui optimization --- src/dusk/scene/scene.c | 8 ++++++-- src/dusk/ui/widget/uislider.c | 22 ++++++++++++---------- 2 files changed, 18 insertions(+), 12 deletions(-) diff --git a/src/dusk/scene/scene.c b/src/dusk/scene/scene.c index 86deabc1..9bc27f39 100644 --- a/src/dusk/scene/scene.c +++ b/src/dusk/scene/scene.c @@ -168,8 +168,12 @@ errorret_t sceneRender(void) { ); errorChain(shaderBind(&SHADER_UNLIT)); - errorChain(shaderSetMatrix(&SHADER_UNLIT, SHADER_UNLIT_MODEL, screenIdentity)); - errorChain(shaderSetMatrix(&SHADER_UNLIT, SHADER_UNLIT_PROJECTION, screenProj)); + errorChain(shaderSetMatrix( + &SHADER_UNLIT, SHADER_UNLIT_MODEL, screenIdentity + )); + errorChain(shaderSetMatrix( + &SHADER_UNLIT, SHADER_UNLIT_PROJECTION, screenProj + )); errorChain(shaderSetMatrix(&SHADER_UNLIT, SHADER_UNLIT_VIEW, screenView)); errorChain(displaySetState((displaystate_t){ diff --git a/src/dusk/ui/widget/uislider.c b/src/dusk/ui/widget/uislider.c index 647c5df5..ada9e6d8 100644 --- a/src/dusk/ui/widget/uislider.c +++ b/src/dusk/ui/widget/uislider.c @@ -201,10 +201,11 @@ errorret_t uiSliderDraw( int32_t stepCount = uiSliderGetStepCount(slider); if(stepCount > 0 && stepCount < UI_SLIDER_STEP_MARKERS_MAX) { + spritebatchsprite_t markers[UI_SLIDER_STEP_MARKERS_MAX]; for(int32_t i = 0; i <= stepCount; i++) { float_t markerX = trackX + UI_SLIDER_TRACK_WIDTH * (float_t)i / (float_t)stepCount; - spritebatchsprite_t markerSprite = { + markers[i] = (spritebatchsprite_t){ .min = { markerX - UI_SLIDER_STEP_MARKER_WIDTH * 0.5f, trackY - UI_SLIDER_STEP_MARKER_OVERHANG, @@ -218,16 +219,17 @@ errorret_t uiSliderDraw( .uvMin = { 0.0f, 0.0f }, .uvMax = { 1.0f, 1.0f } }; - shadermaterial_t markerMaterial = { - .unlit = { - .color = COLOR_WHITE, - .texture = &TEXTURE_WHITE - } - }; - errorChain( - spriteBatchBuffer(&markerSprite, 1, &SHADER_UNLIT, markerMaterial) - ); } + + shadermaterial_t markerMaterial = { + .unlit = { + .color = COLOR_WHITE, + .texture = &TEXTURE_WHITE + } + }; + errorChain( + spriteBatchBuffer(markers, stepCount + 1, &SHADER_UNLIT, markerMaterial) + ); } errorChain(uiWidgetLabelDraw(