gpui & ui: Use shader for dashed dividers (#23839)
TODO: - [x] BackgroundOrientation - [x] PatternDash - [x] `pattern_horizontal_dash` & `pattern_vertical_dash` - [x] Metal dash shader - [x] Blade dash shader - [x] Update ui::Divider to use new pattern --- This PR introduces proper dashed dividers using the new `PatternDash` background shader.  Before this we were using 128 elements to create a dashed divider, which is both expensive, and would not scale beyond a certain size. This allows us to simplify the divider element as well. Changes: - Adds `BackgroundOrientation` to `gpui::color::Background` to allow specifying a direction for a pattern - Adds the PatternDash pattern variant - Updates `ui::Divider`'s dashed variants to be more efficient Misc: - Documents the `ui::Divider` component - Treat `.metal` files as `C` in the Zed project until we get some metal syntax highlighting. Release Notes: - N/A
This commit is contained in:
parent
8442e2b9d8
commit
e5943975f9
8 changed files with 210 additions and 106 deletions
|
@ -1,6 +1,7 @@
|
|||
use gpui::{
|
||||
div, linear_color_stop, linear_gradient, pattern_slash, prelude::*, px, rgb, size, App,
|
||||
AppContext, Application, Bounds, Context, Window, WindowBounds, WindowOptions,
|
||||
div, linear_color_stop, linear_gradient, pattern_horizontal_dash, pattern_slash,
|
||||
pattern_vertical_dash, prelude::*, px, rgb, size, App, AppContext, Application, Bounds,
|
||||
Context, Window, WindowBounds, WindowOptions,
|
||||
};
|
||||
|
||||
struct PatternExample;
|
||||
|
@ -19,6 +20,58 @@ impl Render for PatternExample {
|
|||
.text_xl()
|
||||
.text_color(rgb(0x000000))
|
||||
.child("Pattern Example")
|
||||
.child(
|
||||
div()
|
||||
.flex()
|
||||
.gap_4()
|
||||
.child(
|
||||
div()
|
||||
.flex()
|
||||
.flex_col()
|
||||
.gap_1()
|
||||
.child(
|
||||
div()
|
||||
.w(px(160.0))
|
||||
.h(px(1.0))
|
||||
.bg(pattern_horizontal_dash(gpui::red())),
|
||||
)
|
||||
.child(
|
||||
div()
|
||||
.w(px(160.0))
|
||||
.h(px(4.0))
|
||||
.bg(pattern_horizontal_dash(gpui::red())),
|
||||
)
|
||||
.child(
|
||||
div()
|
||||
.w(px(160.0))
|
||||
.h(px(8.0))
|
||||
.bg(pattern_horizontal_dash(gpui::red())),
|
||||
),
|
||||
)
|
||||
.child(
|
||||
div()
|
||||
.flex()
|
||||
.gap_1()
|
||||
.child(
|
||||
div()
|
||||
.w(px(1.0))
|
||||
.h(px(160.0))
|
||||
.bg(pattern_vertical_dash(gpui::blue())),
|
||||
)
|
||||
.child(
|
||||
div()
|
||||
.w(px(4.0))
|
||||
.h(px(160.0))
|
||||
.bg(pattern_vertical_dash(gpui::blue())),
|
||||
)
|
||||
.child(
|
||||
div()
|
||||
.w(px(8.0))
|
||||
.h(px(160.0))
|
||||
.bg(pattern_vertical_dash(gpui::blue())),
|
||||
),
|
||||
),
|
||||
)
|
||||
.child(
|
||||
div()
|
||||
.flex()
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue