SVG Support

Beginning in Windows 10 Anniversary Update, Direct2D supports rendering color fonts that contain SVG glyph outlines, as described in the OpenType specification (see The SVG table). Beginning in Windows 10 Creators Update, Direct2D also supports rendering standalone SVG images. However, certain SVG features are disallowed within OpenType SVG fonts, and certain SVG features are currently unsupported by Direct2D.  

This topic identifies the set of SVG 1.1 features supported by Direct2D in Windows 10 Anniversary Update and newer. This document applies to SVG in OpenType fonts as well as standalone SVG images.

Supported SVG elements and attributes

Direct2D supports rendering the following SVG elements and the associated attributes for each element. Other elements and regular attributes are ignored.

Element Supported regular attributes
circle id, style, transform, cx, cy, r
clipPath id, style, transform, clipPathUnits
defs id, style, transform
desc* id
ellipse id, style, transform, cx, cy, rx, ry
g id, style, transform
image id, style, transform, x, y, width, height, preserveAspectRatio, xlink:href
line id, style, transform, x1, y1, x2, y2
linearGradient id, style, x1, y1, x2, y2, gradientUnits, gradientTransform, spreadMethod, xlink:href
path id, style, transform, d
polygon id, style, transform, points
polyline id, style, transform, points
radialGradient id, style, cx, cy, r, fx, fy, gradientUnits, gradientTransform, spreadMethod, xlink:href
rect id, style, transform, x, y, width, height, rx, ry
stop id, style, offset
svg id, style, x, y, width, height, viewBox, preserveAspectRatio
title* id
use id, style, transform, x, y, width, height, xlink:href

 

* Only supported in Windows 10 Creators Update and newer

Supported SVG presentation attributes

Direct2D also supports the following presentation attributes. These can be specified on any SVG elements, but they only affect the appearance of certain elements as described in the SVG specification (see Presentation attributes).

  • clip-path
  • clip-rule
  • color
  • display*
  • fill
  • fill-opacity
  • fill-rule
  • opacity
  • overflow
  • stop-color
  • stop-opacity
  • stroke
  • stroke-dasharray
  • stroke-dashoffset
  • stroke-linecap
  • stroke-linejoin
  • stroke-miterlimit
  • stroke-opacity
  • stroke-width
  • visibility*

* Only supported in Windows 10 Creators Update and newer

Unsupported SVG features

Unsupported elements and attributes

Any element or attribute not included in the above lists is considered unsupported by Direct2D. When parsing SVG content that contains an unsupported element or attribute, the unsupported entity is ignored. The remainder of the content is rendered as faithfully as possible.

Unsupported length units

As of Windows 10 Anniversary Update, Direct2D only supports user-space length values and percentage length values. Lengths with unit suffixes, like “mm” or “em,” are unsupported.

Starting in Windows 10 Fall Creators Update, Direct2D also supports absolute unit identifiers: px, pt, pc, cm, mm, and in. Relative unit identifiers (em, ex) are not supported.

Unsupported image sources

The image element is only supported if its xlink:href attribute is set to a base64-encoded image. Remote references are not supported.