diff --git a/.gitignore b/.gitignore index d27c2533..cdc7a13c 100644 --- a/.gitignore +++ b/.gitignore @@ -9,6 +9,8 @@ node_modules /shaders/build /c/build /examples/macos_app/Pathfinder\ Example.xcodeproj/project.xcworkspace/xcuserdata/* +.project +.settings # Editors *.swp diff --git a/Cargo.lock b/Cargo.lock index a32862de..72a0319b 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -166,6 +166,7 @@ dependencies = [ "gl 0.6.5 (registry+https://github.com/rust-lang/crates.io-index)", "glutin 0.21.2 (registry+https://github.com/rust-lang/crates.io-index)", "pathfinder_canvas 0.1.0", + "pathfinder_color 0.1.0", "pathfinder_content 0.1.0", "pathfinder_geometry 0.4.0", "pathfinder_gl 0.1.0", @@ -182,6 +183,7 @@ dependencies = [ "metal 0.17.1 (registry+https://github.com/rust-lang/crates.io-index)", "objc 0.2.7 (registry+https://github.com/rust-lang/crates.io-index)", "pathfinder_canvas 0.1.0", + "pathfinder_color 0.1.0", "pathfinder_content 0.1.0", "pathfinder_geometry 0.4.0", "pathfinder_gl 0.1.0", @@ -198,6 +200,7 @@ version = "0.1.0" dependencies = [ "gl 0.6.5 (registry+https://github.com/rust-lang/crates.io-index)", "pathfinder_canvas 0.1.0", + "pathfinder_color 0.1.0", "pathfinder_content 0.1.0", "pathfinder_geometry 0.4.0", "pathfinder_gl 0.1.0", @@ -213,6 +216,7 @@ version = "0.1.0" dependencies = [ "gl 0.6.5 (registry+https://github.com/rust-lang/crates.io-index)", "pathfinder_canvas 0.1.0", + "pathfinder_color 0.1.0", "pathfinder_content 0.1.0", "pathfinder_geometry 0.4.0", "pathfinder_gl 0.1.0", @@ -229,6 +233,7 @@ dependencies = [ "font-kit 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)", "gl 0.6.5 (registry+https://github.com/rust-lang/crates.io-index)", "pathfinder_canvas 0.1.0", + "pathfinder_color 0.1.0", "pathfinder_content 0.1.0", "pathfinder_geometry 0.4.0", "pathfinder_gl 0.1.0", @@ -1481,6 +1486,7 @@ dependencies = [ "libc 0.2.66 (registry+https://github.com/rust-lang/crates.io-index)", "metal 0.17.1 (registry+https://github.com/rust-lang/crates.io-index)", "pathfinder_canvas 0.1.0", + "pathfinder_color 0.1.0", "pathfinder_content 0.1.0", "pathfinder_geometry 0.4.0", "pathfinder_gl 0.1.0", @@ -1495,6 +1501,7 @@ name = "pathfinder_canvas" version = "0.1.0" dependencies = [ "font-kit 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)", + "pathfinder_color 0.1.0", "pathfinder_content 0.1.0", "pathfinder_geometry 0.4.0", "pathfinder_renderer 0.1.0", @@ -1502,6 +1509,13 @@ dependencies = [ "skribo 0.0.1 (git+https://github.com/linebender/skribo.git?rev=03c63ac17bb93e29f82e959dac94027935a21159)", ] +[[package]] +name = "pathfinder_color" +version = "0.1.0" +dependencies = [ + "pathfinder_simd 0.4.0", +] + [[package]] name = "pathfinder_content" version = "0.1.0" @@ -1523,7 +1537,7 @@ dependencies = [ "image 0.21.3 (registry+https://github.com/rust-lang/crates.io-index)", "log 0.4.8 (registry+https://github.com/rust-lang/crates.io-index)", "metal 0.17.1 (registry+https://github.com/rust-lang/crates.io-index)", - "pathfinder_content 0.1.0", + "pathfinder_color 0.1.0", "pathfinder_export 0.1.0", "pathfinder_geometry 0.4.0", "pathfinder_gl 0.1.0", @@ -1542,6 +1556,7 @@ name = "pathfinder_export" version = "0.1.0" dependencies = [ "deflate 0.8.2 (registry+https://github.com/rust-lang/crates.io-index)", + "pathfinder_color 0.1.0", "pathfinder_content 0.1.0", "pathfinder_geometry 0.4.0", "pathfinder_renderer 0.1.0", @@ -1573,7 +1588,7 @@ version = "0.1.0" dependencies = [ "half 1.4.0 (registry+https://github.com/rust-lang/crates.io-index)", "image 0.21.3 (registry+https://github.com/rust-lang/crates.io-index)", - "pathfinder_content 0.1.0", + "pathfinder_color 0.1.0", "pathfinder_geometry 0.4.0", "pathfinder_simd 0.4.0", ] @@ -1595,6 +1610,7 @@ dependencies = [ "gl 0.6.5 (registry+https://github.com/rust-lang/crates.io-index)", "glutin 0.19.0 (registry+https://github.com/rust-lang/crates.io-index)", "log 0.4.8 (registry+https://github.com/rust-lang/crates.io-index)", + "pathfinder_color 0.1.0", "pathfinder_content 0.1.0", "pathfinder_demo 0.1.0", "pathfinder_geometry 0.4.0", @@ -1635,6 +1651,7 @@ dependencies = [ "byteorder 1.3.2 (registry+https://github.com/rust-lang/crates.io-index)", "hashbrown 0.1.8 (registry+https://github.com/rust-lang/crates.io-index)", "log 0.4.8 (registry+https://github.com/rust-lang/crates.io-index)", + "pathfinder_color 0.1.0", "pathfinder_content 0.1.0", "pathfinder_geometry 0.4.0", "pathfinder_gpu 0.1.0", @@ -1659,6 +1676,7 @@ name = "pathfinder_svg" version = "0.1.0" dependencies = [ "bitflags 1.2.1 (registry+https://github.com/rust-lang/crates.io-index)", + "pathfinder_color 0.1.0", "pathfinder_content 0.1.0", "pathfinder_geometry 0.4.0", "pathfinder_renderer 0.1.0", @@ -1669,6 +1687,7 @@ dependencies = [ name = "pathfinder_swf" version = "0.1.0" dependencies = [ + "pathfinder_color 0.1.0", "pathfinder_content 0.1.0", "pathfinder_geometry 0.4.0", "pathfinder_gl 0.1.0", @@ -1696,7 +1715,7 @@ name = "pathfinder_ui" version = "0.1.0" dependencies = [ "hashbrown 0.1.8 (registry+https://github.com/rust-lang/crates.io-index)", - "pathfinder_content 0.1.0", + "pathfinder_color 0.1.0", "pathfinder_geometry 0.4.0", "pathfinder_gpu 0.1.0", "pathfinder_simd 0.4.0", diff --git a/Cargo.toml b/Cargo.toml index 6bac7360..411822e5 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -2,6 +2,7 @@ members = [ "c", "canvas", + "color", "content", "demo/android/rust", "demo/common", diff --git a/c/Cargo.toml b/c/Cargo.toml index 80fae46a..b515200c 100644 --- a/c/Cargo.toml +++ b/c/Cargo.toml @@ -18,6 +18,9 @@ libc = "0.2" features = ["pf-text"] path = "../canvas" +[dependencies.pathfinder_color] +path = "../color" + [dependencies.pathfinder_content] path = "../content" diff --git a/c/src/lib.rs b/c/src/lib.rs index 6a1b0fbf..90d2eac5 100644 --- a/c/src/lib.rs +++ b/c/src/lib.rs @@ -15,7 +15,7 @@ use foreign_types::ForeignTypeRef; use gl; use pathfinder_canvas::{CanvasFontContext, CanvasRenderingContext2D, FillStyle, LineJoin, Path2D}; use pathfinder_canvas::{TextAlign, TextMetrics}; -use pathfinder_content::color::{ColorF, ColorU}; +use pathfinder_color::{ColorF, ColorU}; use pathfinder_content::outline::ArcDirection; use pathfinder_content::stroke::LineCap; use pathfinder_geometry::rect::{RectF, RectI}; diff --git a/canvas/Cargo.toml b/canvas/Cargo.toml index aaec1b59..9a6b92db 100644 --- a/canvas/Cargo.toml +++ b/canvas/Cargo.toml @@ -10,6 +10,9 @@ crate-type = ["rlib", "staticlib"] [dependencies] font-kit = { version = "0.4", optional = true } +[dependencies.pathfinder_color] +path = "../color" + [dependencies.pathfinder_content] path = "../content" diff --git a/canvas/src/lib.rs b/canvas/src/lib.rs index ad17c08b..3d8dbff6 100644 --- a/canvas/src/lib.rs +++ b/canvas/src/lib.rs @@ -10,7 +10,7 @@ //! A simple API for Pathfinder that mirrors a subset of HTML canvas. -use pathfinder_content::color::ColorU; +use pathfinder_color::ColorU; use pathfinder_content::dash::OutlineDash; use pathfinder_content::outline::{ArcDirection, Contour, Outline}; use pathfinder_content::stroke::{LineCap, LineJoin as StrokeLineJoin}; diff --git a/color/Cargo.toml b/color/Cargo.toml new file mode 100644 index 00000000..87fe820c --- /dev/null +++ b/color/Cargo.toml @@ -0,0 +1,12 @@ +[package] +name = "pathfinder_color" +version = "0.1.0" +authors = ["Patrick Walton "] +edition = "2018" + +# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html + +[dependencies] + +[dependencies.pathfinder_simd] +path = "../simd" diff --git a/content/src/color.rs b/color/src/lib.rs similarity index 97% rename from content/src/color.rs rename to color/src/lib.rs index c2090d90..2248e05a 100644 --- a/content/src/color.rs +++ b/color/src/lib.rs @@ -1,6 +1,6 @@ -// pathfinder/geometry/src/color.rs +// pathfinder/color/src/lib.rs // -// Copyright © 2019 The Pathfinder Project Developers. +// Copyright © 2020 The Pathfinder Project Developers. // // Licensed under the Apache License, Version 2.0 or the MIT license diff --git a/content/src/lib.rs b/content/src/lib.rs index 00abb4d1..e8a1f741 100644 --- a/content/src/lib.rs +++ b/content/src/lib.rs @@ -18,7 +18,6 @@ extern crate bitflags; extern crate log; pub mod clip; -pub mod color; pub mod dash; pub mod orientation; pub mod outline; diff --git a/demo/common/Cargo.toml b/demo/common/Cargo.toml index b6a6dc91..3aafed44 100644 --- a/demo/common/Cargo.toml +++ b/demo/common/Cargo.toml @@ -22,8 +22,8 @@ features = ["png_codec"] version = "0.4" features = ["release_max_level_warn"] -[dependencies.pathfinder_content] -path = "../../content" +[dependencies.pathfinder_color] +path = "../../color" [dependencies.pathfinder_export] path = "../../export" diff --git a/demo/common/src/lib.rs b/demo/common/src/lib.rs index 832597b4..8e49fd36 100644 --- a/demo/common/src/lib.rs +++ b/demo/common/src/lib.rs @@ -22,7 +22,7 @@ use crate::device::{GroundProgram, GroundVertexArray}; use crate::ui::{DemoUIModel, DemoUIPresenter, ScreenshotInfo, ScreenshotType, UIAction}; use crate::window::{Event, Keycode, SVGPath, Window, WindowSize}; use clap::{App, Arg}; -use pathfinder_content::color::ColorU; +use pathfinder_color::ColorU; use pathfinder_export::{Export, FileFormat}; use pathfinder_geometry::rect::RectF; use pathfinder_geometry::transform2d::Transform2F; diff --git a/demo/common/src/renderer.rs b/demo/common/src/renderer.rs index 95d219c0..4e7b4d58 100644 --- a/demo/common/src/renderer.rs +++ b/demo/common/src/renderer.rs @@ -14,7 +14,7 @@ use crate::camera::{Camera, Mode}; use crate::window::{View, Window}; use crate::{BackgroundColor, DemoApp, UIVisibility}; use image::ColorType; -use pathfinder_content::color::{ColorF, ColorU}; +use pathfinder_color::{ColorF, ColorU}; use pathfinder_gpu::{ClearOps, DepthFunc, DepthState, Device, Primitive, RenderOptions}; use pathfinder_gpu::{RenderState, RenderTarget, TextureData, TextureFormat, UniformData}; use pathfinder_geometry::rect::RectI; diff --git a/demo/magicleap/Cargo.toml b/demo/magicleap/Cargo.toml index 877bfeb8..f8ab3f71 100644 --- a/demo/magicleap/Cargo.toml +++ b/demo/magicleap/Cargo.toml @@ -20,6 +20,9 @@ crate-type = ["cdylib"] [features] mocked = ["glutin"] +[dependencies.pathfinder_color] +path = "../../color" + [dependencies.pathfinder_content] path = "../../content" diff --git a/demo/magicleap/src/lib.rs b/demo/magicleap/src/lib.rs index 53b26528..fad29763 100644 --- a/demo/magicleap/src/lib.rs +++ b/demo/magicleap/src/lib.rs @@ -33,7 +33,7 @@ use pathfinder_geometry::vector::Vector2F; use pathfinder_geometry::vector::Vector2I; use pathfinder_geometry::rect::RectI; use pathfinder_geometry::transform2d::Transform2F; -use pathfinder_content::color::ColorF; +use pathfinder_color::ColorF; use pathfinder_gl::GLDevice; use pathfinder_gl::GLVersion; use pathfinder_gpu::ClearParams; diff --git a/examples/canvas_glutin_minimal/Cargo.toml b/examples/canvas_glutin_minimal/Cargo.toml index 2b1a6bb3..0beecd1c 100644 --- a/examples/canvas_glutin_minimal/Cargo.toml +++ b/examples/canvas_glutin_minimal/Cargo.toml @@ -11,6 +11,9 @@ glutin = "0.21" [dependencies.pathfinder_canvas] path = "../../canvas" +[dependencies.pathfinder_color] +path = "../../color" + [dependencies.pathfinder_content] path = "../../content" diff --git a/examples/canvas_glutin_minimal/src/main.rs b/examples/canvas_glutin_minimal/src/main.rs index 597f7e27..c9c37a24 100644 --- a/examples/canvas_glutin_minimal/src/main.rs +++ b/examples/canvas_glutin_minimal/src/main.rs @@ -14,9 +14,9 @@ use glutin::dpi::PhysicalSize; use glutin::{ContextBuilder, ControlFlow, Event, EventsLoop, GlProfile, GlRequest, KeyboardInput}; use glutin::{VirtualKeyCode, WindowBuilder, WindowEvent}; use pathfinder_canvas::{CanvasFontContext, CanvasRenderingContext2D, Path2D}; -use pathfinder_content::color::ColorF; -use pathfinder_geometry::vector::{Vector2F, Vector2I}; +use pathfinder_color::ColorF; use pathfinder_geometry::rect::RectF; +use pathfinder_geometry::vector::{Vector2F, Vector2I}; use pathfinder_gl::{GLDevice, GLVersion}; use pathfinder_gpu::resources::FilesystemResourceLoader; use pathfinder_renderer::concurrent::rayon::RayonExecutor; diff --git a/examples/canvas_metal_minimal/Cargo.toml b/examples/canvas_metal_minimal/Cargo.toml index 91d7fc1d..c54b988a 100644 --- a/examples/canvas_metal_minimal/Cargo.toml +++ b/examples/canvas_metal_minimal/Cargo.toml @@ -16,6 +16,9 @@ sdl2-sys = "0.32" features = ["pf-text"] path = "../../canvas" +[dependencies.pathfinder_color] +path = "../../color" + [dependencies.pathfinder_content] path = "../../content" diff --git a/examples/canvas_metal_minimal/src/main.rs b/examples/canvas_metal_minimal/src/main.rs index 2b0b6b06..b96ee3d6 100644 --- a/examples/canvas_metal_minimal/src/main.rs +++ b/examples/canvas_metal_minimal/src/main.rs @@ -11,7 +11,7 @@ use foreign_types::ForeignTypeRef; use metal::{CAMetalLayer, CoreAnimationLayerRef}; use pathfinder_canvas::{CanvasFontContext, CanvasRenderingContext2D, Path2D}; -use pathfinder_content::color::ColorF; +use pathfinder_color::ColorF; use pathfinder_geometry::vector::{Vector2F, Vector2I}; use pathfinder_geometry::rect::RectF; use pathfinder_gpu::resources::FilesystemResourceLoader; diff --git a/examples/canvas_minimal/Cargo.toml b/examples/canvas_minimal/Cargo.toml index 0becc032..e14e1588 100644 --- a/examples/canvas_minimal/Cargo.toml +++ b/examples/canvas_minimal/Cargo.toml @@ -12,6 +12,9 @@ sdl2-sys = "0.32" [dependencies.pathfinder_canvas] path = "../../canvas" +[dependencies.pathfinder_color] +path = "../../color" + [dependencies.pathfinder_content] path = "../../content" diff --git a/examples/canvas_minimal/src/main.rs b/examples/canvas_minimal/src/main.rs index 27d1469c..044f76cd 100644 --- a/examples/canvas_minimal/src/main.rs +++ b/examples/canvas_minimal/src/main.rs @@ -9,7 +9,7 @@ // except according to those terms. use pathfinder_canvas::{CanvasFontContext, CanvasRenderingContext2D, Path2D}; -use pathfinder_content::color::ColorF; +use pathfinder_color::ColorF; use pathfinder_geometry::rect::RectF; use pathfinder_geometry::vector::{Vector2F, Vector2I}; use pathfinder_gl::{GLDevice, GLVersion}; diff --git a/examples/canvas_moire/Cargo.toml b/examples/canvas_moire/Cargo.toml index 13b0a60b..d936b8dc 100644 --- a/examples/canvas_moire/Cargo.toml +++ b/examples/canvas_moire/Cargo.toml @@ -13,6 +13,9 @@ sdl2-sys = "0.32" features = ["pf-text"] path = "../../canvas" +[dependencies.pathfinder_color] +path = "../../color" + [dependencies.pathfinder_content] path = "../../content" diff --git a/examples/canvas_moire/src/main.rs b/examples/canvas_moire/src/main.rs index 36312a09..f23f5988 100644 --- a/examples/canvas_moire/src/main.rs +++ b/examples/canvas_moire/src/main.rs @@ -9,8 +9,8 @@ // except according to those terms. use pathfinder_canvas::{CanvasFontContext, CanvasRenderingContext2D, FillStyle, Path2D}; +use pathfinder_color::{ColorF, ColorU}; use pathfinder_geometry::vector::{Vector2F, Vector2I}; -use pathfinder_content::color::{ColorF, ColorU}; use pathfinder_gl::{GLDevice, GLVersion}; use pathfinder_gpu::resources::FilesystemResourceLoader; use pathfinder_renderer::concurrent::rayon::RayonExecutor; diff --git a/examples/canvas_text/Cargo.toml b/examples/canvas_text/Cargo.toml index b1699660..289c44cb 100644 --- a/examples/canvas_text/Cargo.toml +++ b/examples/canvas_text/Cargo.toml @@ -14,6 +14,9 @@ sdl2-sys = "0.32" features = ["pf-text"] path = "../../canvas" +[dependencies.pathfinder_color] +path = "../../color" + [dependencies.pathfinder_content] path = "../../content" diff --git a/examples/canvas_text/src/main.rs b/examples/canvas_text/src/main.rs index 2942e3ae..b969313f 100644 --- a/examples/canvas_text/src/main.rs +++ b/examples/canvas_text/src/main.rs @@ -10,8 +10,8 @@ use font_kit::handle::Handle; use pathfinder_canvas::{CanvasFontContext, CanvasRenderingContext2D, TextAlign}; +use pathfinder_color::ColorF; use pathfinder_geometry::vector::{Vector2F, Vector2I}; -use pathfinder_content::color::ColorF; use pathfinder_gl::{GLDevice, GLVersion}; use pathfinder_gpu::resources::{FilesystemResourceLoader, ResourceLoader}; use pathfinder_renderer::concurrent::rayon::RayonExecutor; diff --git a/export/Cargo.toml b/export/Cargo.toml index 84524894..49db4a00 100644 --- a/export/Cargo.toml +++ b/export/Cargo.toml @@ -5,7 +5,8 @@ authors = ["Sebastian Köln "] edition = "2018" [dependencies] -pathfinder_renderer = { path = "../renderer" } -pathfinder_geometry = { path = "../geometry" } +pathfinder_color = { path = "../color" } pathfinder_content = { path = "../content" } +pathfinder_geometry = { path = "../geometry" } +pathfinder_renderer = { path = "../renderer" } deflate = "*" diff --git a/export/src/lib.rs b/export/src/lib.rs index 9ec0c31f..f1b71b75 100644 --- a/export/src/lib.rs +++ b/export/src/lib.rs @@ -1,6 +1,16 @@ +// pathfinder/export/src/lib.rs +// +// Copyright © 2020 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. + +use pathfinder_content::segment::SegmentKind; use pathfinder_renderer::scene::Scene; use pathfinder_geometry::vector::Vector2F; -use pathfinder_content::segment::SegmentKind; use std::io::{self, Write}; use std::fmt; diff --git a/export/src/pdf.rs b/export/src/pdf.rs index 29f11451..a3b58139 100644 --- a/export/src/pdf.rs +++ b/export/src/pdf.rs @@ -1,9 +1,20 @@ -//! This is a heavily modified version of the pdfpdf crate by Benjamin Kimock (aka. saethlin) +// pathfinder/export/src/pdf.rs +// +// Copyright © 2020 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. + +//! This is a heavily modified version of the pdfpdf crate by Benjamin Kimock +//! (aka. saethlin) -use pathfinder_geometry::vector::Vector2F; -use pathfinder_content::color::ColorU; -use std::io::{self, Write}; use deflate::Compression; +use pathfinder_color::ColorU; +use pathfinder_geometry::vector::Vector2F; +use std::io::{self, Write}; struct Counter { inner: T, diff --git a/gpu/Cargo.toml b/gpu/Cargo.toml index 58b1e7f1..8956818c 100644 --- a/gpu/Cargo.toml +++ b/gpu/Cargo.toml @@ -12,8 +12,8 @@ version = "0.21" default-features = false features = ["png_codec"] -[dependencies.pathfinder_content] -path = "../content" +[dependencies.pathfinder_color] +path = "../color" [dependencies.pathfinder_geometry] path = "../geometry" diff --git a/gpu/src/lib.rs b/gpu/src/lib.rs index b0c42665..284558bd 100644 --- a/gpu/src/lib.rs +++ b/gpu/src/lib.rs @@ -13,7 +13,7 @@ use crate::resources::ResourceLoader; use half::f16; use image::ImageFormat; -use pathfinder_content::color::ColorF; +use pathfinder_color::ColorF; use pathfinder_geometry::rect::RectI; use pathfinder_geometry::transform3d::Transform4F; use pathfinder_geometry::vector::Vector2I; diff --git a/renderer/Cargo.toml b/renderer/Cargo.toml index 0c29bf32..e4e2d8f7 100644 --- a/renderer/Cargo.toml +++ b/renderer/Cargo.toml @@ -17,6 +17,9 @@ smallvec = "0.6" version = "0.4" features = ["release_max_level_warn"] +[dependencies.pathfinder_color] +path = "../color" + [dependencies.pathfinder_content] path = "../content" diff --git a/renderer/src/gpu/options.rs b/renderer/src/gpu/options.rs index 8ffe9d88..3d0244a2 100644 --- a/renderer/src/gpu/options.rs +++ b/renderer/src/gpu/options.rs @@ -8,9 +8,9 @@ // option. This file may not be copied, modified, or distributed // except according to those terms. +use pathfinder_color::ColorF; use pathfinder_geometry::rect::RectI; use pathfinder_geometry::vector::Vector2I; -use pathfinder_content::color::ColorF; use pathfinder_gpu::Device; /// Options that influence rendering. diff --git a/renderer/src/gpu/renderer.rs b/renderer/src/gpu/renderer.rs index 7965c5aa..63f3aa1b 100644 --- a/renderer/src/gpu/renderer.rs +++ b/renderer/src/gpu/renderer.rs @@ -14,10 +14,10 @@ use crate::gpu_data::{AlphaTileBatchPrimitive, FillBatchPrimitive, PaintData}; use crate::gpu_data::{RenderCommand, SolidTileBatchPrimitive}; use crate::post::DefringingKernel; use crate::tiles::{TILE_HEIGHT, TILE_WIDTH}; +use pathfinder_color::ColorF; use pathfinder_geometry::vector::{Vector2I, Vector4F}; use pathfinder_geometry::rect::RectI; use pathfinder_geometry::transform3d::Transform4F; -use pathfinder_content::color::ColorF; use pathfinder_gpu::resources::ResourceLoader; use pathfinder_gpu::{BlendFunc, BlendState, BufferData, BufferTarget, BufferUploadMode, ClearOps}; use pathfinder_gpu::{DepthFunc, DepthState, Device, Primitive, RenderOptions, RenderState}; diff --git a/renderer/src/paint.rs b/renderer/src/paint.rs index 2426092c..63016047 100644 --- a/renderer/src/paint.rs +++ b/renderer/src/paint.rs @@ -10,8 +10,8 @@ use crate::gpu_data::PaintData; use crate::scene::Scene; +use pathfinder_color::ColorU; use pathfinder_geometry::vector::Vector2I; -use pathfinder_content::color::ColorU; const PAINT_TEXTURE_WIDTH: i32 = 256; const PAINT_TEXTURE_HEIGHT: i32 = 256; diff --git a/renderer/src/scene.rs b/renderer/src/scene.rs index 6d2d9d36..79e64485 100644 --- a/renderer/src/scene.rs +++ b/renderer/src/scene.rs @@ -16,10 +16,10 @@ use crate::options::{BuildOptions, PreparedBuildOptions}; use crate::options::{PreparedRenderTransform, RenderCommandListener}; use crate::paint::{Paint, PaintId}; use hashbrown::HashMap; +use pathfinder_color::ColorU; use pathfinder_geometry::vector::Vector2F; use pathfinder_geometry::rect::RectF; use pathfinder_geometry::transform2d::Transform2F; -use pathfinder_content::color::ColorU; use pathfinder_content::outline::Outline; #[derive(Clone)] @@ -179,10 +179,12 @@ impl Scene { } } } + pub struct PathIter<'a> { scene: &'a Scene, pos: usize } + impl<'a> Iterator for PathIter<'a> { type Item = (&'a Paint, &'a Outline, &'a str); fn next(&mut self) -> Option { @@ -197,6 +199,7 @@ impl<'a> Iterator for PathIter<'a> { item } } + #[derive(Clone, Debug)] pub struct PathObject { outline: Outline, diff --git a/svg/Cargo.toml b/svg/Cargo.toml index e45af031..a347207a 100644 --- a/svg/Cargo.toml +++ b/svg/Cargo.toml @@ -8,6 +8,9 @@ authors = ["Patrick Walton "] bitflags = "1.0" usvg = "0.8" +[dependencies.pathfinder_color] +path = "../color" + [dependencies.pathfinder_content] path = "../content" diff --git a/svg/src/lib.rs b/svg/src/lib.rs index e8b337fe..cab2520b 100644 --- a/svg/src/lib.rs +++ b/svg/src/lib.rs @@ -13,7 +13,7 @@ #[macro_use] extern crate bitflags; -use pathfinder_content::color::ColorU; +use pathfinder_color::ColorU; use pathfinder_content::outline::Outline; use pathfinder_content::segment::{Segment, SegmentFlags}; use pathfinder_content::stroke::{LineCap, LineJoin, OutlineStrokeToFill, StrokeStyle}; diff --git a/swf/Cargo.toml b/swf/Cargo.toml index 389a0fd7..b86be9a5 100644 --- a/swf/Cargo.toml +++ b/swf/Cargo.toml @@ -8,6 +8,9 @@ edition = "2018" swf-parser = "0.7.0" swf-tree = "0.7.0" +[dependencies.pathfinder_color] +path = "../color" + [dependencies.pathfinder_content] path = "../content" diff --git a/swf/src/lib.rs b/swf/src/lib.rs index c8a683e8..6035da6f 100644 --- a/swf/src/lib.rs +++ b/swf/src/lib.rs @@ -9,10 +9,10 @@ // except according to those terms. use std::ops::Add; -use pathfinder_content::color::{ColorU, ColorF}; +use pathfinder_color::{ColorF, ColorU}; use pathfinder_content::outline::{Outline, Contour}; -use pathfinder_geometry::vector::Vector2F; use pathfinder_content::stroke::{OutlineStrokeToFill, StrokeStyle}; +use pathfinder_geometry::vector::Vector2F; use pathfinder_renderer::scene::{PathObject, Scene}; use swf_tree; diff --git a/swf/src/shapes.rs b/swf/src/shapes.rs index 2348672f..835d8521 100644 --- a/swf/src/shapes.rs +++ b/swf/src/shapes.rs @@ -8,25 +8,16 @@ // option. This file may not be copied, modified, or distributed // except according to those terms. -use pathfinder_renderer::paint::Paint; -use pathfinder_content::stroke::{LineJoin, LineCap}; use crate::{Twips, Point2}; + +use pathfinder_color::ColorU; +use pathfinder_content::stroke::{LineJoin, LineCap}; +use pathfinder_renderer::paint::Paint; use std::mem; use std::cmp::Ordering; -use swf_tree::{ - FillStyle, - StraightSRgba8, - LineStyle, - fill_styles, - JoinStyle, - CapStyle, - join_styles, - ShapeRecord, - shape_records, - Vector2D -}; -use pathfinder_content::color::ColorU; use swf_tree::tags::DefineShape; +use swf_tree::{CapStyle, FillStyle, JoinStyle, LineStyle, ShapeRecord, StraightSRgba8, Vector2D}; +use swf_tree::{fill_styles, join_styles, shape_records}; #[derive(Clone, Copy, Debug)] pub(crate) struct LineSegment { diff --git a/ui/Cargo.toml b/ui/Cargo.toml index 2cad25a6..273e7785 100644 --- a/ui/Cargo.toml +++ b/ui/Cargo.toml @@ -13,8 +13,8 @@ serde_json = "1.0" version = "0.1" features = ["serde"] -[dependencies.pathfinder_content] -path = "../content" +[dependencies.pathfinder_color] +path = "../color" [dependencies.pathfinder_geometry] path = "../geometry" diff --git a/ui/src/lib.rs b/ui/src/lib.rs index fc8995c5..c69cf6fc 100644 --- a/ui/src/lib.rs +++ b/ui/src/lib.rs @@ -17,7 +17,7 @@ extern crate serde_derive; use hashbrown::HashMap; -use pathfinder_content::color::ColorU; +use pathfinder_color::ColorU; use pathfinder_geometry::rect::RectI; use pathfinder_geometry::vector::{Vector2F, Vector2I}; use pathfinder_gpu::resources::ResourceLoader;