feat(editor): add cursor opacity and circle color controls#1778
Draft
soaapp wants to merge 1 commit intoCapSoftware:mainfrom
Draft
feat(editor): add cursor opacity and circle color controls#1778soaapp wants to merge 1 commit intoCapSoftware:mainfrom
soaapp wants to merge 1 commit intoCapSoftware:mainfrom
Conversation
Adds two configurable cursor styles to the Studio Mode editor: - Opacity slider (0-200%, default 100%) — multiplied into the existing shader uniform; affects every cursor type. - Circle Color picker (default #FFFFFF) — tints the baked Circle cursor texture; only shown when Cursor Type is Circle. Schema (CursorConfiguration) gains two fields with serde defaults so existing project files load unchanged.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
cursor_opacityshader uniform so it composes correctly with the existing idle-fade behaviour and applies to every cursor type.#FFFFFF) that tints the baked Circle cursor texture. Only rendered whenCursor TypeisCircle.CursorConfiguration(cursor_opacity: f32,circle_color: String) with#[serde(default = "...")]attributes so existing project files load unchanged.Why
Today the Circle cursor is a fixed low-opacity grayscale halo (hard-coded
fill_alpha = 0.2,border_alpha = 0.55incrates/rendering/src/layers/cursor.rs), which can be too translucent to see against many recordings. These two controls let users push visibility up (more opacity, a saturated tint) without touching defaults.Implementation notes
crates/rendering/src/layers/cursor.rs):create_circle_cursornow takes a[f32; 3]tint and bakes it into the premultiplied RGB of the texture.prev_circle_colortoCursorLayerand an invalidation check next to the existingprev_cursor_typecheck, so the texture is re-baked exactly when the color changes.cursor_opacitypath (which already drives themotion_vector_strength.wshader uniform), so the WGSL shader and pipeline layout are unchanged.apps/desktop/src/routes/editor/ConfigSidebar.tsx): two newFields placed underSizein the Cursor tab; the color picker is wrapped in<Show when={project.cursor.type === "circle"}>.Test plan
0%→ cursor disappears in the preview; back to100%restores it.200%→ cursor visibly more opaque (most obvious on the Circle type).#FFFFFF,1.0) applied via serde.Screenshots
To be added.