@@ -673,6 +673,23 @@ void svg_raster(unsigned int *raster, int w, int h,
673673 stream->flush ();
674674}
675675
676+ SEXP svg_set_pattern (SEXP pattern, pDevDesc dd) {
677+ return R_NilValue;
678+ }
679+
680+ void svg_release_pattern (SEXP ref, pDevDesc dd) {}
681+
682+ SEXP svg_set_clip_path (SEXP path, SEXP ref, pDevDesc dd) {
683+ return R_NilValue;
684+ }
685+
686+ void svg_release_clip_path (SEXP ref, pDevDesc dd) {}
687+
688+ SEXP svg_set_mask (SEXP path, SEXP ref, pDevDesc dd) {
689+ return R_NilValue;
690+ }
691+
692+ void svg_release_mask (SEXP ref, pDevDesc dd) {}
676693
677694pDevDesc svg_driver_new (SvgStreamPtr stream, int bg, double width,
678695 double height, double pointsize,
@@ -708,6 +725,14 @@ pDevDesc svg_driver_new(SvgStreamPtr stream, int bg, double width,
708725 dd->metricInfo = svg_metric_info;
709726 dd->cap = NULL ;
710727 dd->raster = svg_raster;
728+ #if R_GE_version >= 13
729+ dd->setPattern = svg_set_pattern;
730+ dd->releasePattern = svg_release_pattern;
731+ dd->setClipPath = svg_set_clip_path;
732+ dd->releaseClipPath = svg_release_clip_path;
733+ dd->setMask = svg_set_mask;
734+ dd->releaseMask = svg_release_mask;
735+ #endif
711736
712737 // UTF-8 support
713738 dd->wantSymbolUTF8 = (Rboolean) 1 ;
@@ -741,6 +766,10 @@ pDevDesc svg_driver_new(SvgStreamPtr stream, int bg, double width,
741766 dd->haveTransparency = 2 ;
742767 dd->haveTransparentBg = 2 ;
743768
769+ #if R_GE_version >= 13
770+ dd->deviceVersion = R_GE_definitions;
771+ #endif
772+
744773 dd->deviceSpecific = new SVGDesc (stream, standalone, aliases);
745774 return dd;
746775}
0 commit comments