# File lib/rubygame/ttf.rb, line 222
  def _render( text, smooth, color, back, shaded, blended, solid ) # :nodoc;

    color = SDL::Color.new( Rubygame::Color.make_sdl_rgba(color) )

    if back
      back = SDL::Color.new( Rubygame::Color.make_sdl_rgba(back) )
    end

    surf =
      if smooth
        if back
          shaded.call( @struct, text, color, back )
        else
          blended.call( @struct, text, color )
        end
      else
        if back
          s = solid.call( @struct, text, color )
          SDL::SetColors( s, back.pointer, 0, 1 )
          SDL::SetColorKey( s, 0, 0 );
          s
        else
          solid.call( @struct, text, color )
        end
      end

    if surf.pointer.null?
      raise Rubygame::SDLError, "Could not render text: #{SDL.GetError()}"
    end

    return Rubygame::Surface.new( surf )

  end