    # 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