Win2D 1.16.0 - changing experimental APIs to stable


Win2D version 1.16.0 is now available on NuGet (for Windows 10 or Windows / Phone 8.1) and GitHub.

This release contains no new features, but removes the "experimental" warning tag from an additional set of APIs that we now consider to be stable:

  • CanvasImage
  • CanvasVirtualBitmap
  • CanvasVirtualBitmapOptions
  • CanvasVirtualControl
  • CanvasVirtualImageSource
  • CanvasRegionsInvalidatedEventArgs
  • PixelShaderEffect
  • SamplerCoordinateMapping
  • CanvasPrintDocument
  • CanvasPrintTaskOptionsChangedEventArgs
  • CanvasPreviewEventArgs
  • CanvasPrintEventArgs
  • CanvasPrintDeferral
  • CanvasDevice:
    • IsPixelFormatSupported
    • IsBufferPrecisionSupported
    • MaximumCacheSize
    • LowPriority
  • CanvasDrawingSession:
    • EffectTileSize
    • EffectBufferPrecision
  • ICanvasEffect:
    • BufferPrecision
    • CacheOutput
    • GetInvalidRectangles
    • GetRequiredSourceRectangle
    • GetRequiredSourceRectangles
    • InvalidateSourceRectangle

Comments (9)

  1. Chris says:

    Nice!

    The Xamarin news has me a bit curious what that means for UWP and Win2D.  Anxiously awaiting both the Xbox event tomorrow and Build in late March.  From the outside, it feels like MS is finally congealing into its "final form". 🙂

  2. Anastasios-Antonios Toulkeridis says:

    like Chris said i too would like to know whether we can hope to target Android with Win2D. It would be awesome. I've spent months on my Win2D app and would like to port it to Android with minimum effort.

  3. Simon Tao says:

    Unfortunately, I'm not sure the Xamarin announcement will make a significant change in Win2D's cross-platform story in the near term. Win2D relies heavily on DirectX, XAML and other WinRT infrastructure, none of which have sufficient cross-platform support today.

  4. Chris says:

    Thanks for the response Simon.  That's about what I expect, but I also hope that the news means the Windows platform will continue to expand enough in value that it'll be even easier for people to focus specifically on Windows.  Too many feel the other platforms are too important to ignore and the available cross-platform options for C# were either not good enough or too expensive.

    If Xamarin stuff gets merged with Visual Studio for free or more affordable, it really will feel like an obvious path for many developers.  More apps everywhere means more apps for Windows and then the specific benefits of each platform will stand out more and I think Windows is really primed to have the overall advantage by far within the next 5 years.  As Apple's software quality is continuing to worsen, Microsoft is starting to make customer feedback king.

    I do think that what Win2D offers is very worthwhile and streamlines many important aspects of getting things on screen.  Comprehensive text rendering and many of the other things Win2D exposes are not "fun" problems to solve, so it's wonderful to have all that stuff baked in.  Plus, I've heard that Xamarin has a lot of annoying issues that many people won't want to put up with until they're ironed out through whatever Microsoft has planned.

    Being able to pour all of your effort into one platform and one codebase that reaches a variety of device types is highly appealing and really does increase the incentive to raise the quality bar as high as you can manage.  Unfortunately many of the 1st party Microsoft apps don't represent that ideal yet, but that's fair due to how young most of those projects are.  I've heard that the new goal is to "delight" users and I don't believe that goal has been achieved yet.  It is probably within reach, but might not manifest until another couple years of development on them.

  5. juanpablogc says:

    Hello, Now that I understand better how to use Win2d, I have seen that the ChromaKeyEffect contains an experimental property ColorHDR that is not in the Direct2D equivalent. I have tried to figure out how it works, but I do not understand it at all. Would you share a link or explanation to understand better the effect of that property? Thanks a lot.

  6. Juan,

    In D2D, all color values are specified using an HDR-capable floating point type.   Win2D normally uses Windows.UI.Color, which has only 8 bit bytes per component, hence the need for an alternative way to specify colors with full floating point range and precision.

  7. KarolSa says:

    Win2D is really nice. We have designed our shader's system based on Win2D. It would be great to see it for Android. But as mentioned, Win2D bases on DirectX, so Android version should base on OpenGL (ES) or something similar. Yes, I think it's not so simple to bring it to Xamarin/Android, but I'm crossing my fingers!

  8. RobMc says:

    I have been very happy with Win2D. Great job team! I have been listening intently at Build to see if perhaps a win3d project is in the works. let's hope so.

    regards,

    rob

  9. Chris says:

    After seeing what was shown at //build, Xamarin's 2D API offering is Skia which Google acquired and uses for Chrome on OSX and Android. I haven't seen any direct performance comparisons, but just from glancing around it looks like Direct2D is faster than Skia for reasons which aren't hard to imagine. I'm sure Direct2D has a number of proprietary optimizations as well, but something in particular which was added with Windows 8 was Direct2D support for Target Independent Rasterization through Direct3D 11.1. http://www.google.com/patents/US20120086715

    I gather that moderately recent AMD hardware supports TIR, the newer Nvidia stuff supports TIR and since Qualcomm Snapdragons with an Adreno older than the 405 didn't have full D3D feature level 11_1 support, only the 405 and up probably support it.

    Skia might get some benefit from Vulkan eventually. Whether Win2D/Direct2D will ever get any benefit from DirectX 12 is anyone's guess. I know the D2D team said that wasn't currently the plan, but they would evaluate it later on after DX12 has matured a bit and run through its paces. It seems like too much would have to be rewritten to get the most out of either Vulkan or DirectX 12 that I'm not sure either would get substantial gains by just tacking it on. Skia Vulkan support is still in development, but it will be interesting to see what benefits they manage to get out of it: https://chromium.googlesource.com/skia/+/2ae4b2e95ddd36ede0d3cbc4d274b6d6618a049d

    So thus far, I'm still more excited about what Win2D has to offer in convenience, features and performance, plus Xamarin seems to have a ways to go before it's really ready for comprehensive streamlined UWP development. Will be great to use it for some cross platform form-heavy stuff at some point, though!

    Just decided I would share my perspective in case it's helpful in some way.

Skip to main content