Class: Display

Inherits:
Object
  • Object
show all
Defined in:
lib/delve/display/display.rb

Instance Method Summary collapse

Constructor Details

#initialize(renderer, options = Hash.new) ⇒ Display

Returns a new instance of Display.



3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
# File 'lib/delve/display/display.rb', line 3

def initialize(renderer, options=Hash.new)
  raise 'Cannot initialize display with no renderer' unless renderer
 
  @renderer = renderer
  @dirty = false
  @render_data = Hash.new
 
  default_options = {
    :width        => 80,
    :height       => 24,
    :background   => :black,
    :foreground   => :white
  }

  options.keys.each { |k| default_options[k] = options[k] }
  @options = default_options
  @renderer.init
end

Instance Method Details

#draw(x, y, char, foreground = nil, background = nil) ⇒ Object



22
23
24
25
26
27
# File 'lib/delve/display/display.rb', line 22

def draw(x, y, char, foreground=nil, background=nil)
  fg = foreground || @options[:foreground]
  bg = background || @options[:background]
  @render_data["#{x},#{y}"] = { :x => x, :y => y, :char => char, :foreground => fg, :background => bg }
  @dirty = true
end

#exitObject



40
41
42
# File 'lib/delve/display/display.rb', line 40

def exit
  @renderer.exit
end

#heightObject



44
45
46
# File 'lib/delve/display/display.rb', line 44

def height
  @renderer.height
end

#optionsObject



29
30
31
# File 'lib/delve/display/display.rb', line 29

def options
  return @options
end

#renderObject



33
34
35
36
37
38
# File 'lib/delve/display/display.rb', line 33

def render
  if @dirty
    @renderer.render @render_data
    @render_data = Hash.new
  end
end

#widthObject



48
49
50
# File 'lib/delve/display/display.rb', line 48

def width
  @renderer.width
end