\name{NEWS}
\title{NEWS file for the grImport2 package}
\encoding{UTF-8}

\section{Changes in version 0.3-3}{
  \itemize{
    \item Respond to \code{hjust} and \code{vjust} (previously ignored).

    \item Allow \code{width} and \code{height} to be \code{NULL}
    (in fact those are now the defaults)
    and fill them in based on image aspect ratio.
  }
}
\section{Changes in version 0.3-2}{
  \itemize{
    \item Bug fix for SVG with decimal place in \code{width} or \code{height}.
  }
}
\section{Changes in version 0.3-1}{
  \itemize{
    \item Additional support for parsing newer Cairo SVG output:
    \itemize{
      \item feColorMatrix filter effect.
      \item feImage filter effect.
      \item feComposite filter effect.
      \item filters with more than one filter effect.
      \item more general transform attributes.
    }
  }
}
\section{Changes in version 0.3-0}{
  \itemize{
    \item Expand SVG parser to support newer Cairo SVG output
    (Cairo >= 1.18.0).

    Root \code{<svg>} element has no units on \code{width} and
    \code{height}.

    Many other elements use SVG presentation attributes rather
    than a single \code{style} attribute (with CSS attributes).
  }
}
\section{Changes in version 0.2-1}{
  \itemize{
    \item Restore current graphics device after \code{readPicture()}
    call.  Thanks to Trevor Davis for report and patch.
    
    \item Add \code{Picture} method for \code{applyTransform()}.
    Thanks to Trevor Davis for report.
  }
}
\section{Changes in version 0.2-0}{
  \itemize{
    \item \code{pictureGrob()} has a new argument \code{delayContent}.
    If that is \code{TRUE}, the function returns a \code{"PictureGrob"}
    gTree that has a \code{makeContent()} method, so that
    \code{grobify()} only happens at drawing time, so that,
    IF we are using \pkg{gridSVG} for output,
    registration of SVG definitions happens within the current
    viewport.  The default value is \code{ext == "gridSVG"}.

    \item Internal restructuring:  to fix more complex SVG input
    where \code{<defs>} refer to each other and include nested
    transformations; to handle transformations more consistently
    in general;  to fix calculation of bounding box for transformed
    clipping path.

    \item \code{readPicture()} has a new argument \code{initDefs},
    which controls whether the list of definitions (things like
    masks, filters, gradient fills, ...) is initialized when
    reading a new picture.  This should be set to \code{FALSE}
    when importing and drawing more than one picture in the same
    R image.
  }
}
\section{Changes in version 0.1-6}{
  \itemize{
    \item fix for importing SVG containing \code{<use>} elements that
    refer to complex content (including nested \code{<use>} elements,
    \code{<use>} use elements with \code{transform} attributes,
    \code{<use>} elements with \code{mask} attributes, and \code{use}
    content with \code{clip-path} attributes.
    
    \item fix for feColorMatrix filter (matrix value was being
    transposed).
    
    \item fix for \code{ext="gridSVG"} when exporting definitions
    (like masks) that contain references to other definitions
    (like filters).
  }
}
\section{Changes in version 0.1-5}{
  \itemize{
    \item Added \code{clip} argument to \code{grid.picture()} so that
    we can inherit clipping region when drawing an imported image
    (default remains that the picture sets its own clipping viewport).
    Thanks to Silas Dean.
  }
}
\section{Changes in version 0.1-4}{
  \itemize{
    \item Fix for importing radial gradient with gradientTransform
    (radius of gradient was not being transformed correctly).
  }
}
\section{Changes in version 0.1-3}{
  \itemize{
    \item Fix for \code{makeContent()} methods for picRect, picPath,
    and picPolyline, so that the forced grob has the same name
    as the original grob.

    \item Fix for parsing \code{<symbol>} element with no children or
    with empty image.

    \item Fix for import of \code{lwd} from SVG \code{line-width}

    \item Relax import requirement that SVG file be generated by
    \pkg{grConvert};  now accept SVG file that is generated by
    \pkg{grConvert} OR SVG file that can be identified as being
    generated by Cairo graphics.  This allows us to accept, for example,
    files generated by \code{rsvg_svg()} from the \pkg{rsvg} package.
  }
}
\section{Changes in version 0.1-2}{
  \itemize{
    \item Fix for importing rotated rectangles.

    \item Fix for importing rotated raster images.

    \item Improved import of line widths.

    \item Enhancement of importing patterns to allow general pattern
    content, rather than just a single image as pattern content.
  }
}
\section{Changes in version 0.1-1}{
  \itemize{
    \item Fix for 'default.units' argument in grid.picture(), which was
    being ignored.
    
    \item Fix to grobify() method for \code{"PictureImage"} to correct
    location calculation for raster element (was doing incorrect
    unit arithmetic).
    
    \item Fix to parseSVGUse() to handle direct <use> of image
    (not for a pattern or mask, but for an actual image);  problem
    was that image was not positioned correctly.
    
    \item Fix to pictureVP() to handle inverted x-scale or y-scale;
    problem was evident in incorrect overall clipping (because pictureVP()
    was incorrect shape).
    
    \item Fix to path parsing to handle path data of the form
    \code{d="M x y"} (by ignoring such paths).

    \item Bug fix for converting SVG style to gpar settings
    when style is a url() reference (it was doing the wrong thing
    to replace, for example, \code{gp$fill} with
    \code{gp$gradientFill} and could end up with neither).

    \item Bug fix for <path> with 'transform' and 'fill' that is url()
    reference.  The transform was not being applied to the referenced
    gradient fill.  
  }
}
\section{Changes in version 0.1-0}{
  \itemize{

    \item Initial release. Intended to import SVG images generated by
    the 'grConvert' package.

    \item Now using SVG instead of PostScript, allowing us to support
    many more graphical features.

  }
}
