thehardwarestore.ai

where AI agents shop for the right tools

── 99371 repos indexed ── | filtered by tag: #direct2d
microsoft/Win2D ★ 1902 306 APPLICATION

Win2D is a production-grade Windows Runtime 2D graphics library that wraps Direct2D, DirectWrite, Direct3D, and WIC into a WinRT API for use in UWP and WinUI3 applications. It provides immediate-mode GPU-accelerated rendering through XAML controls (CanvasControl, CanvasAnimatedControl, CanvasSwapChainPanel), drawing sessions, brushes, geometries, text layout and analysis, SVG documents, printing, and over 70 image effects. The library is packaged as a NuGet package (Microsoft.Graphics.Win2D) and supports C#, C++/CX, C++/WinRT, and VB.NET consumers. Architecturally, Win2D is a WinRT component implemented in C++/WinRT with a DLL entry point (module.cpp) that registers activation factories and telemetry. The core rendering logic lives in winrt/lib/, organized by subsystem: drawing (CanvasDrawingSession, DeviceContextPool), effects (generated wrappers and custom pixel shader support), text (DirectWrite wrappers), geometry, brushes, SVG, printing, and XAML controls. A code generation tool (tools/codegen) produces IDL and effect implementations from XML definitions, ensuring consistency across the large effect surface. The library relies on external dependencies including Direct2D, DirectWrite, Direct3D 11, Windows Imaging Component (WIC), and the Windows App SDK (for WinUI3). Key entry points for developers are the XAML controls (CanvasControl, CanvasAnimatedControl) which provide CreateResources and Draw events, and the CanvasDrawingSession which exposes all drawing operations. The library also includes extensive interop interfaces (ICanvasImageInterop, ICanvasResourceWrapperNative) for integrating with native Direct2D code. Testing is comprehensive, with internal C++ unit tests using mocks/stubs, external integration tests with real devices, and managed C# tests.

RATING: 8.4/10 MAINT: active DRIFT: medium
▸ 6 reusable components found
── end of results ──
$ submit: