Browse Source

Added a grid shape

Close #68
dev
Andy Meneely 10 years ago
parent
commit
b00cc99dd0
  1. 1
      CHANGELOG.md
  2. 25
      lib/squib/api/shapes.rb
  3. 22
      lib/squib/graphics/shapes.rb
  4. 5
      samples/draw_shapes.rb
  5. 558
      spec/data/samples/draw_shapes.rb.txt
  6. 2
      spec/data/samples/gradients.rb.txt
  7. BIN
      spec/samples/expected/shape_00.png

1
CHANGELOG.md

@ -6,6 +6,7 @@ Squib follows [semantic versioning](http://semver.org).
Features: Features:
* Crop your PNGs and SVGs! This means you can work from spritesheets if you want. New options to `png` and `svg` are documented in the API docs and demonstrated in the `load_images.rb` sample. (#11) * Crop your PNGs and SVGs! This means you can work from spritesheets if you want. New options to `png` and `svg` are documented in the API docs and demonstrated in the `load_images.rb` sample. (#11)
* Flip your PNGs and SVGs! Set `flip_horizontal: true` or `flip_vertical: true` (or both!) to flip the image about it's center. (#11) * Flip your PNGs and SVGs! Set `flip_horizontal: true` or `flip_vertical: true` (or both!) to flip the image about it's center. (#11)
* Added a `grid` shape that fills the whole card with a grid of your choosing. (#68)
Chores: Chores:
* Ripped out a lot of old constants used from the old way we handled arguments. Yay negative churn! * Ripped out a lot of old constants used from the old way we handled arguments. Yay negative churn!

25
lib/squib/api/shapes.rb

@ -91,6 +91,31 @@ module Squib
range.each { |i| @cards[i].ellipse(box[i], draw[i]) } range.each { |i| @cards[i].ellipse(box[i], draw[i]) }
end end
# Draw an unlimited grid
#
# @example
# grid x: 0, y: 0, width: 15, height: 15
#
# Options support Arrays, see {file:README.md#Arrays_and_Singleton_Expansion Arrays and Singleon Expansion}
#
# @option opts range [Enumerable, :all] (:all) the range of cards over which this will be rendered. See {file:README.md#Specifying_Ranges Specifying Ranges}
# @option opts x [Integer] (0) the x-coordinate to place. Supports Unit Conversion, see {file:README.md#Units Units}.
# @option opts y [Integer] (0) the y-coordinate to place. Supports Unit Conversion, see {file:README.md#Units Units}.
# @option opts width [Integer] the width of the rectangle. Supports Unit Conversion, see {file:README.md#Units Units}.
# @option opts height [Integer] the height of the rectangle. Supports Unit Conversion, see {file:README.md#Units Units}.
# @option opts stroke_color [String] (:black) the color with which to stroke the outside of the rectangle. {file:README.md#Specifying_Colors___Gradients Specifying Colors & Gradients}
# @option opts stroke_width [Decimal] (2.0) the width of the outside stroke. Supports Unit Conversion, see {file:README.md#Units Units}.
# @option opts dash [String] ('') define a dash pattern for the stroke. Provide a string with space-separated numbers that define the pattern of on-and-off alternating strokes, measured in pixels by defautl. Supports Unit Conversion, see {file:README.md#Units Units} (e.g. `'0.02in 0.02in'`).
# @option opts layout [String, Symbol] (nil) entry in the layout to use as defaults for this command. See {file:README.md#Custom_Layouts Custom Layouts}
# @return [nil] intended to be void
# @api public
def grid(opts = {})
range = Args::CardRange.new(opts[:range], deck_size: size)
draw = Args::Draw.new(custom_colors).load!(opts, expand_by: size, layout: layout, dpi: dpi)
box = Args::Box.new(self).load!(opts, expand_by: size, layout: layout, dpi: dpi)
range.each { |i| @cards[i].grid(box[i], draw[i]) }
end
# Draw a triangle using the given coordinates # Draw a triangle using the given coordinates
# #
# @example # @example

22
lib/squib/graphics/shapes.rb

@ -47,6 +47,16 @@ module Squib
end end
end end
# :nodoc:
# @api private
def grid(box, draw)
x, y, w, h = box.x, box.y, box.width, box.height
use_cairo do |cc|
(x..@width + w).step(w) { |ix| line_xy( ix, y - @height, ix, @height + y, draw) }
(y..@height + h).step(h) { |iy| line_xy( x - @width, iy, @width + x, iy, draw) }
end
end
# :nodoc: # :nodoc:
# @api private # @api private
def triangle(tri, draw) def triangle(tri, draw)
@ -59,10 +69,16 @@ module Squib
# :nodoc: # :nodoc:
# @api private # @api private
def line(coord, draw) def line(coord, draw)
line_xy(coord.x1, coord.y1, coord.x2, coord.y2, draw)
end
# :nodoc:
# @api private
def line_xy(x1, y1, x2, y2, draw)
use_cairo do |cc| use_cairo do |cc|
cc.move_to(coord.x1, coord.y1) cc.move_to(x1, y1)
cc.line_to(coord.x2, coord.y2) cc.line_to(x2, y2)
cc.fill_n_stroke(draw) cc.fancy_stroke(draw)
end end
end end

5
samples/draw_shapes.rb

@ -3,7 +3,10 @@ require 'squib'
Squib::Deck.new do Squib::Deck.new do
background color: :white background color: :white
rect x: 300, y: 100, width: 200, height: 50, dash: '4 2' grid x: 10, y: 10, width: 50, height: 50, stroke_color: '#0066FF', stroke_width: 1.5
grid x: 10, y: 10, width: 200, height: 200, stroke_color: '#0066FF', stroke_width: 3
rect x: 305, y: 105, width: 200, height: 50, dash: '4 2'
rect x: 300, y: 300, width: 400, height: 400, rect x: 300, y: 300, width: 400, height: 400,
fill_color: :blue, stroke_color: :red, stroke_width: 50.0, fill_color: :blue, stroke_color: :red, stroke_width: 50.0,

558
spec/data/samples/draw_shapes.rb.txt

@ -4,7 +4,561 @@ cairo: set_source_color(["white"])
cairo: paint([]) cairo: paint([])
cairo: restore([]) cairo: restore([])
cairo: save([]) cairo: save([])
cairo: rounded_rectangle([300, 100, 200, 50, 0, 0]) cairo: save([])
cairo: move_to([10, -1115])
cairo: line_to([10, 1135])
cairo: set_source_color(["#0066FF"])
cairo: set_line_width([1.5])
cairo: set_line_join([0])
cairo: set_line_cap([0])
cairo: set_dash([[]])
cairo: stroke([])
cairo: restore([])
cairo: save([])
cairo: move_to([60, -1115])
cairo: line_to([60, 1135])
cairo: set_source_color(["#0066FF"])
cairo: set_line_width([1.5])
cairo: set_line_join([0])
cairo: set_line_cap([0])
cairo: set_dash([[]])
cairo: stroke([])
cairo: restore([])
cairo: save([])
cairo: move_to([110, -1115])
cairo: line_to([110, 1135])
cairo: set_source_color(["#0066FF"])
cairo: set_line_width([1.5])
cairo: set_line_join([0])
cairo: set_line_cap([0])
cairo: set_dash([[]])
cairo: stroke([])
cairo: restore([])
cairo: save([])
cairo: move_to([160, -1115])
cairo: line_to([160, 1135])
cairo: set_source_color(["#0066FF"])
cairo: set_line_width([1.5])
cairo: set_line_join([0])
cairo: set_line_cap([0])
cairo: set_dash([[]])
cairo: stroke([])
cairo: restore([])
cairo: save([])
cairo: move_to([210, -1115])
cairo: line_to([210, 1135])
cairo: set_source_color(["#0066FF"])
cairo: set_line_width([1.5])
cairo: set_line_join([0])
cairo: set_line_cap([0])
cairo: set_dash([[]])
cairo: stroke([])
cairo: restore([])
cairo: save([])
cairo: move_to([260, -1115])
cairo: line_to([260, 1135])
cairo: set_source_color(["#0066FF"])
cairo: set_line_width([1.5])
cairo: set_line_join([0])
cairo: set_line_cap([0])
cairo: set_dash([[]])
cairo: stroke([])
cairo: restore([])
cairo: save([])
cairo: move_to([310, -1115])
cairo: line_to([310, 1135])
cairo: set_source_color(["#0066FF"])
cairo: set_line_width([1.5])
cairo: set_line_join([0])
cairo: set_line_cap([0])
cairo: set_dash([[]])
cairo: stroke([])
cairo: restore([])
cairo: save([])
cairo: move_to([360, -1115])
cairo: line_to([360, 1135])
cairo: set_source_color(["#0066FF"])
cairo: set_line_width([1.5])
cairo: set_line_join([0])
cairo: set_line_cap([0])
cairo: set_dash([[]])
cairo: stroke([])
cairo: restore([])
cairo: save([])
cairo: move_to([410, -1115])
cairo: line_to([410, 1135])
cairo: set_source_color(["#0066FF"])
cairo: set_line_width([1.5])
cairo: set_line_join([0])
cairo: set_line_cap([0])
cairo: set_dash([[]])
cairo: stroke([])
cairo: restore([])
cairo: save([])
cairo: move_to([460, -1115])
cairo: line_to([460, 1135])
cairo: set_source_color(["#0066FF"])
cairo: set_line_width([1.5])
cairo: set_line_join([0])
cairo: set_line_cap([0])
cairo: set_dash([[]])
cairo: stroke([])
cairo: restore([])
cairo: save([])
cairo: move_to([510, -1115])
cairo: line_to([510, 1135])
cairo: set_source_color(["#0066FF"])
cairo: set_line_width([1.5])
cairo: set_line_join([0])
cairo: set_line_cap([0])
cairo: set_dash([[]])
cairo: stroke([])
cairo: restore([])
cairo: save([])
cairo: move_to([560, -1115])
cairo: line_to([560, 1135])
cairo: set_source_color(["#0066FF"])
cairo: set_line_width([1.5])
cairo: set_line_join([0])
cairo: set_line_cap([0])
cairo: set_dash([[]])
cairo: stroke([])
cairo: restore([])
cairo: save([])
cairo: move_to([610, -1115])
cairo: line_to([610, 1135])
cairo: set_source_color(["#0066FF"])
cairo: set_line_width([1.5])
cairo: set_line_join([0])
cairo: set_line_cap([0])
cairo: set_dash([[]])
cairo: stroke([])
cairo: restore([])
cairo: save([])
cairo: move_to([660, -1115])
cairo: line_to([660, 1135])
cairo: set_source_color(["#0066FF"])
cairo: set_line_width([1.5])
cairo: set_line_join([0])
cairo: set_line_cap([0])
cairo: set_dash([[]])
cairo: stroke([])
cairo: restore([])
cairo: save([])
cairo: move_to([710, -1115])
cairo: line_to([710, 1135])
cairo: set_source_color(["#0066FF"])
cairo: set_line_width([1.5])
cairo: set_line_join([0])
cairo: set_line_cap([0])
cairo: set_dash([[]])
cairo: stroke([])
cairo: restore([])
cairo: save([])
cairo: move_to([760, -1115])
cairo: line_to([760, 1135])
cairo: set_source_color(["#0066FF"])
cairo: set_line_width([1.5])
cairo: set_line_join([0])
cairo: set_line_cap([0])
cairo: set_dash([[]])
cairo: stroke([])
cairo: restore([])
cairo: save([])
cairo: move_to([810, -1115])
cairo: line_to([810, 1135])
cairo: set_source_color(["#0066FF"])
cairo: set_line_width([1.5])
cairo: set_line_join([0])
cairo: set_line_cap([0])
cairo: set_dash([[]])
cairo: stroke([])
cairo: restore([])
cairo: save([])
cairo: move_to([860, -1115])
cairo: line_to([860, 1135])
cairo: set_source_color(["#0066FF"])
cairo: set_line_width([1.5])
cairo: set_line_join([0])
cairo: set_line_cap([0])
cairo: set_dash([[]])
cairo: stroke([])
cairo: restore([])
cairo: save([])
cairo: move_to([-815, 10])
cairo: line_to([835, 10])
cairo: set_source_color(["#0066FF"])
cairo: set_line_width([1.5])
cairo: set_line_join([0])
cairo: set_line_cap([0])
cairo: set_dash([[]])
cairo: stroke([])
cairo: restore([])
cairo: save([])
cairo: move_to([-815, 60])
cairo: line_to([835, 60])
cairo: set_source_color(["#0066FF"])
cairo: set_line_width([1.5])
cairo: set_line_join([0])
cairo: set_line_cap([0])
cairo: set_dash([[]])
cairo: stroke([])
cairo: restore([])
cairo: save([])
cairo: move_to([-815, 110])
cairo: line_to([835, 110])
cairo: set_source_color(["#0066FF"])
cairo: set_line_width([1.5])
cairo: set_line_join([0])
cairo: set_line_cap([0])
cairo: set_dash([[]])
cairo: stroke([])
cairo: restore([])
cairo: save([])
cairo: move_to([-815, 160])
cairo: line_to([835, 160])
cairo: set_source_color(["#0066FF"])
cairo: set_line_width([1.5])
cairo: set_line_join([0])
cairo: set_line_cap([0])
cairo: set_dash([[]])
cairo: stroke([])
cairo: restore([])
cairo: save([])
cairo: move_to([-815, 210])
cairo: line_to([835, 210])
cairo: set_source_color(["#0066FF"])
cairo: set_line_width([1.5])
cairo: set_line_join([0])
cairo: set_line_cap([0])
cairo: set_dash([[]])
cairo: stroke([])
cairo: restore([])
cairo: save([])
cairo: move_to([-815, 260])
cairo: line_to([835, 260])
cairo: set_source_color(["#0066FF"])
cairo: set_line_width([1.5])
cairo: set_line_join([0])
cairo: set_line_cap([0])
cairo: set_dash([[]])
cairo: stroke([])
cairo: restore([])
cairo: save([])
cairo: move_to([-815, 310])
cairo: line_to([835, 310])
cairo: set_source_color(["#0066FF"])
cairo: set_line_width([1.5])
cairo: set_line_join([0])
cairo: set_line_cap([0])
cairo: set_dash([[]])
cairo: stroke([])
cairo: restore([])
cairo: save([])
cairo: move_to([-815, 360])
cairo: line_to([835, 360])
cairo: set_source_color(["#0066FF"])
cairo: set_line_width([1.5])
cairo: set_line_join([0])
cairo: set_line_cap([0])
cairo: set_dash([[]])
cairo: stroke([])
cairo: restore([])
cairo: save([])
cairo: move_to([-815, 410])
cairo: line_to([835, 410])
cairo: set_source_color(["#0066FF"])
cairo: set_line_width([1.5])
cairo: set_line_join([0])
cairo: set_line_cap([0])
cairo: set_dash([[]])
cairo: stroke([])
cairo: restore([])
cairo: save([])
cairo: move_to([-815, 460])
cairo: line_to([835, 460])
cairo: set_source_color(["#0066FF"])
cairo: set_line_width([1.5])
cairo: set_line_join([0])
cairo: set_line_cap([0])
cairo: set_dash([[]])
cairo: stroke([])
cairo: restore([])
cairo: save([])
cairo: move_to([-815, 510])
cairo: line_to([835, 510])
cairo: set_source_color(["#0066FF"])
cairo: set_line_width([1.5])
cairo: set_line_join([0])
cairo: set_line_cap([0])
cairo: set_dash([[]])
cairo: stroke([])
cairo: restore([])
cairo: save([])
cairo: move_to([-815, 560])
cairo: line_to([835, 560])
cairo: set_source_color(["#0066FF"])
cairo: set_line_width([1.5])
cairo: set_line_join([0])
cairo: set_line_cap([0])
cairo: set_dash([[]])
cairo: stroke([])
cairo: restore([])
cairo: save([])
cairo: move_to([-815, 610])
cairo: line_to([835, 610])
cairo: set_source_color(["#0066FF"])
cairo: set_line_width([1.5])
cairo: set_line_join([0])
cairo: set_line_cap([0])
cairo: set_dash([[]])
cairo: stroke([])
cairo: restore([])
cairo: save([])
cairo: move_to([-815, 660])
cairo: line_to([835, 660])
cairo: set_source_color(["#0066FF"])
cairo: set_line_width([1.5])
cairo: set_line_join([0])
cairo: set_line_cap([0])
cairo: set_dash([[]])
cairo: stroke([])
cairo: restore([])
cairo: save([])
cairo: move_to([-815, 710])
cairo: line_to([835, 710])
cairo: set_source_color(["#0066FF"])
cairo: set_line_width([1.5])
cairo: set_line_join([0])
cairo: set_line_cap([0])
cairo: set_dash([[]])
cairo: stroke([])
cairo: restore([])
cairo: save([])
cairo: move_to([-815, 760])
cairo: line_to([835, 760])
cairo: set_source_color(["#0066FF"])
cairo: set_line_width([1.5])
cairo: set_line_join([0])
cairo: set_line_cap([0])
cairo: set_dash([[]])
cairo: stroke([])
cairo: restore([])
cairo: save([])
cairo: move_to([-815, 810])
cairo: line_to([835, 810])
cairo: set_source_color(["#0066FF"])
cairo: set_line_width([1.5])
cairo: set_line_join([0])
cairo: set_line_cap([0])
cairo: set_dash([[]])
cairo: stroke([])
cairo: restore([])
cairo: save([])
cairo: move_to([-815, 860])
cairo: line_to([835, 860])
cairo: set_source_color(["#0066FF"])
cairo: set_line_width([1.5])
cairo: set_line_join([0])
cairo: set_line_cap([0])
cairo: set_dash([[]])
cairo: stroke([])
cairo: restore([])
cairo: save([])
cairo: move_to([-815, 910])
cairo: line_to([835, 910])
cairo: set_source_color(["#0066FF"])
cairo: set_line_width([1.5])
cairo: set_line_join([0])
cairo: set_line_cap([0])
cairo: set_dash([[]])
cairo: stroke([])
cairo: restore([])
cairo: save([])
cairo: move_to([-815, 960])
cairo: line_to([835, 960])
cairo: set_source_color(["#0066FF"])
cairo: set_line_width([1.5])
cairo: set_line_join([0])
cairo: set_line_cap([0])
cairo: set_dash([[]])
cairo: stroke([])
cairo: restore([])
cairo: save([])
cairo: move_to([-815, 1010])
cairo: line_to([835, 1010])
cairo: set_source_color(["#0066FF"])
cairo: set_line_width([1.5])
cairo: set_line_join([0])
cairo: set_line_cap([0])
cairo: set_dash([[]])
cairo: stroke([])
cairo: restore([])
cairo: save([])
cairo: move_to([-815, 1060])
cairo: line_to([835, 1060])
cairo: set_source_color(["#0066FF"])
cairo: set_line_width([1.5])
cairo: set_line_join([0])
cairo: set_line_cap([0])
cairo: set_dash([[]])
cairo: stroke([])
cairo: restore([])
cairo: save([])
cairo: move_to([-815, 1110])
cairo: line_to([835, 1110])
cairo: set_source_color(["#0066FF"])
cairo: set_line_width([1.5])
cairo: set_line_join([0])
cairo: set_line_cap([0])
cairo: set_dash([[]])
cairo: stroke([])
cairo: restore([])
cairo: save([])
cairo: move_to([-815, 1160])
cairo: line_to([835, 1160])
cairo: set_source_color(["#0066FF"])
cairo: set_line_width([1.5])
cairo: set_line_join([0])
cairo: set_line_cap([0])
cairo: set_dash([[]])
cairo: stroke([])
cairo: restore([])
cairo: restore([])
cairo: save([])
cairo: save([])
cairo: move_to([10, -1115])
cairo: line_to([10, 1135])
cairo: set_source_color(["#0066FF"])
cairo: set_line_width([3])
cairo: set_line_join([0])
cairo: set_line_cap([0])
cairo: set_dash([[]])
cairo: stroke([])
cairo: restore([])
cairo: save([])
cairo: move_to([210, -1115])
cairo: line_to([210, 1135])
cairo: set_source_color(["#0066FF"])
cairo: set_line_width([3])
cairo: set_line_join([0])
cairo: set_line_cap([0])
cairo: set_dash([[]])
cairo: stroke([])
cairo: restore([])
cairo: save([])
cairo: move_to([410, -1115])
cairo: line_to([410, 1135])
cairo: set_source_color(["#0066FF"])
cairo: set_line_width([3])
cairo: set_line_join([0])
cairo: set_line_cap([0])
cairo: set_dash([[]])
cairo: stroke([])
cairo: restore([])
cairo: save([])
cairo: move_to([610, -1115])
cairo: line_to([610, 1135])
cairo: set_source_color(["#0066FF"])
cairo: set_line_width([3])
cairo: set_line_join([0])
cairo: set_line_cap([0])
cairo: set_dash([[]])
cairo: stroke([])
cairo: restore([])
cairo: save([])
cairo: move_to([810, -1115])
cairo: line_to([810, 1135])
cairo: set_source_color(["#0066FF"])
cairo: set_line_width([3])
cairo: set_line_join([0])
cairo: set_line_cap([0])
cairo: set_dash([[]])
cairo: stroke([])
cairo: restore([])
cairo: save([])
cairo: move_to([1010, -1115])
cairo: line_to([1010, 1135])
cairo: set_source_color(["#0066FF"])
cairo: set_line_width([3])
cairo: set_line_join([0])
cairo: set_line_cap([0])
cairo: set_dash([[]])
cairo: stroke([])
cairo: restore([])
cairo: save([])
cairo: move_to([-815, 10])
cairo: line_to([835, 10])
cairo: set_source_color(["#0066FF"])
cairo: set_line_width([3])
cairo: set_line_join([0])
cairo: set_line_cap([0])
cairo: set_dash([[]])
cairo: stroke([])
cairo: restore([])
cairo: save([])
cairo: move_to([-815, 210])
cairo: line_to([835, 210])
cairo: set_source_color(["#0066FF"])
cairo: set_line_width([3])
cairo: set_line_join([0])
cairo: set_line_cap([0])
cairo: set_dash([[]])
cairo: stroke([])
cairo: restore([])
cairo: save([])
cairo: move_to([-815, 410])
cairo: line_to([835, 410])
cairo: set_source_color(["#0066FF"])
cairo: set_line_width([3])
cairo: set_line_join([0])
cairo: set_line_cap([0])
cairo: set_dash([[]])
cairo: stroke([])
cairo: restore([])
cairo: save([])
cairo: move_to([-815, 610])
cairo: line_to([835, 610])
cairo: set_source_color(["#0066FF"])
cairo: set_line_width([3])
cairo: set_line_join([0])
cairo: set_line_cap([0])
cairo: set_dash([[]])
cairo: stroke([])
cairo: restore([])
cairo: save([])
cairo: move_to([-815, 810])
cairo: line_to([835, 810])
cairo: set_source_color(["#0066FF"])
cairo: set_line_width([3])
cairo: set_line_join([0])
cairo: set_line_cap([0])
cairo: set_dash([[]])
cairo: stroke([])
cairo: restore([])
cairo: save([])
cairo: move_to([-815, 1010])
cairo: line_to([835, 1010])
cairo: set_source_color(["#0066FF"])
cairo: set_line_width([3])
cairo: set_line_join([0])
cairo: set_line_cap([0])
cairo: set_dash([[]])
cairo: stroke([])
cairo: restore([])
cairo: save([])
cairo: move_to([-815, 1210])
cairo: line_to([835, 1210])
cairo: set_source_color(["#0066FF"])
cairo: set_line_width([3])
cairo: set_line_join([0])
cairo: set_line_cap([0])
cairo: set_dash([[]])
cairo: stroke([])
cairo: restore([])
cairo: restore([])
cairo: save([])
cairo: rounded_rectangle([305, 105, 200, 50, 0, 0])
cairo: set_source_color(["#0000"]) cairo: set_source_color(["#0000"])
cairo: fill_preserve([]) cairo: fill_preserve([])
cairo: set_source_color(["black"]) cairo: set_source_color(["black"])
@ -51,8 +605,6 @@ cairo: restore([])
cairo: save([]) cairo: save([])
cairo: move_to([50, 550]) cairo: move_to([50, 550])
cairo: line_to([150, 650]) cairo: line_to([150, 650])
cairo: set_source_color(["#0000"])
cairo: fill_preserve([])
cairo: set_source_color(["black"]) cairo: set_source_color(["black"])
cairo: set_line_width([25.0]) cairo: set_line_width([25.0])
cairo: set_line_join([0]) cairo: set_line_join([0])

2
spec/data/samples/gradients.rb.txt

@ -6,8 +6,6 @@ cairo: restore([])
cairo: save([]) cairo: save([])
cairo: move_to([0, 600]) cairo: move_to([0, 600])
cairo: line_to([825, 600]) cairo: line_to([825, 600])
cairo: set_source_color(["#0000"])
cairo: fill_preserve([])
cairo: set_source([LinearPattern]) cairo: set_source([LinearPattern])
cairo: set_line_width([15]) cairo: set_line_width([15])
cairo: set_line_join([0]) cairo: set_line_join([0])

BIN
spec/samples/expected/shape_00.png

Binary file not shown.

Before

Width:  |  Height:  |  Size: 33 KiB

After

Width:  |  Height:  |  Size: 39 KiB

Loading…
Cancel
Save