# File lib/rubygame/screen.rb, line 264
  def update( *args )
    r = case args[0]
        when nil
          # Update the whole screen. Skip the stuff below.
          SDL.UpdateRect( @struct, 0, 0, 0, 0 );
          return self
        when SDL::Rect
          Rubygame::Rect.new( args[0].to_ary )
        when Array
          Rubygame::Rect.new( args[0] )
        when Numeric
          Rubygame::Rect.new( args[0,4] )
        else
          raise( ArgumentError,
                 "Invalid args for #{self.class}#update: #{args.inspect}" )
        end

    SDL.UpdateRect( @struct, *(r.clip!( self.make_rect ).to_sdl) );

    return self
  end