diff --git a/demo3/src/main.rs b/demo3/src/main.rs index 7195f9a9..5e26c630 100644 --- a/demo3/src/main.rs +++ b/demo3/src/main.rs @@ -11,8 +11,8 @@ use clap::{App, Arg}; use euclid::{Point2D, Rect, Size2D}; use jemallocator; -use pathfinder_geometry::point::Point3DF32; -use pathfinder_geometry::transform3d::{Perspective, Transform3DF32}; +use pathfinder_geometry::basic::point::Point3DF32; +use pathfinder_geometry::basic::transform3d::{Perspective, Transform3DF32}; use pathfinder_gl::renderer::Renderer; use pathfinder_renderer::builder::SceneBuilder; use pathfinder_renderer::gpu_data::BuiltScene; diff --git a/geometry/src/line_segment.rs b/geometry/src/basic/line_segment.rs similarity index 98% rename from geometry/src/line_segment.rs rename to geometry/src/basic/line_segment.rs index 0f91c50c..04e8cf89 100644 --- a/geometry/src/line_segment.rs +++ b/geometry/src/basic/line_segment.rs @@ -1,4 +1,4 @@ -// pathfinder/geometry/src/line_segment.rs +// pathfinder/geometry/src/basic/line_segment.rs // // Copyright © 2019 The Pathfinder Project Developers. // @@ -10,7 +10,7 @@ //! Line segment types, optimized with SIMD. -use crate::point::Point2DF32; +use crate::basic::point::Point2DF32; use crate::util; use pathfinder_simd::default::F32x4; use std::ops::Sub; diff --git a/geometry/src/basic/mod.rs b/geometry/src/basic/mod.rs new file mode 100644 index 00000000..aca609b0 --- /dev/null +++ b/geometry/src/basic/mod.rs @@ -0,0 +1,16 @@ +// pathfinder/geometry/src/basic/mod.rs +// +// Copyright © 2019 The Pathfinder Project Developers. +// +// Licensed under the Apache License, Version 2.0 or the MIT license +// , at your +// option. This file may not be copied, modified, or distributed +// except according to those terms. + +//! Basic geometry and linear algebra primitives, optimized with SIMD. + +pub mod line_segment; +pub mod point; +pub mod transform2d; +pub mod transform3d; diff --git a/geometry/src/point.rs b/geometry/src/basic/point.rs similarity index 99% rename from geometry/src/point.rs rename to geometry/src/basic/point.rs index 76cc4d92..33e348e3 100644 --- a/geometry/src/point.rs +++ b/geometry/src/basic/point.rs @@ -1,4 +1,4 @@ -// pathfinder/geometry/src/point.rs +// pathfinder/geometry/src/basic/point.rs // // Copyright © 2019 The Pathfinder Project Developers. // diff --git a/geometry/src/transform.rs b/geometry/src/basic/transform2d.rs similarity index 98% rename from geometry/src/transform.rs rename to geometry/src/basic/transform2d.rs index 2471669a..8926c756 100644 --- a/geometry/src/transform.rs +++ b/geometry/src/basic/transform2d.rs @@ -1,4 +1,4 @@ -// pathfinder/geometry/src/transform.rs +// pathfinder/geometry/src/basic/transform2d.rs // // Copyright © 2019 The Pathfinder Project Developers. // @@ -8,11 +8,11 @@ // option. This file may not be copied, modified, or distributed // except according to those terms. -//! Applies a transform to paths. +//! 2D affine transforms. -use crate::point::Point2DF32; +use crate::basic::point::Point2DF32; +use crate::basic::transform3d::Transform3DF32; use crate::segment::Segment; -use crate::transform3d::Transform3DF32; use euclid::{Point2D, Rect, Size2D, Transform2D}; use lyon_path::PathEvent; use pathfinder_simd::default::F32x4; diff --git a/geometry/src/transform3d.rs b/geometry/src/basic/transform3d.rs similarity index 98% rename from geometry/src/transform3d.rs rename to geometry/src/basic/transform3d.rs index 9dab85af..1455bcd3 100644 --- a/geometry/src/transform3d.rs +++ b/geometry/src/basic/transform3d.rs @@ -1,4 +1,4 @@ -// pathfinder/geometry/src/transform3d.rs +// pathfinder/geometry/src/basic/transform3d.rs // // Copyright © 2019 The Pathfinder Project Developers. // @@ -10,9 +10,9 @@ //! 3D transforms that can be applied to paths. -use crate::point::{Point2DF32, Point3DF32}; +use crate::basic::point::{Point2DF32, Point3DF32}; +use crate::basic::transform2d::Matrix2x2F32; use crate::segment::Segment; -use crate::transform::Matrix2x2F32; use euclid::{Point2D, Rect, Size2D}; use pathfinder_simd::default::F32x4; use std::ops::{Add, Neg}; @@ -327,8 +327,8 @@ where #[cfg(test)] mod test { - use crate::point::Point3DF32; - use crate::transform3d::Transform3DF32; + use crate::basic::point::Point3DF32; + use crate::basic::transform3d::Transform3DF32; #[test] fn test_post_mul() { diff --git a/geometry/src/clip.rs b/geometry/src/clip.rs index 2ed9f042..00197088 100644 --- a/geometry/src/clip.rs +++ b/geometry/src/clip.rs @@ -8,9 +8,9 @@ // option. This file may not be copied, modified, or distributed // except according to those terms. -use crate::line_segment::LineSegmentF32; +use crate::basic::line_segment::LineSegmentF32; +use crate::basic::point::{Point2DF32, Point3DF32}; use crate::outline::{Contour, PointFlags}; -use crate::point::{Point2DF32, Point3DF32}; use crate::segment::{CubicSegment, Segment}; use crate::util::lerp; use arrayvec::ArrayVec; diff --git a/geometry/src/lib.rs b/geometry/src/lib.rs index 9852e0c2..b70e135b 100644 --- a/geometry/src/lib.rs +++ b/geometry/src/lib.rs @@ -15,17 +15,14 @@ #[macro_use] extern crate bitflags; +pub mod basic; pub mod clip; pub mod cubic_to_quadratic; -pub mod line_segment; pub mod monotonic; pub mod normals; pub mod orientation; pub mod outline; -pub mod point; pub mod segment; pub mod segments; pub mod stroke; -pub mod transform; -pub mod transform3d; pub mod util; diff --git a/geometry/src/outline.rs b/geometry/src/outline.rs index bfaabe5b..e1c22ff6 100644 --- a/geometry/src/outline.rs +++ b/geometry/src/outline.rs @@ -10,14 +10,13 @@ //! A compressed in-memory representation of paths. +use crate::basic::line_segment::LineSegmentF32; +use crate::basic::point::Point2DF32; +use crate::basic::transform2d::Transform2DF32; +use crate::basic::transform3d::Perspective; use crate::clip::{ContourPolygonClipper, ContourRectClipper}; -use crate::line_segment::LineSegmentF32; use crate::monotonic::MonotonicConversionIter; -use crate::point::Point2DF32; use crate::segment::{Segment, SegmentFlags, SegmentKind}; -use crate::transform3d::Perspective; -use crate::transform::Transform2DF32; -use crate::util; use euclid::{Point2D, Rect, Size2D}; use std::fmt::{self, Debug, Formatter}; use std::mem; diff --git a/geometry/src/segment.rs b/geometry/src/segment.rs index 77fb431f..b7805df7 100644 --- a/geometry/src/segment.rs +++ b/geometry/src/segment.rs @@ -10,8 +10,8 @@ //! Line or curve segments, optimized with SIMD. -use crate::line_segment::LineSegmentF32; -use crate::point::Point2DF32; +use crate::basic::line_segment::LineSegmentF32; +use crate::basic::point::Point2DF32; use lyon_path::PathEvent; use pathfinder_simd::default::F32x4; diff --git a/renderer/src/gpu_data.rs b/renderer/src/gpu_data.rs index 3efec287..a3491f5b 100644 --- a/renderer/src/gpu_data.rs +++ b/renderer/src/gpu_data.rs @@ -14,8 +14,8 @@ use crate::paint::{ObjectShader, ShaderId}; use crate::tiles::{self, TILE_HEIGHT, TILE_WIDTH}; use euclid::Rect; use fixedbitset::FixedBitSet; -use pathfinder_geometry::line_segment::{LineSegmentF32, LineSegmentU4, LineSegmentU8}; -use pathfinder_geometry::point::Point2DF32; +use pathfinder_geometry::basic::line_segment::{LineSegmentF32, LineSegmentU4, LineSegmentU8}; +use pathfinder_geometry::basic::point::Point2DF32; use pathfinder_geometry::util; use pathfinder_simd::default::{F32x4, I32x4}; diff --git a/renderer/src/scene.rs b/renderer/src/scene.rs index 7b165ae2..5b43d38f 100644 --- a/renderer/src/scene.rs +++ b/renderer/src/scene.rs @@ -16,11 +16,11 @@ use crate::tiles::Tiler; use crate::z_buffer::ZBuffer; use euclid::Rect; use hashbrown::HashMap; +use pathfinder_geometry::basic::point::{Point2DF32, Point3DF32}; +use pathfinder_geometry::basic::transform2d::Transform2DF32; +use pathfinder_geometry::basic::transform3d::Perspective; use pathfinder_geometry::clip::PolygonClipper3D; use pathfinder_geometry::outline::Outline; -use pathfinder_geometry::point::{Point2DF32, Point3DF32}; -use pathfinder_geometry::transform3d::Perspective; -use pathfinder_geometry::transform::Transform2DF32; use rayon::iter::{IndexedParallelIterator, IntoParallelRefIterator, ParallelIterator}; use std::fmt::{self, Debug, Formatter}; diff --git a/renderer/src/tiles.rs b/renderer/src/tiles.rs index 54440307..f1c7961d 100644 --- a/renderer/src/tiles.rs +++ b/renderer/src/tiles.rs @@ -13,9 +13,9 @@ use crate::paint::ShaderId; use crate::sorted_vector::SortedVector; use crate::z_buffer::ZBuffer; use euclid::{Point2D, Rect, Size2D}; -use pathfinder_geometry::line_segment::LineSegmentF32; +use pathfinder_geometry::basic::line_segment::LineSegmentF32; +use pathfinder_geometry::basic::point::Point2DF32; use pathfinder_geometry::outline::{Contour, Outline, PointIndex}; -use pathfinder_geometry::point::Point2DF32; use pathfinder_geometry::segment::Segment; use pathfinder_geometry::util; use std::cmp::Ordering; diff --git a/svg/src/lib.rs b/svg/src/lib.rs index cd74d148..442f788a 100644 --- a/svg/src/lib.rs +++ b/svg/src/lib.rs @@ -12,14 +12,14 @@ use euclid::{Point2D, Rect, Size2D}; use lyon_path::iterator::PathIter; -use pathfinder_geometry::line_segment::LineSegmentF32; +use pathfinder_geometry::basic::line_segment::LineSegmentF32; +use pathfinder_geometry::basic::point::Point2DF32; +use pathfinder_geometry::basic::transform2d::{Transform2DF32, Transform2DF32PathIter}; use pathfinder_geometry::monotonic::MonotonicConversionIter; use pathfinder_geometry::outline::Outline; -use pathfinder_geometry::point::Point2DF32; use pathfinder_geometry::segment::{PathEventsToSegments, Segment}; use pathfinder_geometry::segment::{SegmentFlags, SegmentsToPathEvents}; use pathfinder_geometry::stroke::{StrokeStyle, StrokeToFillIter}; -use pathfinder_geometry::transform::{Transform2DF32, Transform2DF32PathIter}; use pathfinder_renderer::paint::{ColorU, Paint}; use pathfinder_renderer::scene::{PathObject, PathObjectKind, Scene}; use std::mem; diff --git a/utils/tile-svg/src/main.rs b/utils/tile-svg/src/main.rs index ceef5f83..305a13da 100644 --- a/utils/tile-svg/src/main.rs +++ b/utils/tile-svg/src/main.rs @@ -19,7 +19,7 @@ use clap::{App, Arg}; use jemallocator; use pathfinder_renderer::builder::SceneBuilder; use pathfinder_renderer::gpu_data::BuiltScene; -use pathfinder_renderer::scene::Scene; +use pathfinder_renderer::scene::{BuildTransform, Scene}; use pathfinder_renderer::serialization::RiffSerialize; use pathfinder_renderer::z_buffer::ZBuffer; use pathfinder_svg::SceneExt; @@ -103,8 +103,8 @@ fn main() { let start_time = Instant::now(); let built_objects = match jobs { - Some(1) => scene.build_objects_sequentially(&z_buffer), - _ => scene.build_objects(&z_buffer), + Some(1) => scene.build_objects_sequentially(&BuildTransform::None, &z_buffer), + _ => scene.build_objects(&BuildTransform::None, &z_buffer), }; elapsed_object_build_time += duration_to_ms(&(Instant::now() - start_time));