commit 2c822d08197b06d24f869dab8f04f65f3aa38bd0 Author: Federico Mena Quintero Date: Fri Jun 22 14:53:32 2018 -0500 Update NEWS NEWS | 6 ++++++ 1 file changed, 6 insertions(+) commit 2a03a221b03265c42db1d55f53dce5c92b00e2e3 Author: Federico Mena Quintero Date: Fri Jun 22 14:29:37 2018 -0500 rsvg-test.c: Don't leak the cwd tests/rsvg-test.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) commit 2cccd100d1ebdd7b16dd4ec043fa6af7a4ea70de Author: Federico Mena Quintero Date: Fri Jun 22 14:17:54 2018 -0500 sax_processing_instruction_cb(): Don't leak the pbag iterator librsvg/rsvg-load.c | 2 ++ 1 file changed, 2 insertions(+) commit dca2e4f034be83f8ac293fb579cd936681307d2a Author: Federico Mena Quintero Date: Fri Jun 22 13:49:00 2018 -0500 draw_node_from_stack(): Ahem, make this work in the original way. What was I thinking? rsvg_internals/src/drawing_ctx.rs | 19 +++++++++++-------- 1 file changed, 11 insertions(+), 8 deletions(-) commit b4283ff083e0105b5fc8a8bee5290e0d8ec2eb37 Author: Federico Mena Quintero Date: Fri Jun 22 13:18:52 2018 -0500 is_cairo_context_nested(): Oops, the condition was backwards. rsvg_internals/src/drawing_ctx.rs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit a9ebc8c77c35811d77a252bda50dce9461e1cad8 Author: Federico Mena Quintero Date: Fri Jun 22 13:13:07 2018 -0500 drawing_ctx.rs: Restore the original behavior of the cr_stack rsvg_internals/src/drawing_ctx.rs | 10 +++------- 1 file changed, 3 insertions(+), 7 deletions(-) commit d35aa27992593e8074af3db5aea503784a6d96ce Author: Federico Mena Quintero Date: Fri Jun 22 12:39:21 2018 -0500 rsvg_drawing_ctx_new() - fix the type of the cr argument rsvg_internals/src/drawing_ctx.rs | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit 347c83afdec06fb00fcf3516258e16d7e7b6ff47 Merge: b982ccc4 e915da09 Author: Federico Mena Quintero Date: Fri Jun 22 12:33:54 2018 -0500 Merge branch 'master' into drawing-ctx-wip Basically, this adds a draw_ctx argument to all the filter functions, instead of keeping it in FilterContext. commit e915da0935c8351d28a479520621561e49924662 Author: Ivan Molodetskikh Date: Fri Jun 22 13:40:31 2018 +0300 Remove {un,}linearization boilerplate rsvg_internals/src/filters/blend.rs | 57 ++++-------------- rsvg_internals/src/filters/bounds.rs | 20 ++----- rsvg_internals/src/filters/component_transfer.rs | 29 ++------- rsvg_internals/src/filters/composite.rs | 62 +++++--------------- rsvg_internals/src/filters/context.rs | 61 ++++++++++++++++++- rsvg_internals/src/filters/ffi.rs | 65 +++++++++++++++++---- rsvg_internals/src/filters/flood.rs | 5 ++ rsvg_internals/src/filters/image.rs | 5 ++ rsvg_internals/src/filters/merge.rs | 59 +++++++------------ rsvg_internals/src/filters/mod.rs | 15 +++-- rsvg_internals/src/filters/offset.rs | 5 ++ rsvg_internals/src/surface_utils/shared_surface.rs | 22 +++++++ ...r-composite-color-interpolation-filters-ref.png | Bin 7951 -> 7948 bytes .../reftests/svg1.1/filters-composite-02-b-ref.png | Bin 15918 -> 15917 bytes .../reftests/svg1.1/filters-image-04-f-ref.png | Bin 12642 -> 12582 bytes 15 files changed, 220 insertions(+), 185 deletions(-) commit 2391a7444c19372c470ff12bb89f2e7dce92459b Author: Ivan Molodetskikh Date: Fri Jun 22 00:31:46 2018 +0300 Implement color-interpolation-filters librsvg/rsvg-attributes.h | 1 + rsvg_internals/build.rs | 1 + rsvg_internals/src/filters/blend.rs | 53 +++++++++++++---- rsvg_internals/src/filters/component_transfer.rs | 24 ++++++-- rsvg_internals/src/filters/composite.rs | 58 ++++++++++++------ rsvg_internals/src/filters/merge.rs | 37 +++++++++--- rsvg_internals/src/state.rs | 21 +++++++ .../reftests/bugs/241-light-source-type-ref.png | Bin 3983 -> 4044 bytes .../fixtures/reftests/bugs/282-drop-shadow-ref.png | Bin 1699 -> 1726 bytes ...r-composite-color-interpolation-filters-ref.png | Bin 0 -> 7951 bytes ...ilter-composite-color-interpolation-filters.svg | 65 +++++++++++++++++++++ .../reftests/svg1.1/filters-composite-04-f-ref.png | Bin 114677 -> 114495 bytes .../reftests/svg1.1/filters-composite-05-f-ref.png | Bin 33559 -> 29869 bytes 13 files changed, 216 insertions(+), 44 deletions(-) commit 438abbef4cca5c6cfde930d92e6029e072f56d3c Author: Ivan Molodetskikh Date: Thu Jun 21 19:33:30 2018 +0300 Remove an extra inline(always) rsvg_internals/src/surface_utils/shared_surface.rs | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-) commit 7af338291d9ca1d364e040296bf36fc79f47bf33 Author: Ivan Molodetskikh Date: Thu Jun 21 17:27:28 2018 +0300 Enable LTO in benchmarks Cargo.toml | 3 +++ 1 file changed, 3 insertions(+) commit 6707da825b12b82ebce3072fbe60c2f4c100812c Author: Ivan Molodetskikh Date: Thu Jun 21 17:15:16 2018 +0300 Add a comment on channelmap rsvg_internals/src/filters/context.rs | 1 + 1 file changed, 1 insertion(+) commit c84014cba2b3c13f0c505d45841c2a819600feba Author: Ivan Molodetskikh Date: Thu Jun 21 16:56:31 2018 +0300 Change ImageSurfaceDataShared to a safe version Makefile.am | 124 ++++----- librsvg/filters/color_matrix.c | 1 - librsvg/filters/convolve_matrix.c | 1 - librsvg/filters/diffuse_lighting.c | 1 - librsvg/filters/displacement_map.c | 1 - librsvg/filters/erode.c | 1 - librsvg/filters/gaussian_blur.c | 1 - librsvg/filters/specular_lighting.c | 1 - librsvg/filters/tile.c | 1 - librsvg/filters/turbulence.c | 1 - rsvg_internals/benches/pixel_iterators.rs | 10 +- rsvg_internals/src/filters/blend.rs | 30 ++- rsvg_internals/src/filters/component_transfer.rs | 21 +- rsvg_internals/src/filters/composite.rs | 28 +- rsvg_internals/src/filters/context.rs | 79 +++--- rsvg_internals/src/filters/ffi.rs | 19 +- rsvg_internals/src/filters/flood.rs | 7 +- rsvg_internals/src/filters/image.rs | 19 +- rsvg_internals/src/filters/iterators.rs | 288 --------------------- rsvg_internals/src/filters/merge.rs | 8 +- rsvg_internals/src/filters/mod.rs | 1 - rsvg_internals/src/filters/offset.rs | 31 ++- rsvg_internals/src/lib.rs | 1 + rsvg_internals/src/srgb.rs | 26 +- rsvg_internals/src/surface_utils/iterators.rs | 142 ++++++++++ rsvg_internals/src/surface_utils/mod.rs | 33 +++ rsvg_internals/src/surface_utils/shared_surface.rs | 139 ++++++++++ 27 files changed, 532 insertions(+), 483 deletions(-) commit b982ccc4b5cd7912b3d06767e61f345242760b3b Author: Federico Mena Quintero Date: Thu Jun 21 19:22:40 2018 -0500 draw_node_from_stack(): Don't use an anonymous function helper rsvg_internals/src/drawing_ctx.rs | 19 ++++++++++--------- 1 file changed, 10 insertions(+), 9 deletions(-) commit 8b464fb9cae3cd797ad0feb46958522d79700d2e Author: Federico Mena Quintero Date: Thu Jun 21 19:18:37 2018 -0500 impl Drop for AcquiredNode: Fix mutability rsvg_internals/src/drawing_ctx.rs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 1e101c79b3a33bece95e08256c031b8fe3c851c7 Author: Federico Mena Quintero Date: Thu Jun 21 19:17:42 2018 -0500 add_node_and_ancestors_to_stack(): Fix mutability rsvg_internals/src/drawing_ctx.rs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 3e99ac5ad690a091121d6d40a82dac98ca36d884 Author: Federico Mena Quintero Date: Thu Jun 21 19:15:51 2018 -0500 link.rs: Remove the with_tag() convenience function; use the primitives This is to avoid funky closure and borrows. rsvg_internals/src/link.rs | 22 +++++----------------- 1 file changed, 5 insertions(+), 17 deletions(-) commit 1fe859986c0224ae36ac3f6db7686fad77e73842 Author: Federico Mena Quintero Date: Thu Jun 21 19:10:53 2018 -0500 Don't keep a &DrawingCtx in FilterContext; pass it around to filter render functions This changes a lot of code, because all filter rendering functions now take a &mut DrawingCtx as an argument. This not only makes them consistent with the normal node rendering functions, but it lets us avoid double mutable borrows if the draw_ctx needed to be kept in the FilterContext. librsvg/filters/color_matrix.c | 9 +- librsvg/filters/common.c | 60 -------- librsvg/filters/common.h | 42 ++---- librsvg/filters/convolve_matrix.c | 9 +- librsvg/filters/diffuse_lighting.c | 15 +- librsvg/filters/displacement_map.c | 12 +- librsvg/filters/erode.c | 10 +- librsvg/filters/gaussian_blur.c | 10 +- librsvg/filters/specular_lighting.c | 15 +- librsvg/filters/tile.c | 10 +- librsvg/filters/turbulence.c | 10 +- rsvg_internals/src/drawing_ctx.rs | 13 +- rsvg_internals/src/filters/blend.rs | 14 +- rsvg_internals/src/filters/bounds.rs | 15 +- rsvg_internals/src/filters/component_transfer.rs | 16 +- rsvg_internals/src/filters/composite.rs | 14 +- rsvg_internals/src/filters/context.rs | 178 +++++++---------------- rsvg_internals/src/filters/ffi.rs | 7 +- rsvg_internals/src/filters/flood.rs | 10 +- rsvg_internals/src/filters/image.rs | 30 ++-- rsvg_internals/src/filters/merge.rs | 22 ++- rsvg_internals/src/filters/mod.rs | 12 +- rsvg_internals/src/filters/offset.rs | 16 +- rsvg_internals/src/lib.rs | 6 - rsvg_internals/src/structure.rs | 6 +- 25 files changed, 248 insertions(+), 313 deletions(-) commit 90b3682b7bcde2bff774df1096dedd62536cf14b Author: Federico Mena Quintero Date: Thu Jun 21 17:38:13 2018 -0500 DrawingCtx.get_cr_stack() doesn't need a mutable ctx rsvg_internals/src/drawing_ctx.rs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit ffabcab24af831da4dd2b856105094c51010e221 Author: Federico Mena Quintero Date: Thu Jun 21 17:37:29 2018 -0500 DrawCtx is always mutable in the filter context rsvg_internals/src/filters/context.rs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 62872747f027bd52622b8c150fa1e52f4f0023d9 Author: Federico Mena Quintero Date: Thu Jun 21 17:35:12 2018 -0500 Clone a bbox to avoid causing a borrow rsvg_internals/src/filters/context.rs | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) commit 8b37a31140a21c9104e2357b87deb1c16125adae Author: Federico Mena Quintero Date: Thu Jun 21 17:27:47 2018 -0500 Use a RefCell for the vector of acquired nodes get_acquired_node() is essentially a "give me a reference to a node", with some runtime checking underneath. Having AcquiredNode hold a mutable reference to its parent DrawingCtx is highly inconvenient. This calls for some interior mutability in DrawingCtx just for the vector of acquired_nodes, so we use a RefCell. Also, have AcquiredNode store a pointer to that RefCell, so that it doesn't cause a borrow on the whole DrawingCtx. This is unsafe, so "impl Drop for AcquiredNode" has a little unsafe code. Let's see if we can refactor this in the future. rsvg_internals/src/drawing_ctx.rs | 24 ++++++++++++++---------- rsvg_internals/src/gradient.rs | 2 +- 2 files changed, 15 insertions(+), 11 deletions(-) commit ffc59ceeeda38f0057b0e34f76b75ad619189bbc Author: Federico Mena Quintero Date: Thu Jun 21 17:21:16 2018 -0500 Store RsvgNode in draw_ctx.acquired_nodes, not pointers to RsvgNode They are Rc anyway; we can just have extra refs there. rsvg_internals/src/drawing_ctx.rs | 19 +++++++++++-------- 1 file changed, 11 insertions(+), 8 deletions(-) commit 10f51674c59d76590483fe9bedf638039f345a36 Author: Federico Mena Quintero Date: Thu Jun 21 17:07:34 2018 -0500 Compute effects region in a way to not cause a double mutable borrow rsvg_internals/src/filters/context.rs | 18 ++++++++++-------- 1 file changed, 10 insertions(+), 8 deletions(-) commit 3156161bee3706496d387eaecd17940816487e9a Author: Federico Mena Quintero Date: Thu Jun 21 17:05:12 2018 -0500 Clone the draw_ctx's bbox so the ctx doesn't get borrowed rsvg_internals/src/filters/context.rs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit f662bd13d00a2caadd8a9fa10b45768490bd90fc Author: Federico Mena Quintero Date: Thu Jun 21 08:51:36 2018 -0500 CONTRIBUTING.md: Note on formatting commit messages CONTRIBUTING.md | 28 ++++++++++++++++++++++++++++ 1 file changed, 28 insertions(+) commit 17f9a16736d5d4c4a40f2d4d47963c45b38be44e Author: Federico Mena Quintero Date: Thu Jun 21 08:42:19 2018 -0500 (#292): Don't panic if we try to clip with an empty bounding box https://gitlab.gnome.org/GNOME/librsvg/issues/292 rsvg_internals/src/clip_path.rs | 6 ++++++ tests/fixtures/render-crash/292-clip-empty-group.svg | 11 +++++++++++ 2 files changed, 17 insertions(+) commit 603b29f2ae110dcc9f3c02bc77aa58b0044236cf Author: Paolo Borelli Date: Wed Jun 20 22:50:12 2018 +0200 drawing_ctx: pass the context to the draw callback rsvg_internals/src/drawing_ctx.rs | 15 ++++++--------- rsvg_internals/src/image.rs | 6 +++--- rsvg_internals/src/link.rs | 8 ++++---- rsvg_internals/src/marker.rs | 4 ++-- rsvg_internals/src/mask.rs | 4 ++-- rsvg_internals/src/pattern.rs | 4 ++-- rsvg_internals/src/shapes.rs | 4 ++-- rsvg_internals/src/structure.rs | 20 ++++++++++---------- rsvg_internals/src/text.rs | 4 ++-- rsvg_internals/src/viewport.rs | 22 +++++++++++----------- 10 files changed, 44 insertions(+), 47 deletions(-) commit b054df6f56da80fcdd23754ca5b0f9ec2d8f8745 Author: Paolo Borelli Date: Tue Jun 19 00:31:37 2018 +0200 bbox: remove the C export librsvg/rsvg-private.h | 25 ------------- rsvg_internals/src/bbox.rs | 90 ---------------------------------------------- rsvg_internals/src/lib.rs | 10 ------ 3 files changed, 125 deletions(-) commit 0ccc1d872537c56cdca5815954b71099784c83e2 Author: Paolo Borelli Date: Sat Jun 16 13:16:13 2018 +0200 wip: try to port drawing_ctx to rust Makefile.am | 2 - doc/Makefile.am | 2 - librsvg/filters/color_matrix.c | 1 - librsvg/filters/common.c | 1 - librsvg/filters/convolve_matrix.c | 1 - librsvg/filters/diffuse_lighting.c | 1 - librsvg/filters/displacement_map.c | 1 - librsvg/filters/erode.c | 1 - librsvg/filters/gaussian_blur.c | 1 - librsvg/filters/light_source.c | 1 - librsvg/filters/specular_lighting.c | 1 - librsvg/filters/tile.c | 1 - librsvg/filters/turbulence.c | 1 - librsvg/rsvg-drawing-ctx.c | 405 --------------- librsvg/rsvg-drawing-ctx.h | 170 ------- librsvg/rsvg-handle.c | 1 - librsvg/rsvg-private.h | 32 ++ rsvg_internals/src/clip_path.rs | 12 +- rsvg_internals/src/draw.rs | 38 +- rsvg_internals/src/drawing_ctx.rs | 917 +++++++++++++++------------------- rsvg_internals/src/filters/bounds.rs | 2 +- rsvg_internals/src/filters/context.rs | 64 ++- rsvg_internals/src/filters/ffi.rs | 7 +- rsvg_internals/src/filters/image.rs | 23 +- rsvg_internals/src/gradient.rs | 30 +- rsvg_internals/src/image.rs | 6 +- rsvg_internals/src/length.rs | 16 +- rsvg_internals/src/lib.rs | 3 +- rsvg_internals/src/link.rs | 8 +- rsvg_internals/src/marker.rs | 23 +- rsvg_internals/src/mask.rs | 40 +- rsvg_internals/src/node.rs | 20 +- rsvg_internals/src/paint_server.rs | 23 +- rsvg_internals/src/pattern.rs | 33 +- rsvg_internals/src/shapes.rs | 20 +- rsvg_internals/src/structure.rs | 33 +- rsvg_internals/src/text.rs | 53 +- rsvg_internals/src/viewport.rs | 19 +- 38 files changed, 680 insertions(+), 1333 deletions(-) commit d8db0bc69a24da0c1b29e7ba112071571003d49a Author: Federico Mena Quintero Date: Wed Jun 20 17:14:27 2018 -0500 Update NEWS NEWS | 1 + 1 file changed, 1 insertion(+) commit 2305c86ce450f39b1b137d1ffc52ad29bb24aeed Author: Federico Mena Quintero Date: Wed Jun 20 17:12:17 2018 -0500 (#259): Make test fonts work for installed tests Don't hardcode the font locations based on the SRCDIR; actually compute their locations with g_test_build_filename(). https://gitlab.gnome.org/GNOME/librsvg/issues/259 librsvg/rsvg-base.c | 16 ++++++++++------ 1 file changed, 10 insertions(+), 6 deletions(-) commit 70cba3fd95b07f96249f8a1991fd2ed281791dec Author: Paolo Borelli Date: Wed Jun 20 22:56:18 2018 +0200 image: remove unneeded cairo_save/restore draw_surface already does it rsvg_internals/src/image.rs | 6 +----- 1 file changed, 1 insertion(+), 5 deletions(-) commit 3541e1dcfaf4e31195a75cdea8183c68d0354fd0 Author: Federico Mena Quintero Date: Wed Jun 20 16:53:42 2018 -0500 Update NEWS NEWS | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) commit bba52cb0da052b0fc8c7ecb4ae6f0b10075be52d Author: Federico Mena Quintero Date: Tue Jun 19 19:09:24 2018 -0500 with_discrete_layer(): Use IRI::get() on the IRI fields for less verbosity rsvg_internals/src/drawing_ctx.rs | 65 +++++++++++++++------------------------ 1 file changed, 24 insertions(+), 41 deletions(-) commit dde7ab49e95195de0f149fe28c4f0c89f9dbccd5 Author: Federico Mena Quintero Date: Tue Jun 19 19:04:58 2018 -0500 IRI::get() - new method rsvg_internals/src/iri.rs | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) commit 0c882eb6b9cf497a5a69fc4d2c52aa5546728a3a Author: Federico Mena Quintero Date: Tue Jun 19 18:59:04 2018 -0500 with_discrete_layer(): No need to restore the original_cr's matrix Since we are doing save()/restore() on that original_cr. rsvg_internals/src/drawing_ctx.rs | 2 -- 1 file changed, 2 deletions(-) commit af2ccff4b903fe6ba0371e7ca7bba5567f342157 Author: Federico Mena Quintero Date: Tue Jun 19 18:57:55 2018 -0500 with_discrete_layer(): We know that we can go back to the original_cr; don't re-fetch it rsvg_internals/src/drawing_ctx.rs | 16 +++++++--------- 1 file changed, 7 insertions(+), 9 deletions(-) commit 2eb7a75f8b9e90846f04bed73c26aab9f146d6e7 Author: Federico Mena Quintero Date: Tue Jun 19 18:52:51 2018 -0500 with_discrete_layer(): Replace a chain of "else" with .or() rsvg_internals/src/drawing_ctx.rs | 79 ++++++++++++++++++++------------------- 1 file changed, 41 insertions(+), 38 deletions(-) commit cc4f961e4d6c9477a3e2be50262926ed58130572 Author: Federico Mena Quintero Date: Tue Jun 19 18:26:59 2018 -0500 with_discrete_layer(): Better identify the intermediate surface and its cr rsvg_internals/src/drawing_ctx.rs | 72 +++++++++++++++++++++------------------ 1 file changed, 38 insertions(+), 34 deletions(-) commit 28f70e671a4552f0ace70ff1156fe497fc2ec169 Author: Federico Mena Quintero Date: Tue Jun 19 18:14:17 2018 -0500 with_discrete_layer(): Factor out the needs_temporary_surface computation rsvg_internals/src/drawing_ctx.rs | 15 +++++---------- 1 file changed, 5 insertions(+), 10 deletions(-) commit 4b85731c814d658202de03c5a9c265030a55b56f Author: Federico Mena Quintero Date: Tue Jun 19 17:59:51 2018 -0500 with_discrete_layer(): Refactor obtaining the clip node and clip units rsvg_internals/src/drawing_ctx.rs | 39 ++++++++++++++++++++------------------- 1 file changed, 20 insertions(+), 19 deletions(-) commit 8d7030936c3d00030c7887839e56b6142f8e7d85 Author: Federico Mena Quintero Date: Tue Jun 19 17:36:17 2018 -0500 with_discrete_layer(): Don't acquire the clip_node more than once rsvg_internals/src/drawing_ctx.rs | 50 +++++++++++++-------------------------- 1 file changed, 16 insertions(+), 34 deletions(-) commit 4e243cc78494eb83b01402de49e9d7935537d5fb Author: Federico Mena Quintero Date: Tue Jun 19 17:27:42 2018 -0500 with_discrete_layer(): Rename clip_uri variable rsvg_internals/src/drawing_ctx.rs | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) commit 2c0b979a18502ab9c30e78efe584897d6c9331bb Author: Federico Mena Quintero Date: Tue Jun 19 16:26:10 2018 -0500 with_discrete_layer(): Don't bind the same variables twice rsvg_internals/src/drawing_ctx.rs | 21 --------------------- 1 file changed, 21 deletions(-) commit 578fda3b1d8ffe29608ee2f48b32a7b6f25a45c0 Author: Federico Mena Quintero Date: Tue Jun 19 16:23:33 2018 -0500 with_discrete_layer(): Reduce the number of times we re-get the original cr rsvg_internals/src/drawing_ctx.rs | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) commit 5e2b5b09813afde7a501132ca79e195ea68a42a4 Author: Federico Mena Quintero Date: Tue Jun 19 16:19:25 2018 -0500 with_discrete_layer(): Don't have two huge if's, just a single one rsvg_internals/src/drawing_ctx.rs | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) commit ea97d13c26c172ca7422c0c8b892183e941eb708 Author: Federico Mena Quintero Date: Tue Jun 19 16:04:25 2018 -0500 push/pop_render_stack(): Removed; inlined them in with_discrete_layer() Now we can begin to clean up this mess. rsvg_internals/src/drawing_ctx.rs | 435 +++++++++++++++++++------------------- 1 file changed, 215 insertions(+), 220 deletions(-) commit d6537fd609426d3fc452f5f2cb878a420d0d7be4 Author: Federico Mena Quintero Date: Tue Jun 19 15:51:29 2018 -0500 pop_render_stack(): Get the child_cr closer to where it is used rsvg_internals/src/drawing_ctx.rs | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit 15b166da577288f71d0193f1f3a78e2a50c5eef6 Author: Federico Mena Quintero Date: Tue Jun 19 15:47:07 2018 -0500 push/pop_discrete_layer(): Removed - inline them in with_discrete_layer() rsvg_internals/src/drawing_ctx.rs | 17 ++--------------- 1 file changed, 2 insertions(+), 15 deletions(-) commit 85382b299a1a2ba07992da6503022ef4c6902b19 Author: Federico Mena Quintero Date: Tue Jun 19 15:46:02 2018 -0500 pattern.rs: Use with_discrete_layer() rsvg_internals/src/pattern.rs | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) commit 016778ab616ef46d42e21ed148732654e8b8d8ec Author: Federico Mena Quintero Date: Tue Jun 19 15:43:40 2018 -0500 viewport.rs: use with_discrete_layer() rsvg_internals/src/structure.rs | 4 +-- rsvg_internals/src/viewport.rs | 63 ++++++++++++++++++++--------------------- 2 files changed, 33 insertions(+), 34 deletions(-) commit 132fa2ee2147f619acf4db52f58e96c690a2cc0f Author: Federico Mena Quintero Date: Tue Jun 19 15:41:54 2018 -0500 draw_in_viewport(): Take a draw_fn: &mut FnMut, similar to with_discrete_layer() rsvg_internals/src/structure.rs | 4 ++-- rsvg_internals/src/viewport.rs | 8 +++----- 2 files changed, 5 insertions(+), 7 deletions(-) commit 81b118e915d319fbf1c5fe1b2b4a1b1dace8beb9 Author: Federico Mena Quintero Date: Tue Jun 19 15:38:19 2018 -0500 viewport.rs: Inline everything into draw_in_viewport(); remove the tests (!) The trait we used for mocking the RsvgDrawingCtx in the tests was playing badly with the efforts to replace push/pop_discrete_layer() with a single with_discrete_layer() function. In the end I want to move to a model where RsvgDrawingCtx isn't essentially a globally mutable mess, and intead functions pass around a current Viewport that knows how to expose a cairo::Context and things like the viewport size. The tests here are removed, but they were essentially testing that we call preserve_aspect_ratio() with the correct values. I hope to have more fine-grained tests in the future. rsvg_internals/src/viewport.rs | 266 ++--------------------------------------- 1 file changed, 11 insertions(+), 255 deletions(-) commit 857e65773a7516eb7c539dba754d9ddad8f117e7 Author: Federico Mena Quintero Date: Tue Jun 19 15:31:30 2018 -0500 viewport.rs: Simplify setting the clip rectangle for ClipToViewport rsvg_internals/src/viewport.rs | 13 +++++-------- 1 file changed, 5 insertions(+), 8 deletions(-) commit 9a7ee576e2078d131d5b210f38f49d9c3df293a6 Author: Federico Mena Quintero Date: Tue Jun 19 11:56:13 2018 -0500 with_discrete_layer(): take a &mut FnMut Thanks to Ivan Molodetskikh for the tip! rsvg_internals/src/drawing_ctx.rs | 8 +++----- rsvg_internals/src/image.rs | 2 +- rsvg_internals/src/link.rs | 2 +- rsvg_internals/src/marker.rs | 2 +- rsvg_internals/src/mask.rs | 2 +- rsvg_internals/src/shapes.rs | 2 +- rsvg_internals/src/structure.rs | 6 +++--- rsvg_internals/src/text.rs | 2 +- 8 files changed, 12 insertions(+), 14 deletions(-) commit 4176bd7e99b46bbe6e067cc88e33b41df87f4b41 Author: Paolo Borelli Date: Tue Jun 19 00:19:40 2018 +0200 drawing_ctx: add ink_rect getter This removes the last use of RsvgBbox outside drawing_ctx librsvg/rsvg-drawing-ctx.h | 4 ++++ librsvg/rsvg-handle.c | 8 ++------ rsvg_internals/src/drawing_ctx.rs | 17 +++++++++++++++++ rsvg_internals/src/lib.rs | 1 + 4 files changed, 24 insertions(+), 6 deletions(-) commit 01d789e6000a4dcde0d918607e34998d11367672 Author: Paolo Borelli Date: Mon Jun 18 23:21:05 2018 +0200 bbox: add with_extents method Similar to with_rect and removes the only place (from a quick look) where we assign bbox rect/ink_rect from outside rsvg_internals/src/bbox.rs | 19 +++++++++++++++++++ rsvg_internals/src/draw.rs | 30 ++++-------------------------- 2 files changed, 23 insertions(+), 26 deletions(-) commit d03a084b11f561c6fc038f73da2bad5f93876cdd Author: Federico Mena Quintero Date: Mon Jun 18 18:11:06 2018 -0500 mask.rs: Use with_discrete_layer() rsvg_internals/src/mask.rs | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) commit 6673b9060b2da6189b574d2c7ca1b6f3b519c58d Author: Federico Mena Quintero Date: Mon Jun 18 18:08:05 2018 -0500 link.rs: Use with_discrete_layer() rsvg_internals/src/link.rs | 36 +++++++++++++++++------------------- 1 file changed, 17 insertions(+), 19 deletions(-) commit 74e36e9e155028dd97a44debd3319fed6a19b558 Author: Federico Mena Quintero Date: Mon Jun 18 18:06:08 2018 -0500 text.rs: Use with_discrete_layer() - now it needs an FnMut rsvg_internals/src/drawing_ctx.rs | 4 ++-- rsvg_internals/src/text.rs | 12 +++++------- 2 files changed, 7 insertions(+), 9 deletions(-) commit 6ffef4b511041a93a95672f8aa28d58c56a40803 Author: Federico Mena Quintero Date: Mon Jun 18 16:12:16 2018 -0500 marker.rs: Use with_discrete_layer() rsvg_internals/src/marker.rs | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) commit 7698863412f4f78fb0442c7c8177695697075810 Author: Federico Mena Quintero Date: Mon Jun 18 09:34:02 2018 -0500 structure.rs: Use with_discrete_layer() rsvg_internals/src/structure.rs | 46 +++++++++++++++++++---------------------- 1 file changed, 21 insertions(+), 25 deletions(-) commit ef85b04dadcb938fa4aea40068850ff7ae63beec Author: Federico Mena Quintero Date: Mon Jun 18 09:30:14 2018 -0500 shapes.rs: Use with_discrete_layer() rsvg_internals/src/shapes.rs | 8 +++----- 1 file changed, 3 insertions(+), 5 deletions(-) commit fd3258f9c757e66ea5ed691e162b69f9a6e1b717 Author: Federico Mena Quintero Date: Mon Jun 18 09:23:34 2018 -0500 drawing_ctx::with_discrete_layer() - New function, will replace push/pop We will move to a model where instead of push/pop actions for different kinds of things, we have either do_something_with(lambda function), or a scope-based object. rsvg_internals/src/drawing_ctx.rs | 16 ++++++++++++++++ rsvg_internals/src/image.rs | 37 +++++++++++++++++-------------------- 2 files changed, 33 insertions(+), 20 deletions(-) commit 162a702aa7fc9d2d96be388927404cab1388db88 Author: Federico Mena Quintero Date: Fri Jun 15 21:36:36 2018 -0500 draw_children(): Remove the node argument; it's unused now rsvg_internals/src/clip_path.rs | 2 +- rsvg_internals/src/link.rs | 4 ++-- rsvg_internals/src/marker.rs | 2 +- rsvg_internals/src/mask.rs | 2 +- rsvg_internals/src/node.rs | 1 - rsvg_internals/src/pattern.rs | 2 +- rsvg_internals/src/structure.rs | 5 ++--- 7 files changed, 8 insertions(+), 10 deletions(-) commit a4c81cf76c88e8fa73a2a175d7f22917119d4d7e Author: Federico Mena Quintero Date: Fri Jun 15 21:33:37 2018 -0500 Remove the with_layer argument throughout Specifically, this was used in draw_children to decide whether to push/pop a layer or not. It was true everywhere, except in the two callers to draw_in_viewport(), as that function already pushes a layer by itself. So, to remove this exception and the with_layer argument, we now explicitly push a layer wherever we need it. rsvg_internals/src/clip_path.rs | 3 ++- rsvg_internals/src/drawing_ctx.rs | 2 +- rsvg_internals/src/image.rs | 1 - rsvg_internals/src/link.rs | 24 +++++++++--------------- rsvg_internals/src/marker.rs | 4 +++- rsvg_internals/src/mask.rs | 4 +++- rsvg_internals/src/node.rs | 16 +--------------- rsvg_internals/src/pattern.rs | 6 +++++- rsvg_internals/src/shapes.rs | 6 ------ rsvg_internals/src/structure.rs | 15 ++++++++------- rsvg_internals/src/text.rs | 1 - 11 files changed, 32 insertions(+), 50 deletions(-) commit f2670e226df2ab967fab85f101e79dc3828efc14 Merge: 5adc2b80 5eea1087 Author: Federico Mena Quintero Date: Mon Jun 18 13:27:49 2018 +0000 Merge branch 'drawing-ctx' into 'master' drawing_ctx: move add_node_and_ancestors to rust See merge request GNOME/librsvg!83 commit 5eea10873969149857afed6bf27d5aeba2717f88 Author: Paolo Borelli Date: Sat Jun 16 14:41:12 2018 +0200 drawing_ctx: move add_node_and_ancestors to rust This might seem a little bit odd, since it adds more code than it removes, but I want to try to push toward the goals of having drawing ctx C functions called only by drawing_ctx.rs. Beside iterating the ancestors in rust is not as trivial as it sounds... librsvg/rsvg-drawing-ctx.c | 11 ++--------- librsvg/rsvg-drawing-ctx.h | 7 ++++++- librsvg/rsvg-handle.c | 4 +++- rsvg_internals/src/drawing_ctx.rs | 25 +++++++++++++++++++++++++ rsvg_internals/src/lib.rs | 1 + 5 files changed, 37 insertions(+), 11 deletions(-) commit 5adc2b80d6ef2358e20ea7c6ff57d3b56b1f38a2 Author: Ivan Molodetskikh Date: Mon Jun 18 15:52:10 2018 +0300 Don't truncate offsets in feOffset rsvg_internals/src/filters/offset.rs | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) commit 109ec2a99fac34e9cff9b7ab47562f8e5faba64c Author: Ivan Molodetskikh Date: Mon Jun 18 15:49:16 2018 +0300 Remove two obsolete functions rsvg_internals/src/lib.rs | 2 -- rsvg_internals/src/state.rs | 19 ------------------- 2 files changed, 21 deletions(-) commit e0dbe0ce0d1a6bca0f2a46f618ef6a33cac2bb1f Author: Ivan Molodetskikh Date: Sat Jun 16 15:45:20 2018 +0300 Port feComponentTransfer to Rust Makefile.am | 2 +- librsvg/filters/component_transfer.c | 416 --------------------- rsvg_internals/src/filters/component_transfer.rs | 397 ++++++++++++++++++++ rsvg_internals/src/filters/ffi.rs | 1 + rsvg_internals/src/filters/mod.rs | 1 + rsvg_internals/src/load.rs | 48 ++- ...-component-transfer-from-reference-page-ref.png | Bin 0 -> 6956 bytes ...lter-component-transfer-from-reference-page.svg | 63 ++++ .../reftests/svg1.1/filters-color-02-b-ref.png | Bin 6047 -> 6455 bytes 9 files changed, 494 insertions(+), 434 deletions(-) commit eb08f4eb44a9ca64a4b003263f66f2bc42ad4de6 Author: Ivan Molodetskikh Date: Sat Jun 16 15:44:43 2018 +0300 Add unbounded list size to parsers::number_list() rsvg_internals/src/parsers.rs | 48 +++++++++++++++++++++++++++++++++++-------- 1 file changed, 39 insertions(+), 9 deletions(-) commit b0b8035fa64986b8528e4c849d9ee7e1b4a5aa68 Author: Ivan Molodetskikh Date: Sat Jun 16 15:44:26 2018 +0300 Derive Clone on node::Children rsvg_internals/src/node.rs | 1 + 1 file changed, 1 insertion(+) commit cb37d0d4085375ee75023e19e39aca47112946f9 Author: Ivan Molodetskikh Date: Fri Jun 15 12:51:26 2018 +0300 Port feBlend to Rust Makefile.am | 2 +- librsvg/filters/blend.c | 285 --------------------- rsvg_internals/src/filters/blend.rs | 146 +++++++++++ rsvg_internals/src/filters/ffi.rs | 5 +- rsvg_internals/src/filters/mod.rs | 1 + rsvg_internals/src/load.rs | 10 +- .../reftests/svg1.1/filters-blend-01-b-ref.png | Bin 0 -> 15246 bytes .../reftests/svg1.1/filters-blend-01-b.svg | 108 ++++++++ 8 files changed, 262 insertions(+), 295 deletions(-) commit 8ea9cdb53dfed57c0db93ef77e00b4535eddab1c Author: Ivan Molodetskikh Date: Fri Jun 15 12:35:42 2018 +0300 Fix extends in draw_surface() rsvg_internals/src/draw.rs | 20 ++++++++++++++++++-- .../reftests/svg1.1/filters-composite-04-f-ref.png | Bin 114631 -> 114677 bytes 2 files changed, 18 insertions(+), 2 deletions(-) commit 6ca08494520fc6387d9e4d22c37987fc6aaa251d Author: Ivan Molodetskikh Date: Thu Jun 14 19:57:52 2018 +0300 Remake feOffset in terms of cairo rsvg_internals/src/filters/offset.rs | 47 ++++++++++++++++-------------------- 1 file changed, 21 insertions(+), 26 deletions(-) commit 890ddedbe55731cec3528a2f359071aa47477d85 Author: Ivan Molodetskikh Date: Thu Jun 14 16:57:24 2018 +0300 Refactor srgb:: rsvg_internals/src/srgb.rs | 141 ++++++++++++++------------------------------- 1 file changed, 42 insertions(+), 99 deletions(-) commit 74240bc0b763a0dd5f29f16092cb78e683b33b4c Author: Ivan Molodetskikh Date: Thu Jun 14 16:56:46 2018 +0300 Return cairo::Status error from ImgSurfDataShared rsvg_internals/src/filters/composite.rs | 10 ++++++++-- rsvg_internals/src/filters/iterators.rs | 9 ++++----- rsvg_internals/src/filters/offset.rs | 5 ++++- 3 files changed, 16 insertions(+), 8 deletions(-) commit 47e97965b185dfe414173cf390c0f98d9dacf59e Author: Ivan Molodetskikh Date: Thu Jun 14 16:41:50 2018 +0300 ImageSurfaceDataShared::new => new_unchecked rsvg_internals/src/filters/composite.rs | 4 +-- rsvg_internals/src/filters/context.rs | 6 ++--- rsvg_internals/src/filters/iterators.rs | 48 ++++++++++++++++++++++++++++++--- rsvg_internals/src/filters/offset.rs | 2 +- 4 files changed, 51 insertions(+), 9 deletions(-) commit ee69f9180d259be3b192ce00b0009e2a10c58251 Author: Ivan Molodetskikh Date: Thu Jun 14 16:04:46 2018 +0300 Remove leftover rsvg_filter_render definition librsvg/rsvg-filter.h | 27 --------------------------- 1 file changed, 27 deletions(-) commit 3375aec2d6a4607246e9982afefcc336b190927c Author: Ivan Molodetskikh Date: Thu Jun 14 16:01:45 2018 +0300 Port feFlood Makefile.am | 2 +- librsvg/filters/flood.c | 127 ------------------------------------ librsvg/rsvg-filter.h | 2 - rsvg_internals/src/filters/ffi.rs | 1 + rsvg_internals/src/filters/flood.rs | 89 +++++++++++++++++++++++++ rsvg_internals/src/filters/mod.rs | 1 + rsvg_internals/src/load.rs | 10 +-- 7 files changed, 95 insertions(+), 137 deletions(-) commit 291fab0d5e8096f46ee88fbf452183fc86e95e1e Author: Ivan Molodetskikh Date: Thu Jun 14 12:17:14 2018 +0300 Make {get,set}_pixel() conformant to cairo specs rsvg_internals/src/filters/iterators.rs | 23 +++--- .../reftests/svg1.1/filters-composite-03-f-ref.png | Bin 0 -> 4325 bytes .../reftests/svg1.1/filters-composite-03-f.svg | 91 +++++++++++++++++++++ 3 files changed, 103 insertions(+), 11 deletions(-) commit 10151cbb80d7a71732f35969bfb98ec9f3632dfa Author: Ivan Molodetskikh Date: Thu Jun 14 11:37:05 2018 +0300 Implement FillPaint and StrokePaint rsvg_internals/src/filters/context.rs | 49 ++++++++++++++++++++++++++++++++--- 1 file changed, 46 insertions(+), 3 deletions(-) commit 863d00439e57ae8052532ed8a7b83dc5b7c819a5 Author: Paolo Borelli Date: Sat Jun 16 14:36:27 2018 +0200 handle: factor out function librsvg/rsvg-handle.c | 42 ++++++++++++++++++++---------------------- 1 file changed, 20 insertions(+), 22 deletions(-) commit a6a4b5d84d2caf45c8e595d8d137fc606bb5bc24 Author: Paolo Borelli Date: Sat Jun 16 10:44:23 2018 +0200 load: fix compiler warning librsvg/rsvg-load.c | 4 ++++ 1 file changed, 4 insertions(+) commit 953cd157c1af54d553276fef52253257e18f38cf Author: Federico Mena Quintero Date: Fri Jun 15 20:41:54 2018 -0500 NodeUse: draw_in_viewport() already pushes a layer; no need to push another one rsvg_internals/src/structure.rs | 2 -- 1 file changed, 2 deletions(-) commit 3aded2c4aa217657a50a6d16d4f176b996789e69 Author: Federico Mena Quintero Date: Fri Jun 15 20:23:57 2018 -0500 draw_node_from_stack(): Remove the with_layer argument; it was true in all callers. rsvg_internals/src/drawing_ctx.rs | 5 ++--- rsvg_internals/src/node.rs | 1 - rsvg_internals/src/structure.rs | 2 -- 3 files changed, 2 insertions(+), 6 deletions(-) commit bd1e1886503ccac47c692fe0480dc104d5124c17 Author: Federico Mena Quintero Date: Fri Jun 15 20:17:28 2018 -0500 Remove unused prototype librsvg/rsvg-private.h | 4 ---- 1 file changed, 4 deletions(-) commit fd636d14b7864567dd5a1c9d8e84f42d33322e2c Author: Federico Mena Quintero Date: Fri Jun 15 20:15:25 2018 -0500 marker.rs: Don't use a secondary cr; the layer is not pushed here yet rsvg_internals/src/marker.rs | 7 +------ 1 file changed, 1 insertion(+), 6 deletions(-) commit 2bdabe3075e25be6bcc33f8ed73db9f9fcbc38e4 Author: Federico Mena Quintero Date: Fri Jun 15 20:13:25 2018 -0500 marker.rs: Let our call to node.draw_children() push a layer itself rsvg_internals/src/marker.rs | 6 +----- 1 file changed, 1 insertion(+), 5 deletions(-) commit 4afbf889884d263b1c3a9a878ffdf613ce5183f8 Author: Federico Mena Quintero Date: Fri Jun 15 20:09:42 2018 -0500 clip_path.rs: Let our call do draw_children push a layer - it will be a no-op because we are clipping rsvg_internals/src/clip_path.rs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 921b6fef9592bf13cabe3b38db40711b46830b97 Author: Federico Mena Quintero Date: Fri Jun 15 20:07:11 2018 -0500 pattern.rs: Let our call pattern_node.draw_children() push the layer; don't do it ourselves rsvg_internals/src/pattern.rs | 7 +------ 1 file changed, 1 insertion(+), 6 deletions(-) commit 89df567bd3a2f5f08589168e4629390bd4e7c96d Author: Federico Mena Quintero Date: Fri Jun 15 19:36:19 2018 -0500 get_acquired_node_of_type() - take an Option<&str> to simplify some callers Some callers keep a node_id: Option, which they later verify and acquire with something like if let Some(id) = node_id { if let Some(acquired) = get_acquired_node_of_type(..., id, ...) { ... } } Taking an Option<&str> lets us do this instead: if let Some(acquired) = get_acquired_node_of_type(..., node_id.map(String::as_ref)) { .... } rsvg_internals/src/drawing_ctx.rs | 91 ++++++++++++++++++++------------------- rsvg_internals/src/marker.rs | 3 +- rsvg_internals/src/pattern.rs | 27 +++++------- 3 files changed, 60 insertions(+), 61 deletions(-) commit abe58904ab153ff4e60d2f0df192291acaa4012a Author: Federico Mena Quintero Date: Fri Jun 15 18:44:25 2018 -0500 rsvg_drawing_ctx_pop_bounding_box(): Don't leak the old bbox librsvg/rsvg-drawing-ctx.c | 2 ++ 1 file changed, 2 insertions(+) commit ac01a2e834506f2407ab0a8858da95507953f7ff Merge: dea83940 5a59ebe9 Author: Federico Mena Quintero Date: Fri Jun 15 02:35:45 2018 +0000 Merge branch 'draw-ctx-rs' into 'master' Small draw ctx cleanup/rustification See merge request GNOME/librsvg!81 commit 5a59ebe9a3a795e71b508eb81fb573dc5693bda6 Author: Paolo Borelli Date: Thu Jun 14 21:47:37 2018 +0200 drawing_ctx: move get/remove_acquired_node to rust librsvg/rsvg-drawing-ctx.c | 64 +++------------------------------------ librsvg/rsvg-drawing-ctx.h | 8 +++-- rsvg_internals/src/defs.rs | 12 ++++++++ rsvg_internals/src/drawing_ctx.rs | 39 ++++++++++++++++++------ 4 files changed, 51 insertions(+), 72 deletions(-) commit 1b9f3c9d56ad935ccdc6bb93727941196eb42dc1 Author: Paolo Borelli Date: Thu Jun 14 21:04:22 2018 +0200 drawing_ctx: refactor functions to manipulate list of acquired node librsvg/rsvg-drawing-ctx.c | 29 +++++++++++++++++++++++------ 1 file changed, 23 insertions(+), 6 deletions(-) commit dea839408c4ba1dab7b9684c6460504425cf9a3d Author: Federico Mena Quintero Date: Thu Jun 14 21:04:07 2018 -0500 tests/Makefile.am: Also distribute svg1.1/images/* tests/Makefile.am | 1 + 1 file changed, 1 insertion(+) commit 7689c4fbdbad2dd5d2616a0db7987e4938aeb4be Author: Federico Mena Quintero Date: Thu Jun 14 11:26:43 2018 -0500 Update NEWS NEWS | 6 ++++++ 1 file changed, 6 insertions(+) commit 8d1cc37d3d046e7bca7f3c545563548a7da4f90a Merge: 148070ab 76d5fdf5 Author: Federico Mena Quintero Date: Thu Jun 14 11:19:33 2018 -0500 Merge branch 'YaLTeR/librsvg-filters-to-rust-4' commit 76d5fdf50fe6f3d79be39114b1ac7249b845583a Author: Ivan Molodetskikh Date: Thu Jun 14 09:51:27 2018 +0300 Ensure width and height are >=0 in filters rsvg_internals/src/filters/mod.rs | 12 +++++++----- rsvg_internals/src/filters/node.rs | 12 +++++++----- 2 files changed, 14 insertions(+), 10 deletions(-) commit 148070abe57d850a2afbda694db8dc9020234d73 Author: Federico Mena Quintero Date: Wed Jun 13 20:06:34 2018 -0500 Trait method Parse::parse() takes a cssparser now, not a &str We add a Parse::parse_str() default implementation, and use that where parse() was used previously. Removed make_property's newtype_from_str since I couldn't make it work by slicing a cssparser::Parser; instead, implement Parse for the inner type of the properties that were done that way, and use newtype_parse. rsvg_internals/src/aspect_ratio.rs | 73 ++++++++++++++++----------------- rsvg_internals/src/color.rs | 18 +++----- rsvg_internals/src/coord_units.rs | 21 +++++----- rsvg_internals/src/filters/composite.rs | 6 +-- rsvg_internals/src/filters/node.rs | 8 ++-- rsvg_internals/src/filters/offset.rs | 4 +- rsvg_internals/src/gradient.rs | 31 +++++++------- rsvg_internals/src/iri.rs | 25 ++++++----- rsvg_internals/src/length.rs | 58 ++++++++++++-------------- rsvg_internals/src/marker.rs | 44 ++++++++++---------- rsvg_internals/src/mask.rs | 4 +- rsvg_internals/src/node.rs | 2 +- rsvg_internals/src/paint_server.rs | 33 +++++++-------- rsvg_internals/src/parsers.rs | 42 ++++++++++++++++++- rsvg_internals/src/property_macros.rs | 72 ++++---------------------------- rsvg_internals/src/state.rs | 66 +++++++++++++++-------------- rsvg_internals/src/structure.rs | 12 +++--- rsvg_internals/src/transform.rs | 11 ++--- rsvg_internals/src/unitinterval.rs | 32 +++++++-------- rsvg_internals/src/viewbox.rs | 23 +++++------ rsvg_internals/src/viewport.rs | 4 +- 21 files changed, 272 insertions(+), 317 deletions(-) commit 8c15c47d7368cb69c69b0d69191eb628b63a5486 Author: Federico Mena Quintero Date: Wed Jun 13 18:57:26 2018 -0500 cond.rs: Expose from_attribute() creators, not Parse implementations The conditional processing attributes are... attributes, not style properties. So, don't implement the Parse trait for them, but expose them in another way instead. rsvg_internals/src/cond.rs | 57 +++++++++++++++++++--------------------------- rsvg_internals/src/node.rs | 7 +++--- 2 files changed, 28 insertions(+), 36 deletions(-) commit 24ce1f9dd5b33f2147d864aad4109e635c3dcab6 Author: Federico Mena Quintero Date: Wed Jun 13 18:48:27 2018 -0500 Test the full parser of Dasharray, not just the inner parser rsvg_internals/src/length.rs | 35 +++++++++++++++++++---------------- 1 file changed, 19 insertions(+), 16 deletions(-) commit 07750841f627cd71f3b618fa5d001d036ca75047 Author: Federico Mena Quintero Date: Wed Jun 13 18:43:05 2018 -0500 parse_dash_array(): Take a cssparser, not a &str And make DashArray::parse() use cssparser as well. rsvg_internals/src/length.rs | 22 +++++++++++++--------- 1 file changed, 13 insertions(+), 9 deletions(-) commit 5b7fcfcb8664db39b6e7bbd2d443fc7be064ad88 Author: Federico Mena Quintero Date: Wed Jun 13 18:38:56 2018 -0500 parse_dash_array(): Use cssparser rsvg_internals/src/length.rs | 86 +++++++++++++++++--------------------------- 1 file changed, 33 insertions(+), 53 deletions(-) commit e9eb899a98d404e9ec5bc00246bb17d8d1119889 Author: Federico Mena Quintero Date: Wed Jun 13 15:17:34 2018 -0500 TextDecoration: parse using cssparser rsvg_internals/src/state.rs | 83 ++++++++++++++++++++++++++++++++++++++++++--- 1 file changed, 79 insertions(+), 4 deletions(-) commit 900b5ac1d82fbcfff24bb94a829bc7b09c6bd3f7 Author: Federico Mena Quintero Date: Wed Jun 13 15:01:28 2018 -0500 BaselineShift: parse with cssparser rsvg_internals/src/length.rs | 5 ++++- rsvg_internals/src/state.rs | 38 ++++++++++++++++++++++++++++++++------ 2 files changed, 36 insertions(+), 7 deletions(-) commit f211316bece39cd8de41fa79ba1aaa3ecd42f8a7 Author: Federico Mena Quintero Date: Wed Jun 13 13:54:15 2018 -0500 filters::Input::parse() - implement as a standalone method, not a trait impl We are parsing the "in" or "in2" attribute of filter primitive elements, not a property. So, don't impl Parse for Input. This lets us parse simply without cssparser. rsvg_internals/src/filters/composite.rs | 2 +- rsvg_internals/src/filters/input.rs | 18 ++++++++++-------- rsvg_internals/src/filters/merge.rs | 3 +-- rsvg_internals/src/filters/mod.rs | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) commit 77c605fe55e57528911ef5b611cce19fb6ae60e4 Author: Federico Mena Quintero Date: Wed Jun 13 13:24:43 2018 -0500 marker.rs: parse MarkerOrient completely with cssparser; don't parse bits of the string by hand rsvg_internals/src/marker.rs | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) commit e228176ec46a0a2861bbd74fa4d4387ce76acebd Author: Federico Mena Quintero Date: Wed Jun 13 13:16:53 2018 -0500 parsers::angle_degrees() - Take a cssparser, not a &str rsvg_internals/src/marker.rs | 5 ++++- rsvg_internals/src/parsers.rs | 30 +++++++++++++++++------------- 2 files changed, 21 insertions(+), 14 deletions(-) commit 135db45682db232a42248c8b1a766f27de93f790 Author: Federico Mena Quintero Date: Wed Jun 13 09:44:41 2018 -0500 filters/composite.rs: Use a cssparser rsvg_internals/src/filters/composite.rs | 30 +++++++++++++++++++++--------- 1 file changed, 21 insertions(+), 9 deletions(-) commit e0a8e83d21bfc3961f2569b3e8cf7387362f4379 Author: Federico Mena Quintero Date: Wed Jun 13 09:20:00 2018 -0500 make_property!() - Use a cssparser rsvg_internals/src/property_macros.rs | 26 +++++++++++++++++++++----- 1 file changed, 21 insertions(+), 5 deletions(-) commit 7d6441d04a7b1d782d09e5a1d6c28cc9085b5f0a Author: Federico Mena Quintero Date: Wed Jun 13 09:13:50 2018 -0500 parsers::number_list() - Take a Parser instead of a &str rsvg_internals/src/parsers.rs | 54 +++++++++++++++++++++++++------------------ rsvg_internals/src/viewbox.rs | 6 ++++- 2 files changed, 37 insertions(+), 23 deletions(-) commit 700eda7c0df25f8a310f5dd62481731d2885d53d Author: Federico Mena Quintero Date: Wed Jun 13 08:53:02 2018 -0500 gradient.rs: Use a cssparser rsvg_internals/src/gradient.rs | 29 ++++++++++++++++++++--------- 1 file changed, 20 insertions(+), 9 deletions(-) commit 5f7e03a89d3f6cbc73ac0b106288f0e931cff801 Author: Federico Mena Quintero Date: Wed Jun 13 08:46:55 2018 -0500 transform.rs: Use a cssparser from the toplevel impl Parse rsvg_internals/src/transform.rs | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) commit 8f55b50f5cf7e419e92fb782581110e57361118c Author: Federico Mena Quintero Date: Wed Jun 13 08:43:55 2018 -0500 color.rs: Don't inline the creation of a cssparser rsvg_internals/src/color.rs | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) commit 853d040bf99b15c4c70d680602d20d177904afe8 Author: Federico Mena Quintero Date: Tue Jun 12 18:48:22 2018 -0500 MarkerUnits: use a cssparser rsvg_internals/src/marker.rs | 28 +++++++++++++++++++++------- 1 file changed, 21 insertions(+), 7 deletions(-) commit a5ce7ee25c00f65d17b23458b755dcf4e8b716af Author: Federico Mena Quintero Date: Tue Jun 12 18:39:41 2018 -0500 AspectRatio: don't inline the creation of the Parser rsvg_internals/src/aspect_ratio.rs | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) commit ee38b6c6b3e8e49e21dd9befbe5e346f2c4e9877 Author: Federico Mena Quintero Date: Tue Jun 12 18:12:20 2018 -0500 CoordUnits: use a cssparser We'll refactor the Parse trait later. rsvg_internals/src/coord_units.rs | 29 ++++++++++++++++++++++------- 1 file changed, 22 insertions(+), 7 deletions(-) commit 4871bed5cbe6dd217db5eadbed6ca6ba95ec7b8c Author: Ivan Molodetskikh Date: Wed Jun 13 22:18:45 2018 +0300 Replace normalize_ignoring_units with get_unitless rsvg_internals/src/filters/context.rs | 20 ++++++-------------- rsvg_internals/src/length.rs | 23 +++++------------------ 2 files changed, 11 insertions(+), 32 deletions(-) commit 7a5f661f8ab1a3ae79cf65eb46624c43f36dc548 Author: Ivan Molodetskikh Date: Wed Jun 13 22:13:38 2018 +0300 Validate units in filter primitive attributes rsvg_internals/src/filters/mod.rs | 71 +++++++++++++++++---- .../reftests/filter-effects-region-ref.png | Bin 1640 -> 1659 bytes tests/fixtures/reftests/filter-effects-region.svg | 11 ++++ 3 files changed, 68 insertions(+), 14 deletions(-) commit 2f033a9be9534550817e8d61eda1b41aca9f9fac Author: Ivan Molodetskikh Date: Wed Jun 13 21:54:34 2018 +0300 Validate units in attributes rsvg_internals/src/filters/node.rs | 60 +++++++++++++++++---- .../reftests/filter-effects-region-ref.png | Bin 1636 -> 1640 bytes tests/fixtures/reftests/filter-effects-region.svg | 14 ++++- 3 files changed, 62 insertions(+), 12 deletions(-) commit 66d4fd4283b6d605b0d84e2621cc96dd6d3b2c1e Author: Ivan Molodetskikh Date: Wed Jun 13 21:53:52 2018 +0300 Refactor parse to parse{,_and_validate} rsvg_internals/src/clip_path.rs | 4 +-- rsvg_internals/src/filters/composite.rs | 4 +-- rsvg_internals/src/filters/image.rs | 3 +- rsvg_internals/src/filters/merge.rs | 2 +- rsvg_internals/src/filters/mod.rs | 14 +++----- rsvg_internals/src/filters/node.rs | 25 ++++++-------- rsvg_internals/src/gradient.rs | 26 +++++++-------- rsvg_internals/src/image.rs | 17 +++++----- rsvg_internals/src/marker.rs | 28 +++++++--------- rsvg_internals/src/mask.rs | 18 +++++----- rsvg_internals/src/parsers.rs | 28 +++++++++++----- rsvg_internals/src/pattern.rs | 24 +++++++------- rsvg_internals/src/shapes.rs | 58 ++++++++++++++------------------- rsvg_internals/src/stop.rs | 5 +-- rsvg_internals/src/structure.rs | 34 +++++++++---------- rsvg_internals/src/text.rs | 20 +++++------- 16 files changed, 145 insertions(+), 165 deletions(-) commit 36279792cb34f91cebbc862d3c50ec365a493116 Author: Ivan Molodetskikh Date: Wed Jun 13 21:50:54 2018 +0300 Don't render filters if they are in error rsvg_internals/src/drawing_ctx.rs | 20 ++++++++++++-------- rsvg_internals/src/filters/ffi.rs | 1 + 2 files changed, 13 insertions(+), 8 deletions(-) commit 48d6009876dd1e0871f372ce4f204103cdb4a9bc Author: Federico Mena Quintero Date: Wed Jun 13 11:07:49 2018 -0500 rustfmt rsvg_internals/src/node.rs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit f59801c24d44457c10b49262eec1b16bb52d967b Author: Ivan Molodetskikh Date: Wed Jun 13 12:55:03 2018 +0300 Remove leftover debug comment rsvg_internals/src/filters/bounds.rs | 2 -- 1 file changed, 2 deletions(-) commit b28dc716c5359a1b3edb15af7356cb706b2924d8 Author: Ivan Molodetskikh Date: Wed Jun 13 12:21:36 2018 +0300 Revert composite linearization fix rsvg_internals/src/filters/composite.rs | 10 ++- .../reftests/bugs/241-light-source-type-ref.png | Bin 4226 -> 3983 bytes .../reftests/svg1.1/filters-composite-04-f-ref.png | Bin 0 -> 114631 bytes .../reftests/svg1.1/filters-composite-04-f.svg | 78 +++++++++++++++++++++ .../reftests/svg1.1/filters-composite-05-f-ref.png | Bin 0 -> 33559 bytes .../reftests/svg1.1/filters-composite-05-f.svg | 67 ++++++++++++++++++ .../svg1.1/resources/stefan_252_tRNS_opti.png | Bin 0 -> 12777 bytes tests/fixtures/reftests/svg1.1/resources/tree.jpg | Bin 0 -> 66460 bytes 8 files changed, 152 insertions(+), 3 deletions(-) commit 89b3aad0f6a1db084e908fad78666aaa64278053 Author: Ivan Molodetskikh Date: Wed Jun 13 12:20:18 2018 +0300 Fix bbox computation in draw_surface() rsvg_internals/src/draw.rs | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) commit 1b524843dd559e00e132e8f524ec43c27e25a619 Author: Ivan Molodetskikh Date: Wed Jun 13 11:19:20 2018 +0300 Rename new tests ...effects-region-ref.png => filter-effects-region-ref.png} | Bin ...-filter-effects-region.svg => filter-effects-region.svg} | 0 ...age-ref.png => filter-image-from-reference-page-ref.png} | Bin ...erence-page.svg => filter-image-from-reference-page.svg} | 0 .../{test-filter-offset-ref.png => filter-offset-ref.png} | Bin .../reftests/{test-filter-offset.svg => filter-offset.svg} | 0 6 files changed, 0 insertions(+), 0 deletions(-) commit 0a370f5a6d4d2390fbb500362a6dc2ab326a7939 Author: Ivan Molodetskikh Date: Wed Jun 13 11:14:43 2018 +0300 Use correct CSS values in with_primitive_units() rsvg_internals/src/filters/context.rs | 5 ++--- .../reftests/test-filter-effects-region-ref.png | Bin 1624 -> 1636 bytes .../fixtures/reftests/test-filter-effects-region.svg | 14 ++++++++++---- 3 files changed, 12 insertions(+), 7 deletions(-) commit 62de56f91a43bad1f8e79169709aae373b294f72 Author: Ivan Molodetskikh Date: Wed Jun 13 11:06:44 2018 +0300 Use correct CSS values in compute_effects_region() rsvg_internals/src/filters/context.rs | 7 ++++--- .../reftests/test-filter-effects-region-ref.png | Bin 1598 -> 1624 bytes .../fixtures/reftests/test-filter-effects-region.svg | 14 ++++++++++++++ 3 files changed, 18 insertions(+), 3 deletions(-) commit affd9d5966a33b7dd71ea649a1fd8cf68c2cd21d Author: Ivan Molodetskikh Date: Wed Jun 13 10:40:20 2018 +0300 Add comments into feMerge rsvg_internals/src/filters/merge.rs | 2 ++ 1 file changed, 2 insertions(+) commit 90377faeaf11fcf5e3339a9304dbe96e99d123a8 Author: Ivan Molodetskikh Date: Wed Jun 13 10:38:59 2018 +0300 Change feOffset attributes to be numbers Since they are simple numbers, not lengths. rsvg_internals/src/filters/offset.rs | 32 +++++++++++++------------------- 1 file changed, 13 insertions(+), 19 deletions(-) commit 004203427d45fd600461d486748d5a88e0ce09dc Author: Ivan Molodetskikh Date: Wed Jun 13 10:34:44 2018 +0300 Use a better name for test-bbox ...test-bbox-ref.png => test-filter-effects-region-ref.png} | Bin .../{test-bbox.svg => test-filter-effects-region.svg} | 0 2 files changed, 0 insertions(+), 0 deletions(-) commit 31960dfc9724d17924ca148bd97704bd79f32a38 Author: Ivan Molodetskikh Date: Wed Jun 13 10:32:59 2018 +0300 Compute the filter effects region only once rsvg_internals/src/filters/bounds.rs | 4 +- rsvg_internals/src/filters/context.rs | 182 ++++++++++++++++++---------------- 2 files changed, 101 insertions(+), 85 deletions(-) commit 461009dd51d515d1e72b708976f0f25185117c0b Author: Ivan Molodetskikh Date: Wed Jun 13 10:17:33 2018 +0300 Add a missing dot rsvg_internals/src/filters/context.rs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 9ac0692f8d4b5d572722cba31e21b3e524eebfd0 Author: Paolo Borelli Date: Tue Jun 12 23:24:14 2018 +0200 node: simplify code that deals with state Do not expose a get_state and instead expose get_specified_values; this is a step toward just having SpecifiedValues as an immutable field of node. rsvg_internals/src/node.rs | 29 +++++++++++++++-------------- rsvg_internals/src/state.rs | 22 +++++++++++----------- rsvg_internals/src/structure.rs | 3 ++- 3 files changed, 28 insertions(+), 26 deletions(-) commit 294e01f5070000f02f03fe23177c16edb3c8d96c Author: Paolo Borelli Date: Tue Jun 12 23:03:20 2018 +0200 state: remove unused method rsvg_internals/src/state.rs | 8 -------- 1 file changed, 8 deletions(-) commit 464b2d4f68728608f25a96c48c5807cbc4faf3a2 Author: Paolo Borelli Date: Mon Jun 11 23:30:59 2018 +0200 node: move cond to the node itself There is no reason to have it in State since it is not related to styling rsvg_internals/src/node.rs | 52 ++++++++++++++++++++++++++++++++++++++++- rsvg_internals/src/state.rs | 47 ------------------------------------- rsvg_internals/src/structure.rs | 2 +- 3 files changed, 52 insertions(+), 49 deletions(-) commit ecc02857b97733df97ea6b11da0a9248a569af9d Author: Paolo Borelli Date: Mon Jun 11 22:33:42 2018 +0200 Fix typo (overriden -> overridden) librsvg/rsvg-load.c | 2 +- librsvg/rsvg-private.h | 2 +- rsvg_internals/src/lib.rs | 2 +- rsvg_internals/src/marker.rs | 2 +- rsvg_internals/src/node.rs | 10 +++++----- 5 files changed, 9 insertions(+), 9 deletions(-) commit b856dc6062795290eef1b9fda7323fe6a6b68e3e Author: Ivan Molodetskikh Date: Tue Jun 12 21:53:40 2018 +0300 Add notice about attributes into feOffset rsvg_internals/src/filters/offset.rs | 5 +++++ tests/fixtures/reftests/test-filter-offset-ref.png | Bin 0 -> 1040 bytes tests/fixtures/reftests/test-filter-offset.svg | 14 ++++++++++++++ 3 files changed, 19 insertions(+) commit e8c32d9d1653fcdce17118a703de9bf993f73668 Author: Ivan Molodetskikh Date: Tue Jun 12 21:33:10 2018 +0300 Fix missing linearization in composite arithmetic I accidentally removed it earlier rsvg_internals/src/filters/composite.rs | 5 +++-- .../reftests/bugs/241-light-source-type-ref.png | Bin 3983 -> 4226 bytes 2 files changed, 3 insertions(+), 2 deletions(-) commit b42de450d3446902992c272f0c8922b63baaad2d Author: Ivan Molodetskikh Date: Tue Jun 12 21:29:24 2018 +0300 Big filter bounds computation refactor Now we have two extra pixels in composite-02 ¯\_(ツ)_/¯ Makefile.am | 1 + rsvg_internals/src/bbox.rs | 2 +- rsvg_internals/src/filters/bounds.rs | 151 ++++++++++++ rsvg_internals/src/filters/composite.rs | 21 +- rsvg_internals/src/filters/context.rs | 268 ++++++++++++++------- rsvg_internals/src/filters/image.rs | 21 +- rsvg_internals/src/filters/merge.rs | 16 +- rsvg_internals/src/filters/mod.rs | 22 +- rsvg_internals/src/filters/offset.rs | 8 +- rsvg_internals/src/length.rs | 20 ++ .../reftests/svg1.1/filters-composite-02-b-ref.png | Bin 15917 -> 15918 bytes .../reftests/svg1.1/filters-image-03-f-ref.png | Bin 0 -> 10815 bytes .../reftests/svg1.1/filters-image-03-f.svg | 179 ++++++++++++++ .../reftests/svg1.1/filters-image-04-f-ref.png | Bin 0 -> 12642 bytes .../reftests/svg1.1/filters-image-04-f.svg | 119 +++++++++ tests/fixtures/reftests/test-bbox-ref.png | Bin 0 -> 1598 bytes tests/fixtures/reftests/test-bbox.svg | 40 +++ .../test-filter-image-from-reference-page-ref.png | Bin 0 -> 16648 bytes .../test-filter-image-from-reference-page.svg | 35 +++ 19 files changed, 783 insertions(+), 120 deletions(-) commit 06e8ef2d449fe714bc9554ce1928a54cdd38b9e7 Author: Jordan Petridis Date: Tue Jun 12 18:28:52 2018 +0000 CI: remove some rustc jobs. 6dd00f4f bumped the minimum rustc version to 1.24 .gitlab-ci.yml | 21 --------------------- 1 file changed, 21 deletions(-) commit 6dd00f4fa4ae30e3cde66af5db611e6052a35159 Author: Federico Mena Quintero Date: Tue Jun 12 13:19:02 2018 -0500 Require Rust 1.24 or later, for RefCell::replace() .gitlab-ci.yml | 3 --- COMPILING.md | 2 +- configure.ac | 3 ++- 3 files changed, 3 insertions(+), 5 deletions(-) commit 13fe6ccb9e1a146ad49586fa5c9a4bbc81a70d9e Author: Federico Mena Quintero Date: Tue Jun 12 13:17:40 2018 -0500 Post-release version bump to 2.43.1 configure.ac | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 9f8d34b5fd06a40a3630f3affcfbb2f7e7fbda85 Author: Ivan Molodetskikh Date: Sun Jun 10 10:34:48 2018 +0300 Don't render filter if bbox rect is empty Fixes #277. rsvg_internals/src/drawing_ctx.rs | 25 +- .../render-crash/277-filter-on-empty-group.svg | 312 +++++++++++++++++++++ 2 files changed, 328 insertions(+), 9 deletions(-) commit 404d5dcc764d99aa3155ea8fcc807ddc02ec2dd0 Author: Ivan Molodetskikh Date: Thu Jun 7 15:15:33 2018 +0300 Port (more or less) the rest of feImage librsvg/filters/image.c | 274 ------------------------------------ rsvg_internals/src/filters/image.rs | 144 +++++++++++++------ 2 files changed, 104 insertions(+), 314 deletions(-) commit 99f09ed9aec9bb3a73af047ef9e337be3d6b726b Author: Ivan Molodetskikh Date: Thu Jun 7 15:14:35 2018 +0300 Make FilterContext::drawing_context() return *mut rsvg_internals/src/filters/context.rs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 91ea6f3342f48f6e5ab59e95c2e4762182941878 Author: Ivan Molodetskikh Date: Thu Jun 7 15:14:06 2018 +0300 Add drawing_ctx::draw_node_on_surface() rsvg_internals/src/drawing_ctx.rs | 29 +++++++++++++++++++++++++++++ 1 file changed, 29 insertions(+) commit 18bc1cd17a7b3cd13f499493d0a49776b03e2d7f Author: Ivan Molodetskikh Date: Thu Jun 7 12:28:54 2018 +0300 WIP: partially port Image to Rust Makefile.am | 2 +- librsvg/filters/image.c | 1 + librsvg/rsvg-filter.h | 2 - rsvg_internals/src/filters/ffi.rs | 1 + rsvg_internals/src/filters/image.rs | 166 ++++++++++++++++++ rsvg_internals/src/filters/mod.rs | 1 + rsvg_internals/src/load.rs | 10 +- .../reftests/svg1.1/filters-image-01-b-ref.png | Bin 0 -> 91306 bytes .../reftests/svg1.1/filters-image-01-b.svg | 59 +++++++ .../reftests/svg1.1/filters-image-02-b-ref.png | Bin 0 -> 24267 bytes .../reftests/svg1.1/filters-image-02-b.svg | 83 +++++++++ .../reftests/svg1.1/filters-image-05-f-ref.png | Bin 0 -> 18840 bytes .../reftests/svg1.1/filters-image-05-f.svg | 195 +++++++++++++++++++++ tests/fixtures/reftests/svg1.1/images/image1.jpg | Bin 0 -> 34183 bytes .../fixtures/reftests/svg1.1/images/pinksquidj.png | Bin 0 -> 31090 bytes tests/fixtures/reftests/svg1.1/images/smiley.png | Bin 0 -> 2856 bytes 16 files changed, 510 insertions(+), 10 deletions(-)