Fact-checked by Grok 2 weeks ago

Direct2D

Direct2D is a hardware-accelerated, immediate-mode graphics application programming interface () developed by for Windows desktop applications, enabling high-performance and high-quality rendering of geometry, bitmaps, and text. It serves as a native-code solution for Win32 developers, targeting scenarios such as enterprise-scale applications, control toolkits, server-side rendering, and integration with Direct3D-based user interfaces. Introduced in in 2009, Direct2D was created to meet growing demands for visual fidelity in digital experiences while leveraging advancements in graphics processing units (GPUs). It builds on for , utilizing Direct3D 10.1 feature levels on and Direct3D 11.1 on and later, with a software rasterizer fallback for systems lacking compatible GPUs. The API supports per-primitive , transparency, alpha blending, and remote rendering over (RDP) starting from , ensuring scalability and compatibility across modern hardware. Direct2D integrates seamlessly with other Microsoft graphics technologies, including interoperability with GDI and GDI+ for legacy content migration, DirectWrite for advanced text rendering, and the Windows Imaging Component (WIC) for image handling. It complements rather than replaces existing APIs like Direct3D for 3D graphics or Windows Presentation Foundation (WPF) for managed code scenarios, offering superior performance over GDI+ in software rendering modes and enabling developers to achieve GPU-accelerated 2D effects such as blurs, shadows, and color management. Subsequent versions, such as Direct2D 1.1 in Windows 8, expanded support to Windows RT and Windows Phone 8.1, enhancing features like high-DPI scaling and advanced color contexts in later updates like Windows 10 Creators Update.

Introduction

Overview

Direct2D is a hardware-accelerated, immediate-mode graphics API developed by for Windows platforms, initially introduced with Windows 7. It enables developers to render geometry, bitmaps, and text with high performance and visual quality, leveraging GPU capabilities for efficient drawing operations. The primary goals of Direct2D include delivering subpixel , transparency, and alpha blending for smooth, high-fidelity visuals, while supporting through integration with for scalable performance across varying GPU hardware. Its design principles emphasize an immediate-mode paradigm, where drawing commands are issued directly without maintaining a retained , promoting simplicity and low overhead in rendering pipelines. Direct2D also integrates seamlessly with DirectWrite for advanced text rendering and the Windows Imaging Component () for bitmap and image handling, allowing for comprehensive 2D graphics workflows. Within the broader DirectX ecosystem, Direct2D serves as the modern successor to GDI and GDI+, providing a more efficient alternative for contemporary Windows applications that require rich visuals. It bridges and graphics by utilizing DXGI for resource sharing and with , enabling scenarios such as overlaying elements on scenes. The basic workflow involves creating a object for , setting up a render target associated with a device context or surface, issuing drawing commands like paths and fills, and finalizing the frame for presentation.

Development History

Direct2D originated within Microsoft's DirectX team as a response to the evolving demands for high-performance 2D graphics in Windows applications, with its first public announcement occurring at the Professional Developers Conference (PDC) in October 2008, where it was presented alongside previews of Windows 7. The API was developed to address key limitations in established 2D rendering technologies like GDI and GDI+, which struggled with hardware acceleration, resolution-independent vector graphics, advanced antialiasing, and efficient integration with modern display hardware. By building directly atop Direct3D's immediate-mode pipeline, Direct2D aimed to unify 2D and 3D graphics processing, enabling developers to leverage GPU capabilities for visually rich desktop experiences while maintaining compatibility with existing Win32 ecosystems. Development progressed through internal previews and prerelease builds shared with select developers in 2009, culminating in its release to manufacturing () as a core component of DirectX 11 with on October 22, 2009. This launch marked a significant milestone, as Direct2D was bundled in the Windows SDK and DirectX SDK distributions, allowing broader access for application integration and testing. Microsoft's focus during this period emphasized creating a modern that could support the transition from software-based rendering to hardware-accelerated workflows, particularly for enterprise tools, control libraries, and UI frameworks requiring subpixel-precise output. Initially restricted to Windows 7 and later Windows versions, Direct2D's adoption was constrained by OS compatibility, prompting Microsoft to backport it to Windows Vista SP2 via the Platform Update released on October 27, 2009, which extended support to older installations without full Windows 7 upgrades. This update mitigated early challenges by enabling Direct2D on Vista hardware meeting Direct3D 10.1 requirements, though it required additional installation and did not guarantee uniform performance across legacy systems. Ongoing refinements tied to subsequent Windows releases ensured Direct2D's evolution aligned with platform advancements, solidifying its role in Microsoft's graphics strategy.

Core API

Fundamental Components

The ID2D1Factory interface serves as the entry point for Direct2D applications, enabling the creation of essential resources such as geometries and render targets. It is obtained through the D2D1CreateFactory function, which initializes Direct2D with specified options including debug levels and threading behavior. Direct2D supports two primary threading models via the factory: single-threaded, which offers optimal performance by avoiding overhead but requires all resources to be accessed from one ; and multi-threaded, which provides built-in for safe access from multiple s at the cost of serialized calls and reduced CPU scaling. Render targets, represented by the ID2D1RenderTarget interface, are the surfaces where drawing operations occur and are created using . Common types include the ID2D1HwndRenderTarget for rendering directly to a window handle (HWND), the ID2D1DCRenderTarget for interoperability with GDI device contexts (HDC), and bitmap render targets for off-screen rendering to ID2D1Bitmap objects. These render targets support key properties such as DPI scaling, configurable via the SetDpi method to map pixels to device-independent units for high-DPI displays, and antialias modes, set through SetAntialiasMode to enable options like for performance or for quality. Brushes in Direct2D, all deriving from ID2D1Brush, define the fill or colors and patterns for shapes and are created from a render target. The ID2D1SolidColorBrush applies a uniform color specified by a D2D1_COLOR_F structure, such as opaque black (0.0f, 0.0f, 0.0f, 1.0f). Gradient brushes include the ID2D1LinearGradientBrush, which interpolates colors along a linear axis defined by start and end points with a collection of gradient stops (e.g., at position 0.0 transitioning to green at 1.0), and the ID2D1RadialGradientBrush, which blends colors radially within an specified by , x- and y-radii, and origin . The ID2D1BitmapBrush tiles or stretches a image across an area, with extend modes like D2D1_EXTEND_MODE_WRAP or D2D1_EXTEND_MODE_MIRROR controlling edge behavior. Stroke styles, implemented by ID2D1StrokeStyle and created via the factory, customize line appearances for outlines, specifying properties such as line caps (e.g., round or square), line joins (e.g., miter or ), miter limits to cap sharp corners, and dash patterns for dotted or dashed lines. Geometries, represented by ID2D1Geometry interfaces and created by the factory, define the shapes to be drawn. Basic types include ID2D1EllipseGeometry for ellipses via center and radii, ID2D1RectangleGeometry for axis-aligned rectangles, and ID2D1RoundedRectangleGeometry for rectangles with rounded corners specified by corner radii. The ID2D1PathGeometry supports complex outlines composed of segments like lines, arcs, quadratic and cubic Bézier curves, allowing open or closed paths built incrementally via an ID2D1GeometrySink. Geometries provide methods for simplification, such as Simplify to approximate curves with lines or cubic (e.g., using D2D1_GEOMETRY_SIMPLIFICATION_OPTION_CUBICS_AND_LINES), and tessellation via Tessellate to decompose filled areas into a (ID2D1Mesh) for advanced rendering. Direct2D resources are managed as objects following standard creation-usage-release patterns to prevent memory leaks; device-independent resources like geometries are created once via the factory and reused, while device-dependent ones like brushes and render targets must be recreated after device loss (indicated by D2DERR_RECREATE_TARGET) and explicitly released using Release when no longer needed.

Rendering Primitives

Direct2D provides a set of core drawing operations through the ID2D1RenderTarget interface, enabling developers to construct 2D scenes by rendering lines, shapes, and filled regions using and geometries. These primitives form the foundation for rendering, supporting for smooth edges and efficient batching of commands to minimize overhead. Basic drawing methods include DrawLine for rendering straight lines between two points with a specified width, , and optional to control endpoints and dashing. DrawRectangle and DrawRoundedRectangle rectangular shapes, while DrawEllipse and DrawRoundedRectangle handle elliptical and rounded forms, respectively, allowing precise control over properties like width and miter limits. For more complex , DrawGeometry applies to arbitrary ID2D1Geometry objects, such as paths or figures, using the same and parameters. Corresponding fill methods—FillRectangle, FillEllipse, and FillGeometry—render interiors of these shapes without borders, leveraging , , or for color and variation. These operations are designed for high-performance rendering, with per-primitive to ensure visual quality across different scales. Bitmap handling in Direct2D involves loading raster images via the Windows Imaging Component (WIC), where developers decode files or resources into IWICBitmapSource objects and convert them to ID2D1Bitmap using the render target's CreateBitmapFromWicBitmap method, ensuring compatibility with supported pixel formats like premultiplied BGRA. Once loaded, bitmaps are drawn using DrawBitmap, which scales them to a target rectangle with optional opacity and source clipping for partial rendering. Interpolation modes control scaling quality: D2D1_BITMAP_INTERPOLATION_MODE_NEAREST_NEIGHBOR for fast, pixel-exact reproduction ideal for UI icons, and D2D1_BITMAP_INTERPOLATION_MODE_LINEAR for smoother bilinear filtering in image enlargement or rotation scenarios. Manipulation extends to creating bitmap brushes for tiling or stretching patterns across shapes, with extend modes like clamp or wrap to handle edges. Clipping and layers enhance primitive rendering by isolating drawing operations within defined regions or applying masks. Layers, created via ID2D1Factory::CreateLayer, are pushed onto the render target stack using PushLayer with D2D1_LAYER_PARAMETERS, specifying an opacity mask (a brush or geometry) and a geometric clip to restrict content to a shape like a star or path. Drawing within the layer applies these constraints cumulatively, and PopLayer restores the previous state, enabling nested effects for complex compositions without permanent alteration to the world transform. Axis-aligned clipping is available via PushAxisAlignedClip for rectangular bounds, offering a lighter alternative for simple overflow control. These mechanisms support opacity modulation and antialiasing preservation during compositing. Transformations modify the coordinate space for all subsequent primitives through the render target's SetTransform method, applying a D2D1_MATRIX_3X2_F structure that represents affine transformations—linear mappings preserving parallelism, including translation (shifting origin), rotation (around a point), uniform or non-uniform scaling, and shearing (skewing axes). Developers compose these by multiplying matrices, with the world transform affecting geometry interpretation, stroke widths (in world units unless specified otherwise), and bitmap placement, but not altering DPI or primitive definitions themselves. This allows efficient scene manipulation without recreating geometries, though complex transforms may impact antialiasing quality. The rendering cycle begins with BeginDraw to prepare the command and initialize the , followed by a sequence of drawing calls that batch operations for deferred execution. After issuing primitives, Clear may reset the if needed, and EndDraw flushes the to , returning an HRESULT to indicate success or errors like out-of-memory or loss, prompting resource recreation. This model ensures for immediate-mode drawing while optimizing GPU submission.

Advanced Features

Effects and Transformations

Direct2D provides a built-in effects API that enables developers to apply advanced image processing operations, such as blurring, shadowing, and color adjustments, through the ID2D1Effect interface. The Gaussian blur effect applies a Gaussian function to soften an image, controlled by the standard deviation property (e.g., 6.0f for moderate blur), and is created using CLSID_D2D1GaussianBlur via ID2D1DeviceContext::CreateEffect. The shadow effect generates drop shadows by combining an input image with an offset and blur, often chained with affine transforms, using CLSID_D2D1Shadow. The color matrix effect modifies pixel colors via a 5x4 transformation matrix applied to RGBA values, with CLSID_D2D1ColorMatrix for operations like channel remapping. The morphology effect thins or thickens edges by eroding or dilating pixels within a kernel sized twice the specified width and height (1–100 DIPs), defaulting to erode mode with CLSID_D2D1Morphology. Effect graphs in Direct2D allow chaining multiple effects into a for complex processing pipelines, where outputs from one effect serve as inputs to another. Input mappings connect ID2D1Image sources, such as bitmaps or prior effect outputs, to an effect's inputs using SetInput or SetInputEffect methods, with indices starting at 0 for the primary input. Rendering occurs by passing the final effect to ID2D1DeviceContext::DrawImage, enabling efficient GPU-accelerated composition. Advanced transformations in Direct2D extend beyond basic affine operations to include color adjustments and perspectives. The color matrix effect supports 3x3 submatrices for RGB hue and changes, such as applying a to cycle hues or scaling channels to desaturate (e.g., averaging RGB for ). transforms are achieved via custom 4x4 matrices in the transform effect (CLSID_D2D13DTransform), which multiplies image corner vertices [x y z 1] by the matrix for arbitrary warps, including depth projections and s. Helper functions in D2D1::Matrix4x4F facilitate constructing these matrices, such as combining translations and s before setting via D2D1_3DTRANSFORM_PROP_TRANSFORM_MATRIX. Gradient meshes and complex fills in Direct2D support sophisticated color blending for visually rich content. Radial gradients are defined using ID2D1RadialGradientBrush, which interpolates colors along an elliptical gradient with specified stops in an ID2D1GradientStopCollection, originating from a center point with radius extents. Mesh primitives, introduced in Direct2D 1.3, enable smooth color transitions across bicubic patches via ID2D1GradientMesh, created with ID2D1DeviceContext2::CreateGradientMesh from D2D1_GRADIENT_MESH_PATCH arrays. These patches, rendered with DrawGradientMesh, allow for non-uniform, curved-surface gradients ideal for illustrations or elements requiring organic color flows. Animation support in Direct2D integrates with the Windows Animation Manager (part of the UIAnimation API) to animate effect properties and transformations over time. Developers use IUIAnimationManager to create storyboards and transitions (e.g., linear or cubic Bézier), applying them to effect values like blur radius or elements via property callbacks, ensuring synchronized, hardware-accelerated updates during rendering loops. Custom effect implementation allows extension of the effects system through the ID2D1EffectImpl interface, enabling developers to define bespoke transforms. Key methods include Initialize for setup and graph construction using ID2D1TransformGraph, PrepareForRender for per-frame adjustments, and SetGraph for dynamic input handling; effects are registered via ID2D1Factory1::RegisterEffectFromString with XML-defined properties and CLSID. This supports advanced scenarios like HLSL shaders or multi-pass processing, integrated seamlessly into effect graphs.

Interoperability Mechanisms

Direct2D facilitates integration with through DXGI surface sharing, allowing shared access to video memory surfaces for efficient 2D-over-3D rendering scenarios. The ID2D1Device interface, introduced for advanced resource management, enables creation of render targets backed by textures via IDXGISurface objects, supporting offscreen rendering where Direct2D content is composed onto surfaces without unnecessary copies. For instance, developers can query an IDXGISurface from a texture using QueryInterface and pass it to ID2D1Factory::CreateDxgiSurfaceRenderTarget to establish a Direct2D render target for drawing 2D elements directly onto the shared surface. Direct2D supports interoperability with Direct3D devices starting from feature level 10.1 and higher, requiring the D3D10_CREATE_DEVICE_BGRA_SUPPORT flag for BGRA format compatibility essential to Direct2D's pixel processing. This enables seamless integration in windowed applications by associating Direct2D render targets with Direct3D swap chains; for example, retrieving a back buffer surface via IDXGISwapChain::GetBuffer allows Direct2D to render directly to the swap chain for presentation. Such mechanisms ensure that 2D overlays, like UI elements or text, can be hardware-accelerated alongside 3D scenes without performance bottlenecks from surface duplication. For compatibility with legacy systems, Direct2D provides HWND and GDI interoperability, allowing rendering directly to window handles and export to GDI bitmaps. The ID2D1Factory::CreateHwndRenderTarget method creates an ID2D1HwndRenderTarget associated with a specific HWND, enabling Direct2D drawing commands to target window surfaces while handling window resizing and occlusion states via methods like CheckWindowState. Additionally, GDI integration uses ID2D1DCRenderTarget to bind a GDI device context (DC) obtained from an HWND, permitting Direct2D content to be drawn into GDI-compatible formats with premultiplied alpha support. Bitmap export to GDI is achieved through ID2D1GdiInteropRenderTarget::GetDC, which provides a GDI DC from a Direct2D render target flagged with D2D1_RENDER_TARGET_USAGE_GDI_COMPATIBLE, facilitating legacy GDI applications by converting Direct2D bitmaps for further processing. Direct2D supports multithreading through device-level resource management, where ID2D1Device objects allow sharing of immutable resources like bitmaps across threads while requiring separate device contexts per thread for mutable operations. A multithreaded factory, created with D2D1_FACTORY_TYPE_MULTI_THREADED, serializes access to shared resources internally to prevent conflicts, but developers must use synchronization primitives such as ID2D1Multithread::Enter and Leave around Direct3D or DXGI calls like IDXGISwapChain::Present to manage locks and avoid deadlocks. For cross-thread scenarios involving surface sharing, IDXGIKeyedMutex provides keyed synchronization on shared DXGI resources flagged with D3D10_RESOURCE_MISC_SHARED_KEYEDMUTEX, ensuring safe alternation between Direct2D and Direct3D rendering. Error handling in interoperability scenarios relies on HRESULT codes to detect failures in surface sharing and resource creation. Common issues include E_OUTOFMEMORY when attempting shared keyed mutex resources on software-emulated devices like WARP, or DXGI_ERROR_INVALID_CALL during surface queue operations if the Direct3D device lacks sharing support. In GDI interop, D2DERR_RECREATE_TARGET signals the need to recreate render targets after device loss, while general surface access errors are checked via SUCCEEDED(hr) patterns in API calls like CreateDxgiSurfaceRenderTarget. Developers must handle these by releasing and reinitializing resources to maintain stability in composite rendering pipelines.

Version History

Direct2D 1.0

Direct2D 1.0 was released in October 2009 as part of and the 11 runtime, marking the introduction of a hardware-accelerated 2D graphics API designed for high-performance rendering. The initial API surface centered on core components such as the ID2D1Factory interface for resource creation, ID2D1RenderTarget for managing drawing contexts and output surfaces, and basic geometry objects like paths, ellipses, and rectangles to define shapes and paths. These elements enabled developers to build immediate-mode 2D graphics pipelines integrated with for composition, supporting brushes for fills and strokes while emphasizing device-independent pixels for scalability across displays. A key innovation in Direct2D 1.0 was its hardware-accelerated per-primitive , which applied gamma-correct blending to produce smoother edges on curves and lines without sacrificing performance, leveraging GPU capabilities where available with software fallback on unsupported hardware. Additionally, integration with DirectWrite provided high-quality subpixel text rendering, utilizing technology for enhanced readability in antialiased text layouts, allowing seamless drawing of formatted text strings directly onto render targets. These features addressed limitations in prior APIs like GDI by prioritizing visual fidelity and efficiency in modern applications. At launch, Direct2D 1.0 had notable limitations, including a single-threaded factory model that restricted concurrent access without careful synchronization, the absence of device contexts for advanced resource management, and only basic built-in effects such as simple blurs and color adjustments without a comprehensive effects framework. Early documentation and sample code were provided in the Windows SDK 7.0, including tutorials for creating render targets and drawing primitives, which facilitated adoption in first-party Microsoft applications like Windows Live Essentials for UI rendering. Regarding backward compatibility, Direct2D 1.0 offered no native support on operating systems prior to , requiring the Platform Update for SP2 or earlier versions to enable functionality, though full hardware acceleration depended on compatible runtimes.

Direct2D 1.1

Direct2D 1.1 was introduced alongside on October 26, 2012, marking a significant evolution from version 1.0 by emphasizing scalability, multithreading, and tighter hardware integration for modern applications. A key architectural change involved the addition of the ID2D1Device and ID2D1DeviceContext interfaces, which separate resource management from rendering commands to enable more efficient handling of resources and support for advanced scenarios like deferred rendering. The ID2D1Device acts as a container for Direct2D resources tied to a specific Direct3D device, while the ID2D1DeviceContext serves as the primary rendering interface, inheriting from ID2D1RenderTarget but offering greater flexibility for command batching and context switching. This design reduces overhead in resource creation and destruction, particularly beneficial for applications with frequent updates. Among the new features, Direct2D 1.1 enhanced multithreading capabilities through the ID2D1Factory1 interface and support for multithreaded factories created via D2D1_FACTORY_TYPE_MULTI_THREADED. This allows safe concurrent access to shared resources across threads with automatic , minimizing contention while enabling developers to use separate device contexts per thread for mutable elements like brushes and text layouts. Additionally, improved DPI handling was introduced with methods like GetDesktopDpi on the factory and SetDpi on the device context, facilitating automatic scaling of the logical to match high-resolution displays without manual recalculations. For efficient bitmap drawing, the device context supports batched operations via repeated DrawImage calls within a single begin/end draw sequence, optimizing performance for scenarios involving multiple image renders such as elements or animations. Direct2D 1.1 previewed advanced effects through the introduction of color contexts via ID2D1ColorContext and basic support for image effects APIs, allowing developers to apply transformations like color adjustments directly in the rendering pipeline. These effects leverage GPU acceleration for high-quality processing, with early implementations focusing on and color spaces. Integration with 11.1 was deepened through enhanced DXGI support, enabling seamless resource sharing and management for lower-latency rendering on hardware. Performance improvements in Direct2D 1.1 targeted dynamic content by reducing CPU overhead in command submission, as the device defers flushing to the GPU until explicitly needed, ideal for real-time updates in interactive applications. for complex was enhanced through optimized in the device , allowing finer control over triangle generation and rasterization for smoother rendering of intricate shapes without excessive CPU involvement. These optimizations contributed to better frame rates in scenarios with frequent path redraws. Adoption of Direct2D 1.1 was prominent in Windows 8's , powering Metro-style (now ) applications with hardware-accelerated rendering for elements like live tiles, charms, and immersive app surfaces. It also extended to and , ensuring consistent 2D graphics performance across the ecosystem.

Direct2D 1.2

Direct2D 1.2 was released in October 2013 as part of , building on the device-based architecture introduced in the previous version to enhance rendering efficiency and support advanced graphics scenarios. A key addition is geometry realizations, which allow applications to cache complex shapes as device-dependent objects for faster repeated rendering without the memory overhead of bitmap rasterization. This feature is particularly useful for scenarios involving frequent draws of intricate paths or shapes, improving performance in dynamic UIs. The version expands the API surface with command lists via the ID2D1CommandList interface, enabling developers to record sequences of draw calls for later replay, which facilitates efficient rendering pipelines such as printing or multithreaded composition. It also provides a comprehensive effects framework, incorporating over 30 built-in effects across categories like color adjustment, blending, and image filtering, allowing high-quality post-processing directly in the rendering pipeline. These effects leverage Direct3D 11.2 for hardware acceleration, supporting complex graph-based compositions for tasks like shadow generation or color grading. Enhancements in Direct2D 1.2 include improved bitmap source APIs, such as native support for formats and block-compressed textures, which reduce memory usage and accelerate loading for image-heavy applications. Additionally, per-device rendering priority settings allow apps to designate low-priority contexts for background tasks, optimizing on multi-monitor setups. For accessibility, the better accommodates high-contrast themes through enhanced color and alpha mode handling in render targets. Developer resources for Direct2D 1.2 are integrated into the , featuring updated samples that demonstrate geometry realizations, effects chaining, and command list usage in real-world scenarios like photo editors. Integration with XAML is streamlined via the new SwapChainPanel control, enabling hybrid apps to embed Direct2D content seamlessly within declarative UIs for mixed native and managed codebases. The version maintains full backward compatibility with Direct2D 1.0 and 1.1 applications, ensuring existing codebases run unchanged on while accessing new features through conditional compilation.

Direct2D 1.3 and Subsequent Updates

The initial release of in July 2015 included updates to Direct2D with performance improvements in rendering scalable text and bitmaps, as well as support for advanced color spaces. Direct2D 1.3 was introduced with the Anniversary Update in August 2016, building upon 11 for enhanced stability and performance in rendering operations, allowing better integration with modern graphics hardware while maintaining compatibility with earlier feature levels. A major addition in Direct2D 1.3 was the introduction of SVG parsing and rendering capabilities, enabling developers to load and draw directly without third-party libraries. This support, available starting with the Creators Update, includes parsing of SVG documents and rendering them as Direct2D geometry or images, though it excludes certain advanced SVG features like text elements for simplicity and performance reasons. Direct2D 1.3 also enhanced through the color management effect, which no longer requires traditional profiles; instead, it supports DXGI color spaces or custom color context definitions for more flexible transformations between color spaces. These improvements, rolled out in the Creators Update, facilitate better handling of wide color gamuts and content without relying on external profile files. Further advancements in advanced color support, including provisions for displays, were integrated in the Fall Creators Update (version 1709) in October 2017, aligning Direct2D with broader Windows color pipeline changes. Subsequent updates to Direct2D have focused on incremental enhancements through annual Windows SDK releases, with no major version increments beyond 1.3 as of 2025. In , Direct2D benefits from DXGI-level support for displays, allowing smoother rendering on compatible hardware by adapting to dynamic frame rates without tearing. These updates include ongoing bug fixes and minor refinements, such as improved interoperability with evolving components, delivered via SDK versions up to 10.0.26100. Third-party libraries like provide wrappers around 1.3 APIs, simplifying usage in UWP and WinUI applications; version 1.3.0 of this library was released in October 2024, emphasizing ease-of-use for immediate-mode 2D rendering. Looking ahead, Direct2D maintenance emphasizes stability and alignment with 12 through interoperation mechanisms, without anticipated major version releases, as the API remains a core component of Windows ecosystem as of late 2025.

Implementation Details

Architecture and Hardware Acceleration

Direct2D operates as a user-mode library layered atop Direct3D, specifically utilizing Direct3D 10.1 feature levels on Windows 7 and Direct3D 11.1 on Windows 8 and later, to enable hardware-accelerated 2D rendering while providing a software rasterizer fallback for unsupported hardware configurations. This architecture allows Direct2D to abstract complex Direct3D operations, presenting an immediate-mode API for drawing 2D primitives, bitmaps, and text, with internal optimizations for batching and efficiency. The rendering pipeline in Direct2D begins with drawing commands issued between BeginDraw and EndDraw calls on a render target or device context, which internally buffers these commands and state changes into command lists compatible with . For geometries, Direct2D performs to convert complex shapes into polygons, generating and buffers that are cached as geometry realizations—introduced in Direct2D 1.2—to avoid redundant processing for static or infrequently changing paths under varying transforms. These buffers are then submitted to the device for rasterization, enabling efficient GPU execution of the 2D scene. Hardware acceleration is achieved through Direct3D's GPU capabilities, where shaders handle per-primitive via (MSAA), as well as effects like blurs and color transformations, and advanced blending modes for layers. If the underlying hardware lacks sufficient Direct3D feature level support (e.g., below 9.3 for certain operations), Direct2D seamlessly falls back to its high-performance software rasterizer, ensuring consistent rendering quality without hardware dependency. Direct2D's memory model distinguishes between device-independent resources, such as geometries, which reside in system on the CPU for cross-device portability, and device-dependent resources like render targets and brushes, which allocate in VRAM on the GPU when is available or in system otherwise. To avoid garbage collection overhead, Direct2D eschews automatic or pooling; instead, developers must manually recreate resources upon device loss events, signaled via errors like D2DERR_RECREATE_TARGET, promoting predictable memory usage and minimizing runtime stalls. The threading architecture enforces single-threaded rendering per render target or device context to maintain state consistency, but supports multi-threaded resource creation through factories configured with the D2D1_FACTORY_TYPE_MULTI_THREADED option, allowing concurrent and generation from worker threads. For enhanced parallelism in path tessellation, Direct2D 1.1 and later provide the D2D1_DEVICE_CONTEXT_OPTIONS_ENABLE_MULTI_THREADED_OPTIMIZATIONS , distributing computation across logical cores on multi-core systems, while multi-device support enables separate factories and devices for isolated rendering contexts, such as offscreen surfaces. Debugging the Direct2D is facilitated by the Direct2D Debug Layer, a separate DLL (d2d1debug.dll) that intercepts calls to report errors, warnings, and diagnostics, such as invalid parameters or suboptimal layer usage, with configurable verbosity levels including breakpoints for severe issues like threading violations. Additionally, Visual Studio's Graphics Diagnostics tools, integrated for applications, allow capture and inspection of the underlying frames, enabling frame analysis, shader debugging, and resource state examination to troubleshoot Direct2D rendering artifacts or bottlenecks.

Integration with Windows Platforms

Direct2D provides native support for 2D graphics rendering starting with , as well as with 2 (SP2) and the Update installed, and or Server 2008 with SP2 and the Update. In (UWP) applications, Direct2D integrates with XAML-based user interfaces through interoperation surfaces like SurfaceImageSource for event-driven rendering or SwapChainPanel for high-performance scenarios, allowing developers to render 2D content alongside XAML elements. For WinUI applications, particularly in desktop contexts, XAML islands enable the embedding of WinUI controls into existing Win32 applications, with Direct2D accessible via libraries like Win2D for seamless GPU-accelerated 2D drawing in XAML environments. applications leveraging Direct2D must be packaged as UWP or using the MSIX format to meet distribution requirements and ensure compatibility across devices. For compatibility on systems with older or incompatible GPUs, Direct2D employs a software fallback using the Windows Advanced Rasterization Platform (), a CPU-based renderer that maintains functionality without when D3D devices fail or return errors like D2DERR_RECREATE_TARGET. Updates to Direct2D, including platform enhancements and bug fixes, are delivered through for runtime components on supported operating systems, while developers obtain the latest headers, libraries, and tools via the Windows SDK installations. Deployment of Direct2D-based applications involves dynamic loading of the core d2d1.dll from the system directory (e.g., System32), where the DLL version aligns with the installed Windows version or applied updates, such as the Platform Update for Windows 7 to enable Direct2D 1.1 features. For applications requiring specific Direct2D versions alongside system defaults, side-by-side assemblies can be manifested to isolate dependencies, though core Direct2D functionality relies on the shared system DLL to avoid redistribution issues. In UWP environments, Direct2D operates within the AppContainer sandbox, which isolates the application process by restricting access to objects, files, and devices, thereby enhancing security against unauthorized system interactions or privilege escalations. Developers must implement input validation for parameters passed to Direct2D effects and render targets to mitigate risks like buffer overflows or invalid state errors that could lead to application instability. Tooling for Direct2D development includes integration within the Windows SDK, which provides C++ headers (d2d1.h) and libraries (d2d1.lib) for native applications, accessible through 's Win32 and UWP project templates that support graphics initialization. For managed languages like C#, the Win2D NuGet package offers a high-level wrapping Direct2D, installable via the Package Manager in , and compatible with UWP, WinUI, and desktop projects as of 2025. Visual Studio 2022 and later versions include built-in templates for -enabled projects, facilitating quick setup for Direct2D rendering pipelines without manual configuration.

Applications and Performance

Typical Use Cases

Direct2D is widely employed in rendering for native Windows applications, particularly in Win32 and WPF environments, where it enables the creation of custom controls, vector-based icons, and fluid animations with hardware-accelerated performance superior to legacy GDI systems. Developers leverage its immediate-mode API to draw high-quality 2D geometry, bitmaps, and text directly into application windows, facilitating modern, responsive interfaces in enterprise-scale software and control libraries. In gaming and media applications, Direct2D supports efficient 2D overlays integrated with scenes, such as heads-up displays (HUDs), particle effects, and user interfaces in both full-scale titles and indie games. Its ability to render text and shapes out-of-order while batching draw calls ensures smooth performance for real-time elements like menus and status indicators without compromising pipelines. For productivity tools, Direct2D provides precise capabilities essential for diagram editors, charting libraries, and image manipulation software, allowing for scalable drawings and effects like and . Sample implementations, such as photo viewers and editors, demonstrate its use in applying effects like to bitmaps for professional-grade adjustments. Additionally, third-party frameworks like JUCE incorporate Direct2D for rendering in multimedia applications, such as audio editors and visualizers, enabling cross-platform compatibility with Windows-specific high-performance graphics.

Performance Benchmarks and Optimizations

Direct2D delivers significantly enhanced rendering performance compared to legacy APIs like GDI+, particularly in hardware-accelerated scenarios where it leverages the GPU for complex 2D graphics operations. In software rendering mode, Direct2D also provides substantially better throughput than GDI+ while maintaining comparable visual fidelity to GDI. These gains stem from Direct2D's integration with Direct3D, enabling efficient GPU utilization for tasks such as antialiasing, blending, and geometry processing, which can achieve frame times under 16 milliseconds on modern hardware to support 60 FPS rendering. Key optimization techniques focus on minimizing CPU involvement and maximizing . Developers should batch drawing commands within BeginDraw and EndDraw calls to reduce overhead, rather than issuing frequent Flush operations that force immediate GPU submission. Resource reuse is critical; , brushes, and geometries should be created once and recycled across frames, as repeated allocations incur high CPU costs due to synchronization. To further optimize, employ atlases for multiple small images, ensuring each exceeds 4 to avoid fragmentation, and prefer specialized draw methods like DrawRectangle over generic DrawGeometry for lower vertex processing demands. Enabling multi-threaded optimizations via D2D1_DEVICE_CONTEXT_OPTIONS_ENABLE_MULTI_THREADED_OPTIMIZATIONS allows parallel geometry realization, beneficial for complex scenes. Common bottlenecks include geometry creation and VRAM constraints from inefficient bitmap management. Excessive primitive generation, such as dynamic path computations, can overload the CPU, while allocating numerous small bitmaps leads to VRAM waste and increased garbage collection. To diagnose these, use tools like GPUView for tracing GPU queue activity and DMA buffer performance, or XPerf from the Windows Performance Toolkit to measure per-frame CPU and GPU times. Scene complexity analysis—by varying render target size—helps distinguish fill-rate limits (pixel-bound) from vertex-bound issues. Updates in Direct2D 1.1 introduced command lists via ID2D1CommandList, enabling deferred rendering and multithreading to reduce in multi-threaded applications. enhancements further improved overall rendering efficiency, including better support for high-dynamic-range content and scalable text, contributing to smoother performance in modern display pipelines. For scalability, Direct2D handles high-resolution outputs like by leveraging DXGI flip models for efficient presentation across setups, minimizing copy operations and supporting variable refresh rates.

References

  1. [1]
    About Direct2D - Win32 apps - Microsoft Learn
    May 26, 2022 · Direct2D is a hardware-accelerated, immediate-mode 2-D graphics API that provides high performance and high-quality rendering for 2-D geometry, bitmaps, and ...
  2. [2]
    Overview of the Windows Graphics Architecture - Win32 apps
    Aug 22, 2022 · Direct2D and DirectWrite were introduced in Windows 7. They are also available for Windows Vista and Windows Server 2008 through a Platform ...Missing: history | Show results with:history<|separator|>
  3. [3]
    Windows with C++ - Introducing Direct2D 1.1 - Microsoft Learn
    Windows 8 launched with a major new version of Direct2D. Since then, Direct2D has made it into Windows RT (for ARM devices) and Windows Phone 8, both of which ...Missing: history | Show results with:history
  4. [4]
    What's new in Direct2D - Win32 apps | Microsoft Learn
    Aug 19, 2020 · Improved support for color management. Starting in Windows 10 Creators Update, Direct2D provides improved color management capabilities. ...
  5. [5]
    Direct2D - Win32 apps - Microsoft Learn
    May 25, 2022 · Direct2D is a hardware-accelerated, immediate-mode, 2-D graphics API that provides high performance and high-quality rendering for 2-D geometry, bitmaps, and ...
  6. [6]
    Direct2D and Direct3D interoperability overview - Win32 apps
    May 26, 2022 · Direct2D uses DXGI to interoperate with Direct3D. There are two primary ways to use Direct2D and Direct3D together.
  7. [7]
    Direct2D QuickStart - Win32 apps - Microsoft Learn
    May 26, 2022 · Direct2D is a native-code, immediate-mode API for creating 2D graphics. This topic illustrates how to use Direct2D within a typical Win32 application to draw ...Missing: overview | Show results with:overview
  8. [8]
    Windows 7: Introducing Direct2D and DirectWrite - Microsoft Learn
    Oct 29, 2008 · Direct2D and DirectWrite are latest additions to the DirectX family of APIs. Learn how you can enhance your application experience with ...
  9. [9]
    Windows With C++ - Introducing Direct2D - Microsoft Learn
    Direct2D is a brand new 2D graphics API designed to support the most demanding and visually rich desktop applications with the best possible performance.Missing: overview | Show results with:overview
  10. [10]
    Download DirectX Software Development Kit from Official Microsoft ...
    Jul 15, 2024 · This download is the legacy DirectX SDK. It is now end-of-life and should only be used for maintaining older software.Missing: beta | Show results with:beta
  11. [11]
    Announcing Final Releases of Platform Update for Windows Vista ...
    Oct 27, 2009 · The Platform Update for Windows Vista will be available for free via Windows Update, Windows Server Update Services and the Microsoft Download ...Missing: Direct2D date<|control11|><|separator|>
  12. [12]
    About Platform Update for Windows Vista - Win32 apps
    Aug 23, 2022 · Provides an overview of the Platform Update for Windows Vista and the Platform Update for Windows Server 2008 and their features.Missing: date | Show results with:date
  13. [13]
    ID2D1Factory interface (d2d1.h) - Win32 apps - Microsoft Learn
    Jul 26, 2022 · The ID2D1Factory interface creates Direct2D resources and is the starting point for using Direct2D to draw or describe shapes.
  14. [14]
    Multithreaded Direct2D Apps - Win32 - Microsoft Learn
    Nov 2, 2020 · This topic describes the best practices for developing multithreaded Direct2D apps with little to no Direct3D rendering.
  15. [15]
    Render Targets Overview - Win32 apps | Microsoft Learn
    Aug 19, 2020 · A render target is a resource that inherits from the ID2D1RenderTarget interface. A render target creates resources for drawing and performs actual drawing ...Render Targets · Render Target Features · Drawing Commands
  16. [16]
    ID2D1RenderTarget (d2d1.h) - Win32 apps - Microsoft Learn
    Jul 26, 2022 · Represents an object that can receive drawing commands. Interfaces that inherit from ID2D1RenderTarget render the drawing commands they receive in different ...
  17. [17]
    ID2D1RenderTarget::SetDpi (d2d1.h) - Win32 apps | Microsoft Learn
    Feb 22, 2024 · This method specifies the mapping from pixel space to device-independent space for the render target. If both dpiX and dpiY are 0, the factory-read system DPI ...
  18. [18]
    Brushes overview - Win32 apps - Microsoft Learn
    May 26, 2022 · Direct2D provides four brush types: ID2D1SolidColorBrush paints an area with a solid color, ID2D1LinearGradientBrush with a linear gradient, ...Missing: stroke | Show results with:stroke
  19. [19]
  20. [20]
  21. [21]
    ID2D1RadialGradientBrush (d2d1.h) - Win32 apps - Microsoft Learn
    Aug 2, 2021 · A radial gradient brush is a device-dependent resource: your application should create radial gradient brushes after it initializes the render ...
  22. [22]
  23. [23]
    ID2D1StrokeStyle (d2d1.h) - Win32 apps | Microsoft Learn
    Jul 26, 2022 · Describes the caps, miter limit, line join, and dash information for a stroke. (ID2D1StrokeStyle)
  24. [24]
    ID2D1Factory CreateStrokeStyle methods - Win32 - Microsoft Learn
    Mar 22, 2021 · Creates an ID2D1StrokeStyle that describes start cap, dash pattern, and other features of a stroke. Examples. The following example creates a ...
  25. [25]
    Geometries overview - Win32 apps | Microsoft Learn
    Sep 8, 2020 · Direct2D geometries are ID2D1Geometry objects, including simple (rectangles, ellipses), path, and composite (grouped or transformed) geometries.
  26. [26]
  27. [27]
    Resources Overview - Win32 apps | Microsoft Learn
    Feb 8, 2021 · A Direct2D resource is an object that is used for drawing and is represented by a Direct2D interface, such as ID2D1Geometry or ID2D1RenderTarget.
  28. [28]
    Direct2D API overview - Win32 apps - Microsoft Learn
    May 26, 2022 · Direct2D provides an API, similar to Direct3D, for use with C or C++. The API exposes a variety of drawing-related functionality.
  29. [29]
    ID2D1RenderTarget::DrawLine (d2d1.h) - Win32 - Microsoft Learn
    Feb 22, 2024 · Draws a line between the specified points using the specified stroke style.
  30. [30]
    ID2D1RenderTarget DrawRectangle methods (D2d1\_1.h)
    Apr 29, 2024 · The DrawRectangle method draws the outline of a rectangle with specified dimensions and stroke style. It takes a rectangle, brush, float, and ...
  31. [31]
    ID2D1RenderTarget::DrawGeometry (d2d1.h) - Win32 apps
    Feb 22, 2024 · The DrawGeometry method draws the outline of a specified geometry using a specified stroke style. It takes geometry, brush, stroke width, and ...
  32. [32]
    How to Load a Bitmap from a File - Win32 apps - Microsoft Learn
    Aug 19, 2020 · Direct2D uses the Windows Imaging Component (WIC) to load bitmaps. To load a bitmap from a file, first use WIC objects to load the image and ...
  33. [33]
    ID2D1RenderTarget::DrawBitmap(ID2D1Bitmap,const ...
    Feb 22, 2024 · The DrawBitmap method draws a bitmap after scaling it to a specified rectangle, using a bitmap, destination rectangle, opacity, interpolation ...
  34. [34]
    D2D1_BITMAP_INTERPOLATIO...
    Feb 22, 2024 · Specifies the algorithm that is used when images are scaled or rotated. Note: Starting in Windows 8, more interpolations modes are available.
  35. [35]
    Layers Overview - Win32 apps | Microsoft Learn
    Jul 15, 2021 · Starting in Windows 8, Direct2D supports interoperation with Direct3D and GDI while a layer or clip is pushed. ... Alternatives to Layers ...What Are Layers? · Layers in Windows 8 and later
  36. [36]
    How to Clip to a Geometric Mask - Win32 apps | Microsoft Learn
    Aug 19, 2020 · Call PushLayer with the geometry mask to push the layer. Draw the content to clip, then call PopLayer to pop the layer. This produces the star-shaped drawing.
  37. [37]
    PushLayer(const D2D1_LAYER_PARAMETERS &,ID2D1Layer ...
    Aug 31, 2022 · The location of the layer is affected by the world transform set on the render target. Each PushLayer must have a matching PopLayer call. If ...
  38. [38]
    Transforms Overview - Win32 apps | Microsoft Learn
    May 26, 2021 · Introduces the Microsoft Direct2D transform API for Windows 7. Direct2D enables Win32 developers to perform 2-D graphics transformations.What Is A Direct2d Transform... · The Direct2d Coordinate... · How A Render Target...<|control11|><|separator|>
  39. [39]
    ID2D1RenderTarget::EndDraw (d2d1.h) - Win32 apps
    Oct 12, 2021 · The EndDraw method causes any batched drawing operations to complete, and then returns an HRESULT indicating the success of the operations.Parameters · Remarks · Examples
  40. [40]
    Effects (Direct2D) - Win32 apps | Microsoft Learn
    Aug 19, 2020 · A Direct2D effect performs an imaging task, like changing brightness, de-saturating an image, or creating a drop shadow.
  41. [41]
    Color matrix effect - Win32 apps | Microsoft Learn
    Dec 11, 2020 · Examples include saturation, hue rotate, sepia, and temperature and tint. The CLSID for this effect is CLSID_D2D1ColorMatrix. Example image ...
  42. [42]
    Morphology effect - Win32 apps - Microsoft Learn
    Dec 11, 2020 · Use the morphology effect to thin or thicken edge boundaries in an image. This effect creates a kernel that is 2 times the Width and Height values you specify.Example images · Effect properties
  43. [43]
    3D transform effect - Win32 apps - Microsoft Learn
    Jan 28, 2021 · Direct2D provides a 4x4 matrix class to provide helper functions for transforming the image in 3 dimensions. See the Matrix4x4F topic for more ...
  44. [44]
    How to Create a Radial Gradient Brush - Win32 apps | Microsoft Learn
    Aug 19, 2020 · To create a radial gradient brush, use the ID2DRenderTarget::CreateRadialGradientBrush method and specify the radial gradient brush properties and the gradient ...
  45. [45]
    ID2D1GradientMesh (d2d1_3.h) - Win32 apps | Microsoft Learn
    Feb 22, 2024 · Represents a device-dependent representation of a gradient mesh composed of patches. Use the ID2D1DeviceContext2::CreateGradientMesh method ...
  46. [46]
  47. [47]
    Update the Animation Manager and Draw Frames - Win32 apps
    Aug 19, 2020 · You must update the animation manager before drawing each frame and use an appropriate mechanism to draw frames frequently enough for animation.Example Code · Application-Driven Animation · Timer-Driven Animation
  48. [48]
    Custom effects - Win32 apps - Microsoft Learn
    Aug 19, 2020 · A transform graph can make use of the effects and transforms included in Direct2D as well as custom transforms created by the effect author.
  49. [49]
    Surface sharing between Windows graphics APIs - Win32 apps
    May 24, 2021 · This topic provides a technical overview of interoperability using surface sharing between Windows graphics APIs, including Direct3D 11, Direct2D, DirectWrite, ...
  50. [50]
    Direct2D and GDI Interoperability Overview - Win32 apps
    May 25, 2022 · This topic describes how to use Direct2D and GDI together. There are two ways to combine Direct2D with GDI: you can write GDI content to a Direct2D GDI- ...
  51. [51]
    ID2D1Factory::CreateHwndRenderTarget (d2d1.h) - Win32 apps
    Feb 22, 2024 · Creates an ID2D1HwndRenderTarget, a render target that renders to a window. When you create a render target, and hardware acceleration is available, you ...Syntax · Parameters
  52. [52]
    What's New in the August 2009 Windows 7/Direct3D 11 SDK
    Jul 9, 2024 · The August 2009 SDK includes Direct2D for 2D graphics, DirectWrite for text rendering, and DXGI 1.1 with synchronized shared surfaces and BGRA ...
  53. [53]
    Drawing with Direct2D - Microsoft Learn
    Direct2D also provides two types of gradient brushes. A gradient brush is one that fills an area with colors blended along an axis. A linear gradient brush ...
  54. [54]
    Text Rendering with Direct2D and DirectWrite - Win32 apps
    Aug 19, 2020 · An application moving to Direct2D will also obtain the following features: Hardware acceleration. The ability to fill text with an arbitrary ...
  55. [55]
    Platform Update for Windows 7 - Win32 apps | Microsoft Learn
    Aug 19, 2020 · For example, these Windows 8 components become available with full functionality: Direct2D 1.1 (including Direct2D Effects); DirectWrite ...
  56. [56]
    ID2D1Geometry Tessellate methods - Win32 apps | Microsoft Learn
    Mar 22, 2021 · The following code example shows how to use Tessellate to create a set of clockwise-wound triangles that cover the geometry. C++. Copy.Missing: 1.1 | Show results with:1.1
  57. [57]
    Windows 8.1 - Microsoft Lifecycle
    Start Date, Mainstream End Date, Extended End Date. Windows 8.1, Nov 13, 2013, Jan 9, 2018, Jan 10, 2023. Links. Lifecycle FAQ - Windows products · Windows 8.1 ...Windows 8.1 support ended · Here · Lifecycle FAQ
  58. [58]
    Geometry Realizations Overview - Win32 apps | Microsoft Learn
    Aug 19, 2020 · This topic describes how to use Direct2D geometry realizations to improve your app's geometry rendering performance in certain scenarios.What are geometry realizations? · Why use geometry realizations?
  59. [59]
    Improving the performance of Direct2D apps - Win32 - Microsoft Learn
    Oct 11, 2020 · Use full scene or per primitive bitmap caching like with drawing other primitives. Clipping an arbitrary shape. The figure here shows the result ...
  60. [60]
    ID2D1CommandList (d2d1_1.h) - Win32 apps | Microsoft Learn
    Oct 5, 2021 · Gradient brushes – both linear and radial gradient, The brush is passed by value but the gradient stop collection itself is referenced. The ...Methods · Remarks · Working With Other Apis<|control11|><|separator|>
  61. [61]
    Built-in Effects - Win32 apps - Microsoft Learn
    Sep 17, 2021 · Direct2D effects provides this set of built-in effects. The effects come in several categories and are listed below along with the CLSID of ...
  62. [62]
  63. [63]
  64. [64]
    Supported Pixel Formats and Alpha Modes - Win32 - Microsoft Learn
    Oct 19, 2020 · This topic describes the pixel formats and alpha modes supported by the various parts of Direct2D, including each render target type, the ID2D1Bitmap, and ID2D ...Supported Yuv Formats For... · About Alpha Modes · Cleartype And Alpha Modes
  65. [65]
    Direct2D samples - Win32 apps - Microsoft Learn
    May 26, 2021 · Direct2D gradient mesh sample, This sample demonstrates how to instantiate and render a gradient mesh in Direct2D. This samples uses the ...
  66. [66]
    What's new for XAML and DirectX interop in Windows 8.1
    Nov 19, 2013 · The SwapChainPanel control makes it easier to include 2D and 3D DirectX content within the rest of a XAML app's UI and render it at 60 FPS.Missing: hybrid | Show results with:hybrid
  67. [67]
    Games for Windows and the DirectX SDK blog | Technical tips, tricks ...
    The December 2013 release of DirectX Tool Kit is now available on CodePlexGitHub, and includes a C++ implementation of the XNA Game Studio's low-level audio ...Missing: origins | Show results with:origins
  68. [68]
    SVG Support - Win32 apps - Microsoft Learn
    Jan 26, 2022 · This topic identifies the set of SVG 1.1 features supported by Direct2D in Windows 10 Anniversary Update and newer.Supported Svg Elements And... · Supported Svg Presentation... · Unsupported Svg Features
  69. [69]
    Color management effect - Win32 apps | Microsoft Learn
    Mar 22, 2022 · Use the color management effect to transform an image from one ICC (International Color Consortium) color profile to another.Effect properties · Rendering intent modes
  70. [70]
    ICC profile behavior with Advanced Color - Win32 apps
    Oct 12, 2022 · This topic discusses how legacy color management and ICC profile behavior changes when Advanced Color scenarios are active.
  71. [71]
    Variable refresh rate displays - Win32 apps - Microsoft Learn
    Jan 6, 2021 · Support for variable refresh rate displays is achieved by setting certain flags when creating and presenting the swap chain.Missing: Direct2D | Show results with:Direct2D
  72. [72]
    Microsoft.Graphics.Win2D 1.3.0 - NuGet
    Oct 14, 2024 · An easy-to-use Windows Runtime API for immediate mode 2D graphics rendering. For WinUI. Product, Versions Compatible and additional computed ...
  73. [73]
    Overview of Win2D - Windows apps | Microsoft Learn
    Win2D is an easy-to-use Windows Runtime (WinRT) API for immediate-mode 2D graphics rendering with GPU acceleration. It's ideal for creating simple games, ...
  74. [74]
    Windows with C++ - Rendering in a Desktop Application with Direct2D
    Direct2D takes the opportunity to batch geometries in a vertex buffer, coalesce drawing commands, and so on to provide the greatest throughput and performance ...
  75. [75]
    How to render by using a Direct2D device context - Win32 apps
    Aug 19, 2020 · This topic describes the purpose of Direct2D device context objects, how to create that object, and a step by step guide about rendering and displaying Direct2 ...
  76. [76]
  77. [77]
    Direct2D Debug Layer - Win32 apps
    ### Summary of Direct2D Debug Layer and Graphics Diagnostics in Visual Studio
  78. [78]
    DirectX and XAML interop - UWP applications - Microsoft Learn
    Apr 25, 2023 · This topic explains the structure of a UWP app that uses DirectX, and identifies the important types to use when building your UWP app to work with DirectX.
  79. [79]
    Direct2D 1.1 Migration Guide for Windows 7 Developers | Katy's Code
    Jan 23, 2013 · Be warned that Direct2D 1.1 cannot be used in Windows Vista. If you update your applications to use the latest version, the minimum OS ...Missing: backport | Show results with:backport
  80. [80]
    About Side-by-Side Assemblies - Win32 apps - Microsoft Learn
    Jan 7, 2021 · A side-by-side assembly is a collection of resources, often a single DLL, used for naming, binding, versioning, and deployment, and can be ...Missing: Direct2D d2d1.
  81. [81]
    AppContainer isolation - Win32 apps | Microsoft Learn
    Jul 8, 2025 · Sandboxing the application kernel objects, the AppContainer environment prevents the application from influencing, or being influenced by, other ...Credential Isolation · Device Isolation · File Isolation
  82. [82]
    Direct2D Error Handling Policies - Win32 apps | Microsoft Learn
    Aug 19, 2020 · This topic describes the Direct2D error handling policies. It contains the following sections. Use of HRESULT; Return Value of Batched Functions ...
  83. [83]
    Project templates in Visual Studio for PC game development
    Describes how the Microsoft Game Development Kit installs several Visual Studio C++ project templates for making Windows PC game titles.
  84. [84]
    Introducing Direct2D | Microsoft Learn
    June 2009. Volume 24 Number 06. Windows With C++ - Introducing Direct2D. By Kenny Kerr | June 2009 .SidebarInsights { width: 845px; height: 720px; ...Missing: origins | Show results with:origins
  85. [85]
    JUCE 8 Feature Overview: Direct 2D
    Direct2D is a hardware-accelerated, immediate-mode, 2D graphics API that provides high performance and high-quality rendering for 2D geometry, bitmaps, and ...
  86. [86]
    Profiling DirectX Apps - Win32 apps - Microsoft Learn
    Feb 4, 2021 · This shows you how to measure some of the most important performance time measurements for a DirectX app using the XPerf and GPUView tools.Performance Time... · Measurements · Calculating Start-Up Time...Missing: tests | Show results with:tests
  87. [87]
    Direct2D - Wikipedia
    Direct2D is a 2D vector graphics application programming interface (API) designed by Microsoft and implemented in Windows 10, Windows 8, Windows 7 and ...
  88. [88]
    For best performance, use DXGI flip model - Win32 apps
    Jan 6, 2021 · This topic provides developer guidance on how to maximize performance and efficiency in the presentation stack on modern versions of Windows.