Sha256: 4843830ce7c88172a2d6bf552ec424e1972a4f313323fc8f2c570ac66540f46b
Contents?: true
Size: 1.86 KB
Versions: 1
Compression:
Stored size: 1.86 KB
Contents
require 'cairo' require 'squib/input_helpers' require 'squib/graphics/cairo_context_wrapper' module Squib # Back end graphics. Private. class Card include Squib::InputHelpers # :nodoc: # @api private attr_reader :width, :height, :backend, :svgfile # :nodoc: # @api private attr_accessor :cairo_surface, :cairo_context # :nodoc: # @api private def initialize(deck, width, height, backend=:memory, index=-1) @deck = deck @width = width @height = height @backend = backend @svgfile = "#{deck.dir}/#{deck.prefix}#{deck.count_format % index}.svg" @cairo_surface = make_surface(@svgfile, backend) @cairo_context = Squib::Graphics::CairoContextWrapper.new(Cairo::Context.new(@cairo_surface)) @cairo_context.antialias = ANTIALIAS_OPTS[(@deck.antialias.downcase)] || 'subpixel' end def make_surface(svgfile, backend) case backend when :memory Cairo::ImageSurface.new(@width, @height) when :svg Dir.mkdir @deck.dir unless Dir.exists?(@deck.dir) Cairo::SVGSurface.new(svgfile, @width, @height) else Squib.logger.fatal "Back end not recognized: '#{backend}'" abort end end # A save/restore wrapper for using Cairo # :nodoc: # @api private def use_cairo(&block) @cairo_context.save block.yield(@cairo_context) @cairo_context.restore end ######################## ### BACKEND GRAPHICS ### ######################## require 'squib/graphics/background' require 'squib/graphics/image' require 'squib/graphics/save_doc' require 'squib/graphics/save_images' require 'squib/graphics/shapes' require 'squib/graphics/showcase' require 'squib/graphics/text' end end
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
squib-0.4.0 | lib/squib/card.rb |