    # File lib/rubygame/gfx.rb, line 488
      def zoom( zoom, smooth=false )
        smooth = smooth ? 1 : 0

        surf = case zoom
               when Array
                 zx, zy = zoom.collect { |n| n.to_f }
                 SDL::Gfx.zoomSurface(@struct, zx, zy, smooth)
               when Numeric
                 zoom = zoom.to_f
                 SDL::Gfx.zoomSurface(@struct, zoom, zoom, smooth)
               else
                 raise ArgumentError, "Invalid zoom factor: #{zoom.inspect}"
               end

        if( surf.pointer.null? )
          raise( Rubygame::SDLError, "Zoom failed: " + SDL.GetError() )
        end

        return self.class.new(surf)
      end