line breaking, hyphenation, and justification, bitmap effects, transforms, and text effects such as shadows, blur, glow, rotation etc. Animated text is also supported; this refers to animated glyphs, as well as real-time changes in position, size, color, and opacity of the text. WPF text rendering takes advantage of advances in ClearType technology, such as sub-pixel positioning, natural advance widths, Y-direction anti-aliasing, hardware-accelerated text rendering, as well as aggressive caching of pre-rendered text in video memory. ClearType cannot be turned off in older WPF 3.x applications. Unlike the ClearType in GDI or GDI+, WPF ClearType does not snap glyphs to pixels horizontally, leading to a loss of contrast disliked by some users. The text rendering engine has been rewritten in WPF 4.0, correcting this issue. The extent to which glyphs are cached is dependent on the video card. DirectX 10 cards are able to cache the font glyphs in video memory, then perform the composition (assembling of character glyphs in the correct order, with the correct spacing), alpha-blending (application of anti-aliasing), and RGB blending (ClearType's sub-pixel color calculations), entirely in hardware. This means that only the original glyphs need to be stored in video memory once per font (Microsoft estimates that this would require 2 MB of video memory per font), and other operations such as the display of anti-aliased text on top of other graphics—including video—can also be done with no computation effort on the part of the CPU. DirectX 9 cards are only able to cache the alpha-blended glyphs in memory, thus requiring the CPU to handle glyph composition and alpha-blending before passing this to the video card. Caching these partially rendered glyphs requires significantly more memory (Microsoft estimates 5 MB per process). Cards that don't support DirectX 9 have no hardware-accelerated text rendering capabilities. Interoperability Windows Forms is also possible through the use of the ElementHost and WindowsFormsHost classes. To enable the use of WinForms, the developer executes this from their WPF C# code: System.Windows.Forms.Integration.WindowsFormsHost.EnableWindowsFormsInterop(); Alternative input WPF supports digital ink-related functionality. WPF 4.0 supports multi-touch input on Windows 7 and above. Accessibility WPF supports Microsoft UI Automation to allow developers to create accessible interfaces. This API also allows automated test scripts to interact with the UI. XAML Following the success of markup languages for web development, WPF introduces eXtensible Application Markup Language (XAML; ), which is based on XML. XAML is designed as a more efficient method