class BadSdl::Engine::Engines

An engine multiplexor. Only has one focus, but that focus can change.

Attributes

engines[R]

Public Class Methods

new(opts) click to toggle source
Calls superclass method BadSdl::Engine::new
# File lib/bad_sdl/engine/engines.rb, line 10
def initialize(opts)
  super(opts)
  @engines = [] #opts[:engines] || []
  @current_idx = 0
end

Public Instance Methods

current_engine() click to toggle source
# File lib/bad_sdl/engine/engines.rb, line 18
def current_engine
  @engines[@current_idx]
end
handle_event(event) click to toggle source
Calls superclass method BadSdl::Engine#handle_event
# File lib/bad_sdl/engine/engines.rb, line 22
def handle_event(event)
  return true if super(event) # self swallowed event.
  if current_engine
    Debug.log(self){"Passing to current engine."}
    return true if current_engine.handle_event(event)
  end
  SDL2::Debug.log(self){"Unable to handle"}
  return false # if we get to here.
end
paint_to(surface) click to toggle source
Calls superclass method BadSdl::Engine#paint_to
# File lib/bad_sdl/engine/engines.rb, line 32
def paint_to(surface)      
  result = false
              
  result = true if super(surface)
  
  if ce = current_engine
    result = true if ce.paint_to(surface)
  end
  return result
end
quit() click to toggle source
Calls superclass method BadSdl::Engine#quit
# File lib/bad_sdl/engine/engines.rb, line 43
def quit()
  @engines.each(&:quit)
  super()
end