Browse Source

Refactored drawing to get fill_n_stroke

Contributes to #75
dev
Andy Meneely 11 years ago
parent
commit
6c60f21bb0
  1. 6
      CHANGELOG.md
  2. 10
      lib/squib/graphics/cairo_context_wrapper.rb
  3. 47
      lib/squib/graphics/shapes.rb
  4. 8
      samples/draw_shapes.rb
  5. 30
      spec/data/samples/basic.rb.txt
  6. 37
      spec/data/samples/draw_shapes.rb.txt
  7. 5
      spec/data/samples/embed_text.rb.txt
  8. 20
      spec/data/samples/gradients.rb.txt
  9. 80
      spec/data/samples/hand.rb.txt
  10. 5
      spec/data/samples/load_images.rb.txt
  11. 80
      spec/data/samples/saves.rb.txt
  12. 20
      spec/data/samples/showcase.rb.txt
  13. 45
      spec/data/samples/text_options.rb.txt
  14. 10
      spec/data/samples/tgc_proofs.rb.txt
  15. 15
      spec/data/samples/units.rb.txt
  16. 10
      spec/graphics/graphics_shapes_spec.rb
  17. BIN
      spec/samples/expected/hand.png
  18. BIN
      spec/samples/expected/hand_pretty.png
  19. BIN
      spec/samples/expected/layout_00.png
  20. BIN
      spec/samples/expected/shape_00.png
  21. BIN
      spec/samples/expected/showcase.png
  22. BIN
      spec/samples/expected/showcase2.png
  23. BIN
      spec/samples/expected/showcase_individual_00.png
  24. BIN
      spec/samples/expected/showcase_individual_01.png
  25. BIN
      spec/samples/expected/showcase_individual_02.png
  26. BIN
      spec/samples/expected/showcase_individual_03.png
  27. 2
      spec/samples/samples_regression_spec.rb

6
CHANGELOG.md

@ -3,6 +3,12 @@ Squib follows [semantic versioning](http://semver.org).
## v0.7.0 / Unreleased
Compatibility:
* All drawn shapes (e.g. circle, triangle, star) will now draw their stroke on top of the fill. This was not consistent before, and now it is (because Squib is more DRY about it!). This might mean that your `stroke_width` will render wider than before.
Chores:
* Refactoring to make internal drawing code more DRY (#75)
## v0.6.0 / 2015-05-26
Features:

10
lib/squib/graphics/cairo_context_wrapper.rb

@ -48,6 +48,16 @@ module Squib
@cairo_cxt.set_source_color(arg)
end
end
# Convenience method for a common task
# @api private
def fill_n_stroke(fill_color, stroke_color, stroke_width)
set_source_squibcolor(fill_color)
fill_preserve
set_source_squibcolor(stroke_color)
set_line_width(stroke_width)
stroke
end
end
end
end

47
lib/squib/graphics/shapes.rb

@ -9,12 +9,7 @@ module Squib
height = @height if height == :native
use_cairo do |cc|
cc.rounded_rectangle(x, y, width, height, x_radius, y_radius)
cc.set_source_squibcolor(stroke_color)
cc.set_line_width(stroke_width)
cc.stroke
cc.rounded_rectangle(x, y, width, height, x_radius, y_radius)
cc.set_source_squibcolor(fill_color)
cc.fill
cc.fill_n_stroke(fill_color, stroke_color, stroke_width)
end
end
@ -24,12 +19,7 @@ module Squib
use_cairo do |cc|
cc.move_to(x + radius, y)
cc.circle(x, y, radius)
cc.set_source_squibcolor(stroke_color)
cc.set_line_width(stroke_width)
cc.stroke
cc.circle(x, y, radius)
cc.set_source_squibcolor(fill_color)
cc.fill
cc.fill_n_stroke(fill_color, stroke_color, stroke_width)
end
end
@ -53,11 +43,7 @@ module Squib
cc.curve_to(x + 0.25*w, y + h, # south to west
x, y + 0.75*h,
x, y + 0.5*h)
cc.set_source_squibcolor(stroke_color)
cc.set_line_width(stroke_width)
cc.stroke_preserve
cc.set_source_squibcolor(fill_color)
cc.fill
cc.fill_n_stroke(fill_color, stroke_color, stroke_width)
end
end
@ -66,12 +52,7 @@ module Squib
def triangle(x1, y1, x2, y2, x3, y3, fill_color, stroke_color, stroke_width)
use_cairo do |cc|
cc.triangle(x1, y1, x2, y2, x3, y3)
cc.set_source_squibcolor(stroke_color)
cc.set_line_width(stroke_width)
cc.stroke
cc.triangle(x1, y1, x2, y2, x3, y3)
cc.set_source_squibcolor(fill_color)
cc.fill
cc.fill_n_stroke(fill_color, stroke_color, stroke_width)
end
end
@ -93,13 +74,7 @@ module Squib
use_cairo do |cc|
cc.move_to(x1, y1)
cc.curve_to(cx1, cy1, cx2, cy2, x2, y2)
cc.set_line_width(stroke_width)
cc.set_source_squibcolor(stroke_color)
cc.stroke
cc.move_to(x1, y1)
cc.curve_to(cx1, cy1, cx2, cy2, x2, y2)
cc.set_source_squibcolor(fill_color)
cc.fill
cc.fill_n_stroke(fill_color, stroke_color, stroke_width)
end
end
@ -118,11 +93,7 @@ module Squib
y + radius * Math::sin(i * theta))
end
cc.close_path
cc.set_source_squibcolor(stroke_color)
cc.set_line_width(stroke_width)
cc.fill_preserve
cc.set_source_squibcolor(fill_color)
cc.stroke
cc.fill_n_stroke(fill_color, stroke_color, stroke_width)
end
end
@ -140,11 +111,7 @@ module Squib
y + radius * Math::sin(i * theta))
end
cc.close_path
cc.set_source_squibcolor(stroke_color)
cc.set_line_width(stroke_width)
cc.fill_preserve
cc.set_source_squibcolor(fill_color)
cc.stroke
cc.fill_n_stroke(fill_color, stroke_color, stroke_width)
end
end

8
samples/draw_shapes.rb

@ -10,7 +10,9 @@ Squib::Deck.new do
triangle x1: 50, y1: 50,
x2: 150, y2: 150,
x3: 75, y3: 250
x3: 75, y3: 250,
fill_color: :gray, stroke_color: :green, stroke_width: 3.0
line x1: 50, y1: 550,
x2: 150, y2: 650,
@ -26,10 +28,10 @@ Squib::Deck.new do
fill_color: :burgundy
star x: 300, y: 1000, n: 5, inner_radius: 10, outer_radius: 25,
fill_color: :burgundy, stroke_color: :cyan, stroke_width: 3
fill_color: :cyan, stroke_color: :burgundy, stroke_width: 3
polygon x: 500, y: 1000, n: 5, radius: 25, angle: Math::PI / 2,
fill_color: :burgundy, stroke_color: :cyan, stroke_width: 2
fill_color: :cyan, stroke_color: :burgundy, stroke_width: 2
save_png prefix: 'shape_'
end

30
spec/data/samples/basic.rb.txt

@ -15,57 +15,51 @@ cairo: paint([])
cairo: restore([])
cairo: save([])
cairo: rounded_rectangle([38, 38, 750, 1050, 38, 38])
cairo: set_source_color(["#0000"])
cairo: fill_preserve([])
cairo: set_source_color([:black])
cairo: set_line_width([2.0])
cairo: stroke([])
cairo: rounded_rectangle([38, 38, 750, 1050, 38, 38])
cairo: set_source_color(["#0000"])
cairo: fill([])
cairo: restore([])
cairo: save([])
cairo: rounded_rectangle([38, 38, 750, 1050, 38, 38])
cairo: set_source_color(["#0000"])
cairo: fill_preserve([])
cairo: set_source_color([:black])
cairo: set_line_width([2.0])
cairo: stroke([])
cairo: rounded_rectangle([38, 38, 750, 1050, 38, 38])
cairo: set_source_color(["#0000"])
cairo: fill([])
cairo: restore([])
cairo: save([])
cairo: rounded_rectangle([38, 38, 750, 1050, 38, 38])
cairo: set_source_color(["#0000"])
cairo: fill_preserve([])
cairo: set_source_color([:black])
cairo: set_line_width([2.0])
cairo: stroke([])
cairo: rounded_rectangle([38, 38, 750, 1050, 38, 38])
cairo: set_source_color(["#0000"])
cairo: fill([])
cairo: restore([])
cairo: save([])
cairo: rounded_rectangle([75, 75, 128, 128, 25, 25])
cairo: set_source_color(["#0000"])
cairo: fill_preserve([])
cairo: set_source_color([:black])
cairo: set_line_width([2.0])
cairo: stroke([])
cairo: rounded_rectangle([75, 75, 128, 128, 25, 25])
cairo: set_source_color(["#0000"])
cairo: fill([])
cairo: restore([])
cairo: save([])
cairo: rounded_rectangle([75, 75, 128, 128, 25, 25])
cairo: set_source_color(["#0000"])
cairo: fill_preserve([])
cairo: set_source_color([:black])
cairo: set_line_width([2.0])
cairo: stroke([])
cairo: rounded_rectangle([75, 75, 128, 128, 25, 25])
cairo: set_source_color(["#0000"])
cairo: fill([])
cairo: restore([])
cairo: save([])
cairo: rounded_rectangle([75, 75, 128, 128, 25, 25])
cairo: set_source_color(["#0000"])
cairo: fill_preserve([])
cairo: set_source_color([:black])
cairo: set_line_width([2.0])
cairo: stroke([])
cairo: rounded_rectangle([75, 75, 128, 128, 25, 25])
cairo: set_source_color(["#0000"])
cairo: fill([])
cairo: restore([])
cairo: save([])
cairo: set_source_color([:black])

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

@ -5,31 +5,28 @@ cairo: paint([])
cairo: restore([])
cairo: save([])
cairo: rounded_rectangle([300, 300, 400, 400, 0, 0])
cairo: set_source_color([:blue])
cairo: fill_preserve([])
cairo: set_source_color([:red])
cairo: set_line_width([50.0])
cairo: stroke([])
cairo: rounded_rectangle([300, 300, 400, 400, 0, 0])
cairo: set_source_color([:blue])
cairo: fill([])
cairo: restore([])
cairo: save([])
cairo: move_to([675, 600])
cairo: circle([600, 600, 75])
cairo: set_source_color([:gray])
cairo: fill_preserve([])
cairo: set_source_color([:green])
cairo: set_line_width([8.0])
cairo: stroke([])
cairo: circle([600, 600, 75])
cairo: set_source_color([:gray])
cairo: fill([])
cairo: restore([])
cairo: save([])
cairo: triangle([50, 50, 150, 150, 75, 250])
cairo: set_source_color([:black])
cairo: set_line_width([2.0])
cairo: set_source_color([:gray])
cairo: fill_preserve([])
cairo: set_source_color([:green])
cairo: set_line_width([3.0])
cairo: stroke([])
cairo: triangle([50, 50, 150, 150, 75, 250])
cairo: set_source_color(["#0000"])
cairo: fill([])
cairo: restore([])
cairo: save([])
cairo: move_to([50, 550])
@ -41,13 +38,11 @@ cairo: restore([])
cairo: save([])
cairo: move_to([50, 850])
cairo: curve_to([150, 700, 150, 700, 625, 900])
cairo: set_line_width([12.0])
cairo: set_source_color([:burgundy])
cairo: fill_preserve([])
cairo: set_source_color([:cyan])
cairo: set_line_width([12.0])
cairo: stroke([])
cairo: move_to([50, 850])
cairo: curve_to([150, 700, 150, 700, 625, 900])
cairo: set_source_color([:burgundy])
cairo: fill([])
cairo: restore([])
cairo: save([])
cairo: move_to([50, 975.0])
@ -55,11 +50,11 @@ cairo: curve_to([50, 950.0, 100.0, 925, 150.0, 925])
cairo: curve_to([200.0, 925, 250, 950.0, 250, 975.0])
cairo: curve_to([250, 1000.0, 200.0, 1025, 150.0, 1025])
cairo: curve_to([100.0, 1025, 50, 1000.0, 50, 975.0])
cairo: set_source_color([:burgundy])
cairo: fill_preserve([])
cairo: set_source_color([:cyan])
cairo: set_line_width([5.0])
cairo: stroke_preserve([])
cairo: set_source_color([:burgundy])
cairo: fill([])
cairo: stroke([])
cairo: restore([])
cairo: save([])
cairo: translate([300, 1000])
@ -79,9 +74,9 @@ cairo: line_to([308.09016994374946, 994.1221474770753])
cairo: line_to([325.0, 1000.0])
cairo: close_path([])
cairo: set_source_color([:cyan])
cairo: set_line_width([3])
cairo: fill_preserve([])
cairo: set_source_color([:burgundy])
cairo: set_line_width([3])
cairo: stroke([])
cairo: restore([])
cairo: save([])
@ -97,9 +92,9 @@ cairo: line_to([507.7254248593737, 976.2235870926212])
cairo: line_to([525.0, 1000.0])
cairo: close_path([])
cairo: set_source_color([:cyan])
cairo: set_line_width([2])
cairo: fill_preserve([])
cairo: set_source_color([:burgundy])
cairo: set_line_width([2])
cairo: stroke([])
cairo: restore([])
surface: write_to_png(["_output/shape_00.png"])

5
spec/data/samples/embed_text.rb.txt

@ -5,12 +5,11 @@ cairo: paint([])
cairo: restore([])
cairo: save([])
cairo: rounded_rectangle([0, 0, 825, 1125, 0, 0])
cairo: set_source_color(["#0000"])
cairo: fill_preserve([])
cairo: set_source_color([:black])
cairo: set_line_width([2.0])
cairo: stroke([])
cairo: rounded_rectangle([0, 0, 825, 1125, 0, 0])
cairo: set_source_color(["#0000"])
cairo: fill([])
cairo: restore([])
cairo: save([])
cairo: set_source_color([:black])

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

@ -13,39 +13,35 @@ cairo: restore([])
cairo: save([])
cairo: move_to([515, 415])
cairo: circle([415, 415, 100])
cairo: set_source([RadialPattern])
cairo: fill_preserve([])
cairo: set_source_color(["#0000"])
cairo: set_line_width([2.0])
cairo: stroke([])
cairo: circle([415, 415, 100])
cairo: set_source([RadialPattern])
cairo: fill([])
cairo: restore([])
cairo: save([])
cairo: triangle([650, 360, 550, 500, 750, 500])
cairo: set_source([RadialPattern])
cairo: fill_preserve([])
cairo: set_source_color(["#0000"])
cairo: set_line_width([2.0])
cairo: stroke([])
cairo: triangle([650, 360, 550, 500, 750, 500])
cairo: set_source([RadialPattern])
cairo: fill([])
cairo: restore([])
cairo: save([])
cairo: rounded_rectangle([30, 350, 150, 150, 15, 15])
cairo: set_source([LinearPattern])
cairo: fill_preserve([])
cairo: set_source_color(["#0000"])
cairo: set_line_width([2.0])
cairo: stroke([])
cairo: rounded_rectangle([30, 350, 150, 150, 15, 15])
cairo: set_source([LinearPattern])
cairo: fill([])
cairo: restore([])
cairo: save([])
cairo: rounded_rectangle([40, 360, 130, 130, 15, 15])
cairo: set_source([LinearPattern])
cairo: fill_preserve([])
cairo: set_source_color(["#0000"])
cairo: set_line_width([2.0])
cairo: stroke([])
cairo: rounded_rectangle([40, 360, 130, 130, 15, 15])
cairo: set_source([LinearPattern])
cairo: fill([])
cairo: restore([])
cairo: save([])
cairo: set_source([LinearPattern])

80
spec/data/samples/hand.rb.txt

@ -41,146 +41,130 @@ cairo: restore([])
cairo: save([])
cairo: rounded_rectangle([37, 37, 750, 1050, 25, 25])
cairo: set_source_color([:black])
cairo: fill_preserve([])
cairo: set_source_color([:black])
cairo: set_line_width([2.0])
cairo: stroke([])
cairo: rounded_rectangle([37, 37, 750, 1050, 25, 25])
cairo: set_source_color([:black])
cairo: fill([])
cairo: restore([])
cairo: save([])
cairo: rounded_rectangle([37, 37, 750, 1050, 25, 25])
cairo: set_source_color([:black])
cairo: fill_preserve([])
cairo: set_source_color([:black])
cairo: set_line_width([2.0])
cairo: stroke([])
cairo: rounded_rectangle([37, 37, 750, 1050, 25, 25])
cairo: set_source_color([:black])
cairo: fill([])
cairo: restore([])
cairo: save([])
cairo: rounded_rectangle([37, 37, 750, 1050, 25, 25])
cairo: set_source_color([:black])
cairo: fill_preserve([])
cairo: set_source_color([:black])
cairo: set_line_width([2.0])
cairo: stroke([])
cairo: rounded_rectangle([37, 37, 750, 1050, 25, 25])
cairo: set_source_color([:black])
cairo: fill([])
cairo: restore([])
cairo: save([])
cairo: rounded_rectangle([37, 37, 750, 1050, 25, 25])
cairo: set_source_color([:black])
cairo: fill_preserve([])
cairo: set_source_color([:black])
cairo: set_line_width([2.0])
cairo: stroke([])
cairo: rounded_rectangle([37, 37, 750, 1050, 25, 25])
cairo: set_source_color([:black])
cairo: fill([])
cairo: restore([])
cairo: save([])
cairo: rounded_rectangle([37, 37, 750, 1050, 25, 25])
cairo: set_source_color([:black])
cairo: fill_preserve([])
cairo: set_source_color([:black])
cairo: set_line_width([2.0])
cairo: stroke([])
cairo: rounded_rectangle([37, 37, 750, 1050, 25, 25])
cairo: set_source_color([:black])
cairo: fill([])
cairo: restore([])
cairo: save([])
cairo: rounded_rectangle([37, 37, 750, 1050, 25, 25])
cairo: set_source_color([:black])
cairo: fill_preserve([])
cairo: set_source_color([:black])
cairo: set_line_width([2.0])
cairo: stroke([])
cairo: rounded_rectangle([37, 37, 750, 1050, 25, 25])
cairo: set_source_color([:black])
cairo: fill([])
cairo: restore([])
cairo: save([])
cairo: rounded_rectangle([37, 37, 750, 1050, 25, 25])
cairo: set_source_color([:black])
cairo: fill_preserve([])
cairo: set_source_color([:black])
cairo: set_line_width([2.0])
cairo: stroke([])
cairo: rounded_rectangle([37, 37, 750, 1050, 25, 25])
cairo: set_source_color([:black])
cairo: fill([])
cairo: restore([])
cairo: save([])
cairo: rounded_rectangle([37, 37, 750, 1050, 25, 25])
cairo: set_source_color([:black])
cairo: fill_preserve([])
cairo: set_source_color([:black])
cairo: set_line_width([2.0])
cairo: stroke([])
cairo: rounded_rectangle([37, 37, 750, 1050, 25, 25])
cairo: set_source_color([:black])
cairo: fill([])
cairo: restore([])
cairo: save([])
cairo: rounded_rectangle([75, 75, 675, 975, 20, 20])
cairo: set_source_color([:white])
cairo: fill_preserve([])
cairo: set_source_color([:black])
cairo: set_line_width([2.0])
cairo: stroke([])
cairo: rounded_rectangle([75, 75, 675, 975, 20, 20])
cairo: set_source_color([:white])
cairo: fill([])
cairo: restore([])
cairo: save([])
cairo: rounded_rectangle([75, 75, 675, 975, 20, 20])
cairo: set_source_color([:white])
cairo: fill_preserve([])
cairo: set_source_color([:black])
cairo: set_line_width([2.0])
cairo: stroke([])
cairo: rounded_rectangle([75, 75, 675, 975, 20, 20])
cairo: set_source_color([:white])
cairo: fill([])
cairo: restore([])
cairo: save([])
cairo: rounded_rectangle([75, 75, 675, 975, 20, 20])
cairo: set_source_color([:white])
cairo: fill_preserve([])
cairo: set_source_color([:black])
cairo: set_line_width([2.0])
cairo: stroke([])
cairo: rounded_rectangle([75, 75, 675, 975, 20, 20])
cairo: set_source_color([:white])
cairo: fill([])
cairo: restore([])
cairo: save([])
cairo: rounded_rectangle([75, 75, 675, 975, 20, 20])
cairo: set_source_color([:white])
cairo: fill_preserve([])
cairo: set_source_color([:black])
cairo: set_line_width([2.0])
cairo: stroke([])
cairo: rounded_rectangle([75, 75, 675, 975, 20, 20])
cairo: set_source_color([:white])
cairo: fill([])
cairo: restore([])
cairo: save([])
cairo: rounded_rectangle([75, 75, 675, 975, 20, 20])
cairo: set_source_color([:white])
cairo: fill_preserve([])
cairo: set_source_color([:black])
cairo: set_line_width([2.0])
cairo: stroke([])
cairo: rounded_rectangle([75, 75, 675, 975, 20, 20])
cairo: set_source_color([:white])
cairo: fill([])
cairo: restore([])
cairo: save([])
cairo: rounded_rectangle([75, 75, 675, 975, 20, 20])
cairo: set_source_color([:white])
cairo: fill_preserve([])
cairo: set_source_color([:black])
cairo: set_line_width([2.0])
cairo: stroke([])
cairo: rounded_rectangle([75, 75, 675, 975, 20, 20])
cairo: set_source_color([:white])
cairo: fill([])
cairo: restore([])
cairo: save([])
cairo: rounded_rectangle([75, 75, 675, 975, 20, 20])
cairo: set_source_color([:white])
cairo: fill_preserve([])
cairo: set_source_color([:black])
cairo: set_line_width([2.0])
cairo: stroke([])
cairo: rounded_rectangle([75, 75, 675, 975, 20, 20])
cairo: set_source_color([:white])
cairo: fill([])
cairo: restore([])
cairo: save([])
cairo: rounded_rectangle([75, 75, 675, 975, 20, 20])
cairo: set_source_color([:white])
cairo: fill_preserve([])
cairo: set_source_color([:black])
cairo: set_line_width([2.0])
cairo: stroke([])
cairo: rounded_rectangle([75, 75, 675, 975, 20, 20])
cairo: set_source_color([:white])
cairo: fill([])
cairo: restore([])
cairo: save([])
cairo: set_source_color([:black])

5
spec/data/samples/load_images.rb.txt

@ -5,12 +5,11 @@ cairo: paint([])
cairo: restore([])
cairo: save([])
cairo: rounded_rectangle([38, 38, 750, 1050, 38, 38])
cairo: set_source_color(["#0000"])
cairo: fill_preserve([])
cairo: set_source_color([:black])
cairo: set_line_width([2.0])
cairo: stroke([])
cairo: rounded_rectangle([38, 38, 750, 1050, 38, 38])
cairo: set_source_color(["#0000"])
cairo: fill([])
cairo: restore([])
cairo: save([])
cairo: translate([620, 75])

80
spec/data/samples/saves.rb.txt

@ -80,147 +80,131 @@ cairo: paint([])
cairo: restore([])
cairo: save([])
cairo: rounded_rectangle([38, 38, 750, 1050, 38, 38])
cairo: set_source_color(["#0000"])
cairo: fill_preserve([])
cairo: set_source_color([:black])
cairo: set_line_width([2.0])
cairo: stroke([])
cairo: rounded_rectangle([38, 38, 750, 1050, 38, 38])
cairo: set_source_color(["#0000"])
cairo: fill([])
cairo: restore([])
cairo: save([])
cairo: rounded_rectangle([38, 38, 750, 1050, 38, 38])
cairo: set_source_color(["#0000"])
cairo: fill_preserve([])
cairo: set_source_color([:black])
cairo: set_line_width([2.0])
cairo: stroke([])
cairo: rounded_rectangle([38, 38, 750, 1050, 38, 38])
cairo: set_source_color(["#0000"])
cairo: fill([])
cairo: restore([])
cairo: save([])
cairo: rounded_rectangle([38, 38, 750, 1050, 38, 38])
cairo: set_source_color(["#0000"])
cairo: fill_preserve([])
cairo: set_source_color([:black])
cairo: set_line_width([2.0])
cairo: stroke([])
cairo: rounded_rectangle([38, 38, 750, 1050, 38, 38])
cairo: set_source_color(["#0000"])
cairo: fill([])
cairo: restore([])
cairo: save([])
cairo: rounded_rectangle([38, 38, 750, 1050, 38, 38])
cairo: set_source_color(["#0000"])
cairo: fill_preserve([])
cairo: set_source_color([:black])
cairo: set_line_width([2.0])
cairo: stroke([])
cairo: rounded_rectangle([38, 38, 750, 1050, 38, 38])
cairo: set_source_color(["#0000"])
cairo: fill([])
cairo: restore([])
cairo: save([])
cairo: rounded_rectangle([38, 38, 750, 1050, 38, 38])
cairo: set_source_color(["#0000"])
cairo: fill_preserve([])
cairo: set_source_color([:black])
cairo: set_line_width([2.0])
cairo: stroke([])
cairo: rounded_rectangle([38, 38, 750, 1050, 38, 38])
cairo: set_source_color(["#0000"])
cairo: fill([])
cairo: restore([])
cairo: save([])
cairo: rounded_rectangle([38, 38, 750, 1050, 38, 38])
cairo: set_source_color(["#0000"])
cairo: fill_preserve([])
cairo: set_source_color([:black])
cairo: set_line_width([2.0])
cairo: stroke([])
cairo: rounded_rectangle([38, 38, 750, 1050, 38, 38])
cairo: set_source_color(["#0000"])
cairo: fill([])
cairo: restore([])
cairo: save([])
cairo: rounded_rectangle([38, 38, 750, 1050, 38, 38])
cairo: set_source_color(["#0000"])
cairo: fill_preserve([])
cairo: set_source_color([:black])
cairo: set_line_width([2.0])
cairo: stroke([])
cairo: rounded_rectangle([38, 38, 750, 1050, 38, 38])
cairo: set_source_color(["#0000"])
cairo: fill([])
cairo: restore([])
cairo: save([])
cairo: rounded_rectangle([38, 38, 750, 1050, 38, 38])
cairo: set_source_color(["#0000"])
cairo: fill_preserve([])
cairo: set_source_color([:black])
cairo: set_line_width([2.0])
cairo: stroke([])
cairo: rounded_rectangle([38, 38, 750, 1050, 38, 38])
cairo: set_source_color(["#0000"])
cairo: fill([])
cairo: restore([])
cairo: save([])
cairo: rounded_rectangle([38, 38, 750, 1050, 38, 38])
cairo: set_source_color(["#0000"])
cairo: fill_preserve([])
cairo: set_source_color([:black])
cairo: set_line_width([2.0])
cairo: stroke([])
cairo: rounded_rectangle([38, 38, 750, 1050, 38, 38])
cairo: set_source_color(["#0000"])
cairo: fill([])
cairo: restore([])
cairo: save([])
cairo: rounded_rectangle([38, 38, 750, 1050, 38, 38])
cairo: set_source_color(["#0000"])
cairo: fill_preserve([])
cairo: set_source_color([:black])
cairo: set_line_width([2.0])
cairo: stroke([])
cairo: rounded_rectangle([38, 38, 750, 1050, 38, 38])
cairo: set_source_color(["#0000"])
cairo: fill([])
cairo: restore([])
cairo: save([])
cairo: rounded_rectangle([38, 38, 750, 1050, 38, 38])
cairo: set_source_color(["#0000"])
cairo: fill_preserve([])
cairo: set_source_color([:black])
cairo: set_line_width([2.0])
cairo: stroke([])
cairo: rounded_rectangle([38, 38, 750, 1050, 38, 38])
cairo: set_source_color(["#0000"])
cairo: fill([])
cairo: restore([])
cairo: save([])
cairo: rounded_rectangle([38, 38, 750, 1050, 38, 38])
cairo: set_source_color(["#0000"])
cairo: fill_preserve([])
cairo: set_source_color([:black])
cairo: set_line_width([2.0])
cairo: stroke([])
cairo: rounded_rectangle([38, 38, 750, 1050, 38, 38])
cairo: set_source_color(["#0000"])
cairo: fill([])
cairo: restore([])
cairo: save([])
cairo: rounded_rectangle([38, 38, 750, 1050, 38, 38])
cairo: set_source_color(["#0000"])
cairo: fill_preserve([])
cairo: set_source_color([:black])
cairo: set_line_width([2.0])
cairo: stroke([])
cairo: rounded_rectangle([38, 38, 750, 1050, 38, 38])
cairo: set_source_color(["#0000"])
cairo: fill([])
cairo: restore([])
cairo: save([])
cairo: rounded_rectangle([38, 38, 750, 1050, 38, 38])
cairo: set_source_color(["#0000"])
cairo: fill_preserve([])
cairo: set_source_color([:black])
cairo: set_line_width([2.0])
cairo: stroke([])
cairo: rounded_rectangle([38, 38, 750, 1050, 38, 38])
cairo: set_source_color(["#0000"])
cairo: fill([])
cairo: restore([])
cairo: save([])
cairo: rounded_rectangle([38, 38, 750, 1050, 38, 38])
cairo: set_source_color(["#0000"])
cairo: fill_preserve([])
cairo: set_source_color([:black])
cairo: set_line_width([2.0])
cairo: stroke([])
cairo: rounded_rectangle([38, 38, 750, 1050, 38, 38])
cairo: set_source_color(["#0000"])
cairo: fill([])
cairo: restore([])
cairo: save([])
cairo: rounded_rectangle([38, 38, 750, 1050, 38, 38])
cairo: set_source_color(["#0000"])
cairo: fill_preserve([])
cairo: set_source_color([:black])
cairo: set_line_width([2.0])
cairo: stroke([])
cairo: rounded_rectangle([38, 38, 750, 1050, 38, 38])
cairo: set_source_color(["#0000"])
cairo: fill([])
cairo: restore([])
cairo: save([])
cairo: set_source_color([:black])

20
spec/data/samples/showcase.rb.txt

@ -20,39 +20,35 @@ cairo: paint([])
cairo: restore([])
cairo: save([])
cairo: rounded_rectangle([78, 78, 675.0, 975.0, 32, 32])
cairo: set_source_color(["#DED4B9"])
cairo: fill_preserve([])
cairo: set_source_color([:black])
cairo: set_line_width([2.0])
cairo: stroke([])
cairo: rounded_rectangle([78, 78, 675.0, 975.0, 32, 32])
cairo: set_source_color(["#DED4B9"])
cairo: fill([])
cairo: restore([])
cairo: save([])
cairo: rounded_rectangle([78, 78, 675.0, 975.0, 32, 32])
cairo: set_source_color(["#DED4B9"])
cairo: fill_preserve([])
cairo: set_source_color([:black])
cairo: set_line_width([2.0])
cairo: stroke([])
cairo: rounded_rectangle([78, 78, 675.0, 975.0, 32, 32])
cairo: set_source_color(["#DED4B9"])
cairo: fill([])
cairo: restore([])
cairo: save([])
cairo: rounded_rectangle([78, 78, 675.0, 975.0, 32, 32])
cairo: set_source_color(["#DED4B9"])
cairo: fill_preserve([])
cairo: set_source_color([:black])
cairo: set_line_width([2.0])
cairo: stroke([])
cairo: rounded_rectangle([78, 78, 675.0, 975.0, 32, 32])
cairo: set_source_color(["#DED4B9"])
cairo: fill([])
cairo: restore([])
cairo: save([])
cairo: rounded_rectangle([78, 78, 675.0, 975.0, 32, 32])
cairo: set_source_color(["#DED4B9"])
cairo: fill_preserve([])
cairo: set_source_color([:black])
cairo: set_line_width([2.0])
cairo: stroke([])
cairo: rounded_rectangle([78, 78, 675.0, 975.0, 32, 32])
cairo: set_source_color(["#DED4B9"])
cairo: fill([])
cairo: restore([])
cairo: save([])
cairo: set_source_color([:black])

45
spec/data/samples/text_options.rb.txt

@ -15,57 +15,51 @@ cairo: paint([])
cairo: restore([])
cairo: save([])
cairo: rounded_rectangle([15, 15, 795, 1095, 50, 50])
cairo: set_source_color(["#0000"])
cairo: fill_preserve([])
cairo: set_source_color([:black])
cairo: set_line_width([2.0])
cairo: stroke([])
cairo: rounded_rectangle([15, 15, 795, 1095, 50, 50])
cairo: set_source_color(["#0000"])
cairo: fill([])
cairo: restore([])
cairo: save([])
cairo: rounded_rectangle([15, 15, 795, 1095, 50, 50])
cairo: set_source_color(["#0000"])
cairo: fill_preserve([])
cairo: set_source_color([:black])
cairo: set_line_width([2.0])
cairo: stroke([])
cairo: rounded_rectangle([15, 15, 795, 1095, 50, 50])
cairo: set_source_color(["#0000"])
cairo: fill([])
cairo: restore([])
cairo: save([])
cairo: rounded_rectangle([15, 15, 795, 1095, 50, 50])
cairo: set_source_color(["#0000"])
cairo: fill_preserve([])
cairo: set_source_color([:black])
cairo: set_line_width([2.0])
cairo: stroke([])
cairo: rounded_rectangle([15, 15, 795, 1095, 50, 50])
cairo: set_source_color(["#0000"])
cairo: fill([])
cairo: restore([])
cairo: save([])
cairo: rounded_rectangle([30, 30, 128, 128, 25, 25])
cairo: set_source_color(["#0000"])
cairo: fill_preserve([])
cairo: set_source_color([:black])
cairo: set_line_width([2.0])
cairo: stroke([])
cairo: rounded_rectangle([30, 30, 128, 128, 25, 25])
cairo: set_source_color(["#0000"])
cairo: fill([])
cairo: restore([])
cairo: save([])
cairo: rounded_rectangle([30, 30, 128, 128, 25, 25])
cairo: set_source_color(["#0000"])
cairo: fill_preserve([])
cairo: set_source_color([:black])
cairo: set_line_width([2.0])
cairo: stroke([])
cairo: rounded_rectangle([30, 30, 128, 128, 25, 25])
cairo: set_source_color(["#0000"])
cairo: fill([])
cairo: restore([])
cairo: save([])
cairo: rounded_rectangle([30, 30, 128, 128, 25, 25])
cairo: set_source_color(["#0000"])
cairo: fill_preserve([])
cairo: set_source_color([:black])
cairo: set_line_width([2.0])
cairo: stroke([])
cairo: rounded_rectangle([30, 30, 128, 128, 25, 25])
cairo: set_source_color(["#0000"])
cairo: fill([])
cairo: restore([])
cairo: save([])
cairo: set_source_color([:black])
@ -450,30 +444,27 @@ cairo: show_pango_layout([MockDouble])
cairo: restore([])
cairo: save([])
cairo: rounded_rectangle([60, 545, 10, 10, 10, 10])
cairo: set_source_color(["#0000"])
cairo: fill_preserve([])
cairo: set_source_color([:black])
cairo: set_line_width([2.0])
cairo: stroke([])
cairo: rounded_rectangle([60, 545, 10, 10, 10, 10])
cairo: set_source_color(["#0000"])
cairo: fill([])
cairo: restore([])
cairo: save([])
cairo: rounded_rectangle([60, 545, 10, 10, 10, 10])
cairo: set_source_color(["#0000"])
cairo: fill_preserve([])
cairo: set_source_color([:black])
cairo: set_line_width([2.0])
cairo: stroke([])
cairo: rounded_rectangle([60, 545, 10, 10, 10, 10])
cairo: set_source_color(["#0000"])
cairo: fill([])
cairo: restore([])
cairo: save([])
cairo: rounded_rectangle([60, 545, 10, 10, 10, 10])
cairo: set_source_color(["#0000"])
cairo: fill_preserve([])
cairo: set_source_color([:black])
cairo: set_line_width([2.0])
cairo: stroke([])
cairo: rounded_rectangle([60, 545, 10, 10, 10, 10])
cairo: set_source_color(["#0000"])
cairo: fill([])
cairo: restore([])
cairo: save([])
cairo: set_source_color([:black])

10
spec/data/samples/tgc_proofs.rb.txt

@ -5,21 +5,19 @@ cairo: paint([])
cairo: restore([])
cairo: save([])
cairo: rounded_rectangle([38, 38, 750, 1050, 38, 38])
cairo: set_source_color(["#0000"])
cairo: fill_preserve([])
cairo: set_source_color([:black])
cairo: set_line_width([2.0])
cairo: stroke([])
cairo: rounded_rectangle([38, 38, 750, 1050, 38, 38])
cairo: set_source_color(["#0000"])
cairo: fill([])
cairo: restore([])
cairo: save([])
cairo: rounded_rectangle([75, 75, 128, 128, 25, 25])
cairo: set_source_color(["#0000"])
cairo: fill_preserve([])
cairo: set_source_color([:black])
cairo: set_line_width([2.0])
cairo: stroke([])
cairo: rounded_rectangle([75, 75, 128, 128, 25, 25])
cairo: set_source_color(["#0000"])
cairo: fill([])
cairo: restore([])
cairo: save([])
cairo: set_source_color([:black])

15
spec/data/samples/units.rb.txt

@ -5,29 +5,26 @@ cairo: paint([])
cairo: restore([])
cairo: save([])
cairo: rounded_rectangle([37.5, 37.5, 750.0, 1050.0, 25, 25])
cairo: set_source_color(["#0000"])
cairo: fill_preserve([])
cairo: set_source_color([:black])
cairo: set_line_width([2.0])
cairo: stroke([])
cairo: rounded_rectangle([37.5, 37.5, 750.0, 1050.0, 25, 25])
cairo: set_source_color(["#0000"])
cairo: fill([])
cairo: restore([])
cairo: save([])
cairo: rounded_rectangle([75.0, 75.0, 675.0, 975.0, 25, 25])
cairo: set_source_color(["#0000"])
cairo: fill_preserve([])
cairo: set_source_color([:black])
cairo: set_line_width([2.0])
cairo: stroke([])
cairo: rounded_rectangle([75.0, 75.0, 675.0, 975.0, 25, 25])
cairo: set_source_color(["#0000"])
cairo: fill([])
cairo: restore([])
cairo: save([])
cairo: rounded_rectangle([472.4409444, 472.4409444, 100, 100, 0, 0])
cairo: set_source_color(["#0000"])
cairo: fill_preserve([])
cairo: set_source_color([:black])
cairo: set_line_width([2.0])
cairo: stroke([])
cairo: rounded_rectangle([472.4409444, 472.4409444, 100, 100, 0, 0])
cairo: set_source_color(["#0000"])
cairo: fill([])
cairo: restore([])
surface: write_to_png(["_output/units_00.png"])

10
spec/graphics/graphics_shapes_spec.rb

@ -7,11 +7,11 @@ describe Squib::Card do
let(:cxt) { double(Cairo::Context) }
def expect_stroke(cxt, fill_color, stroke_color, stroke_width)
expect(cxt).to receive(:set_source_color).with(fill_color).once
expect(cxt).to receive(:fill_preserve).once
expect(cxt).to receive(:set_source_color).with(stroke_color).once
expect(cxt).to receive(:set_line_width).with(stroke_width).once
expect(cxt).to receive(:stroke).once
expect(cxt).to receive(:set_source_color).with(fill_color).once
expect(cxt).to receive(:fill).once
end
before(:each) do
@ -27,7 +27,7 @@ describe Squib::Card do
it 'make all the expected calls on a smoke test' do
expect(cxt).to receive(:antialias=).with('subpixel')
expect(cxt).to receive(:save).once
expect(cxt).to receive(:rounded_rectangle).with(37, 38, 50, 100, 10, 15).twice
expect(cxt).to receive(:rounded_rectangle).with(37, 38, 50, 100, 10, 15).once
expect_stroke(cxt, '#fff', '#f00', 2.0)
expect(cxt).to receive(:restore).once
@ -43,7 +43,7 @@ describe Squib::Card do
expect(cxt).to receive(:antialias=).with('subpixel')
expect(cxt).to receive(:save).once
expect(cxt).to receive(:move_to).with(137, 38)
expect(cxt).to receive(:circle).with(37, 38, 100).twice
expect(cxt).to receive(:circle).with(37, 38, 100).once
expect_stroke(cxt, '#fff', '#f00', 2.0)
expect(cxt).to receive(:restore).once
@ -58,7 +58,7 @@ describe Squib::Card do
it 'make all the expected calls on a smoke test' do
expect(cxt).to receive(:antialias=).with('subpixel')
expect(cxt).to receive(:save).once
expect(cxt).to receive(:triangle).with(1, 2, 3, 4, 5, 6).twice
expect(cxt).to receive(:triangle).with(1, 2, 3, 4, 5, 6).once
expect_stroke(cxt, '#fff', '#f00', 2.0)
expect(cxt).to receive(:restore).once

BIN
spec/samples/expected/hand.png

Binary file not shown.

Before

Width:  |  Height:  |  Size: 183 KiB

After

Width:  |  Height:  |  Size: 183 KiB

BIN
spec/samples/expected/hand_pretty.png

Binary file not shown.

Before

Width:  |  Height:  |  Size: 142 KiB

After

Width:  |  Height:  |  Size: 142 KiB

BIN
spec/samples/expected/layout_00.png

Binary file not shown.

Before

Width:  |  Height:  |  Size: 31 KiB

After

Width:  |  Height:  |  Size: 31 KiB

BIN
spec/samples/expected/shape_00.png

Binary file not shown.

Before

Width:  |  Height:  |  Size: 30 KiB

After

Width:  |  Height:  |  Size: 29 KiB

BIN
spec/samples/expected/showcase.png

Binary file not shown.

Before

Width:  |  Height:  |  Size: 392 KiB

After

Width:  |  Height:  |  Size: 397 KiB

BIN
spec/samples/expected/showcase2.png

Binary file not shown.

Before

Width:  |  Height:  |  Size: 323 KiB

After

Width:  |  Height:  |  Size: 329 KiB

BIN
spec/samples/expected/showcase_individual_00.png

Binary file not shown.

Before

Width:  |  Height:  |  Size: 24 KiB

After

Width:  |  Height:  |  Size: 24 KiB

BIN
spec/samples/expected/showcase_individual_01.png

Binary file not shown.

Before

Width:  |  Height:  |  Size: 22 KiB

After

Width:  |  Height:  |  Size: 23 KiB

BIN
spec/samples/expected/showcase_individual_02.png

Binary file not shown.

Before

Width:  |  Height:  |  Size: 22 KiB

After

Width:  |  Height:  |  Size: 23 KiB

BIN
spec/samples/expected/showcase_individual_03.png

Binary file not shown.

Before

Width:  |  Height:  |  Size: 24 KiB

After

Width:  |  Height:  |  Size: 24 KiB

2
spec/samples/samples_regression_spec.rb

@ -73,7 +73,7 @@ describe "Squib samples" do
log = StringIO.new
mock_cairo(log)
load sample
# overwrite_sample(sample, log) # Use TEMPORARILY once happy with the new sample log
overwrite_sample(sample, log) # Use TEMPORARILY once happy with the new sample log
test_file_str = File.open(sample_regression_file(sample), 'r:UTF-8').read
expect(log.string).to eq(test_file_str)
end

Loading…
Cancel
Save