Skip to content
This repository has been archived by the owner on Jul 15, 2024. It is now read-only.

Bump Kurbo, Vello, and Parley #178

Merged
merged 1 commit into from
Feb 14, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
6 changes: 3 additions & 3 deletions Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -44,7 +44,7 @@ accesskit = [

[dependencies]
# Moving forward, this version should align with the kurbo version in peniko.
kurbo = "0.10.4"
kurbo = "0.11.0"

tracing = { version = "0.1.22", features = ["log"] }
lazy_static = "1.4.0"
Expand Down Expand Up @@ -148,8 +148,8 @@ static_assertions = "1.1.0"
test-log = { version = "0.2.5", features = ["trace"], default-features = false }
tracing-subscriber = { version = "0.3.2", features = ["env-filter"] }
unicode-segmentation = "1.7.0"
vello = { git = "https://github.com/linebender/vello", rev = "1c06c308b2ed1ebb858ed585cc284756325f9bb3" }
parley = { git = "https://github.com/dfrg/parley", rev = "2371bf4b702ec91edee2d58ffb2d432539580e1e" }
vello = { git = "https://github.com/linebender/vello", rev = "b1bd9e361f2944b71cef0ea8a2c71dce5182d79b" }
parley = { git = "https://github.com/dfrg/parley", rev = "1940d1ae9f2a9b44b7c18967147ffa7d345fdafd" }
pollster = "0.3.0"
wgpu = "0.18.0"

Expand Down
4 changes: 2 additions & 2 deletions examples/common/text.rs
Original file line number Diff line number Diff line change
Expand Up @@ -24,7 +24,7 @@ impl Default for ParleyBrush {

impl parley::style::Brush for ParleyBrush {}

pub fn render_text(builder: &mut SceneBuilder, transform: Affine, layout: &Layout<ParleyBrush>) {
pub fn render_text(scene: &mut Scene, transform: Affine, layout: &Layout<ParleyBrush>) {
let mut gcx = GlyphContext::new();
for line in layout.lines() {
for glyph_run in line.glyph_runs() {
Expand All @@ -44,7 +44,7 @@ pub fn render_text(builder: &mut SceneBuilder, transform: Affine, layout: &Layou
let gy = y - glyph.y;
let xform = Affine::translate((gx as f64, gy as f64))
* Affine::scale_non_uniform(1.0, -1.0);
builder.append(&fragment, Some(transform * xform));
scene.append(&fragment, Some(transform * xform));
}
x += glyph.advance;
}
Expand Down
20 changes: 12 additions & 8 deletions examples/edit_text.rs
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,7 @@ use vello::util::{RenderContext, RenderSurface};
use vello::{
kurbo::{Affine, Point, Rect},
peniko::{Brush, Color, Fill},
RenderParams, RendererOptions, Scene, SceneBuilder,
RenderParams, RendererOptions, Scene,
};
use vello::{AaSupport, Renderer};

Expand Down Expand Up @@ -229,18 +229,22 @@ impl WindowState {

fn render_anim_frame(&mut self) {
let (height, width) = self.surface_size();
let mut sb = SceneBuilder::for_scene(&mut self.scene);
self.scene.reset();
let rect =
Rect::from_origin_size(Point::new(0.0, 0.0), Size::new(height as f64, width as f64));
sb.fill(
self.scene.fill(
Fill::NonZero,
Affine::IDENTITY,
&Brush::Solid(Color::rgb8(255, 255, 255)),
None,
&rect,
);
let doc = self.document.borrow();
text::render_text(&mut sb, Affine::translate((TEXT_X, TEXT_Y)), &doc.layout);
text::render_text(
&mut self.scene,
Affine::translate((TEXT_X, TEXT_Y)),
&doc.layout,
);
if doc.selection.len() > 0 {
let selection_start_x =
parley::layout::Cursor::from_position(&doc.layout, doc.selection.min(), true)
Expand All @@ -254,7 +258,7 @@ impl WindowState {
Point::new(selection_start_x, TEXT_Y),
Point::new(selection_end_x, TEXT_Y + FONT_SIZE as f64),
);
sb.fill(
self.scene.fill(
Fill::NonZero,
Affine::IDENTITY,
&Brush::Solid(Color::rgba8(0, 0, 255, 100)),
Expand All @@ -271,7 +275,7 @@ impl WindowState {
Point::new(cursor_active_x - 1.0, TEXT_Y),
Point::new(cursor_active_x + 1.0, TEXT_Y + FONT_SIZE as f64),
);
sb.fill(
self.scene.fill(
Fill::NonZero,
Affine::IDENTITY,
&Brush::Solid(Color::BLACK),
Expand Down Expand Up @@ -301,7 +305,7 @@ impl WindowState {
TEXT_Y + FONT_SIZE as f64 + 5.0,
),
);
sb.fill(
self.scene.fill(
Fill::NonZero,
Affine::IDENTITY,
&Brush::Solid(Color::rgba8(0, 0, 255, 100)),
Expand All @@ -310,7 +314,7 @@ impl WindowState {
);
}

sb.pop_layer();
self.scene.pop_layer();
}
}

Expand Down
12 changes: 6 additions & 6 deletions examples/pen.rs
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@ use vello::util::{RenderContext, RenderSurface};
use vello::{
kurbo::{Affine, BezPath, Point, Rect, Stroke},
peniko::{Brush, Color, Fill},
RenderParams, RendererOptions, Scene, SceneBuilder,
RenderParams, RendererOptions, Scene,
};
use vello::{AaSupport, Renderer};

Expand Down Expand Up @@ -270,9 +270,9 @@ pub fn render_anim_frame(
pen_state: Option<&PenState>,
touch_state: &TouchState,
) {
let mut sb = SceneBuilder::for_scene(scene);
scene.reset();
let rect = Rect::from_origin_size(Point::new(0.0, 0.0), (5000.0, 5000.0));
sb.fill(
scene.fill(
Fill::NonZero,
Affine::IDENTITY,
&Brush::Solid(Color::rgb8(128, 128, 128)),
Expand All @@ -287,12 +287,12 @@ pub fn render_anim_frame(
(r, r * state.inclination.altitude.to_degrees() / 90.0),
state.inclination.azimuth.to_radians() + PI / 2.0,
);
sb.fill(Fill::NonZero, Affine::IDENTITY, Color::BLUE, None, &shape);
scene.fill(Fill::NonZero, Affine::IDENTITY, Color::BLUE, None, &shape);
}

for (path, color) in touch_state.points.values() {
sb.stroke(&Stroke::default(), Affine::IDENTITY, color, None, path);
scene.stroke(&Stroke::default(), Affine::IDENTITY, color, None, path);
}

sb.pop_layer();
scene.pop_layer();
}
20 changes: 10 additions & 10 deletions examples/shello.rs
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@ use vello::util::{RenderContext, RenderSurface};
use vello::{
kurbo::{Affine, PathEl, Point, Rect, Stroke},
peniko::{Brush, Color, Fill, Mix},
RenderParams, RendererOptions, Scene, SceneBuilder,
RenderParams, RendererOptions, Scene,
};
use vello::{AaSupport, Renderer};

Expand Down Expand Up @@ -218,9 +218,9 @@ impl WinHandler for WindowState {
}

pub fn render_anim_frame(scene: &mut Scene, fcx: &mut FontContext, i: u64) {
let mut sb = SceneBuilder::for_scene(scene);
scene.reset();
let rect = Rect::from_origin_size(Point::new(0.0, 0.0), (1000.0, 1000.0));
sb.fill(
scene.fill(
Fill::NonZero,
Affine::IDENTITY,
&Brush::Solid(Color::rgb8(128, 128, 128)),
Expand All @@ -247,42 +247,42 @@ pub fn render_anim_frame(scene: &mut Scene, fcx: &mut FontContext, i: u64) {
)));
let mut layout = layout_builder.build();
layout.break_all_lines(None, parley::layout::Alignment::Start);
text::render_text(&mut sb, Affine::translate((100.0, 400.0)), &layout);
text::render_text(scene, Affine::translate((100.0, 400.0)), &layout);

let th = (std::f64::consts::PI / 180.0) * (i as f64);
let center = Point::new(500.0, 500.0);
let mut p1 = center;
p1.x += 400.0 * th.cos();
p1.y += 400.0 * th.sin();
sb.stroke(
scene.stroke(
&Stroke::new(5.0),
Affine::IDENTITY,
&Brush::Solid(Color::rgb8(128, 0, 0)),
None,
&[PathEl::MoveTo(center), PathEl::LineTo(p1)],
);
sb.fill(
scene.fill(
Fill::NonZero,
Affine::translate((150.0, 150.0)) * Affine::scale(0.2),
Color::RED,
None,
&rect,
);
let alpha = (i as f64 * 0.03).sin() as f32 * 0.5 + 0.5;
sb.push_layer(Mix::Normal, alpha, Affine::IDENTITY, &rect);
sb.fill(
scene.push_layer(Mix::Normal, alpha, Affine::IDENTITY, &rect);
scene.fill(
Fill::NonZero,
Affine::translate((100.0, 100.0)) * Affine::scale(0.2),
Color::BLUE,
None,
&rect,
);
sb.fill(
scene.fill(
Fill::NonZero,
Affine::translate((200.0, 200.0)) * Affine::scale(0.2),
Color::GREEN,
None,
&rect,
);
sb.pop_layer();
scene.pop_layer();
}