Win2D 0.0.9 – command lists and swapchain improvements

Win2D version 0.0.9 is now available on NuGet and Github.

New this sprint:

  • CanvasSwapChain improvements
    • Now handles high DPI following the same pattern as CanvasImageSource
    • Present overload that takes a sync interval
    • Added Rotation, TransformMatrix, and SourceSize properties
    • Simpler ResizeBuffers overload
  • API cleanup: added some missing properties and fixed inconsistent naming
    • Added CanvasBitmap.Device, Format, and AlphaMode properties
    • Added ICanvasBrush.Device property
    • Added CanvasImageSource.Background property
    • Renamed CanvasAlphaBehavior -> CanvasAlphaMode
    • Reordered CanvasDevice.CreateFromDirect3D11Device parameters to be more logical
    • CanvasRenderTarget and CanvasSwapChain no longer implement ICanvasResourceCreator

We’ve also been hard at work on CanvasAnimatedControl, which will provide an easy to use game loop programming model on top of the swapchain functionality, but that isn’t quite ready to release yet.

Most of the team is now heading out on vacation, so there will be a small gap in Win2D releases.  Our next sprint starts on Jan 5th, and its results will be published on Jan 19th.

Comments (10)

  1. Sergey Lazutkin says:

    Great job! Happy holidays!


    "Win2D version 0.0.8 is now available on NuGet and Github." looks like a typo "0.0.9" should be.

  2. Indeed, silly copy + paste error.  Thanks for pointing that out!

  3. drd says:

    If there isn't could you include an example code that does something like this:

    When you run the example, you can :

    1) click or tap to draw something

    2) ability to switch layer

    3) each layer has frames that can consist of animation and can be animated as groups and at different speeds

    4) you can pan each layer invidually or as group

    5) each layer and frame is pageable and served from network with local buffering

    6) multiple people can connect to the server and make changes to the layers and they are delivered through sctp or similar (tcp replacement for this type of thing)

    I think such example could form a good base to build games on but I am too stupid to implement all that.

  4. drd says:

    I'll clarify that: By panning I mean that you can either use mouse to shift the layer or cursor keys to shift or rotate the layer.

    5) had word "pageable" because this panning should be unlimited in any direction and through the frames in time also – the more you pan and draw, the more disk is consumed on the server to allocated the drawn data. Ideally the dimensions of data would be x,y,z,time + triggered animations, allowing to press "play" and have animations start triggering in specified time, and each person connected to the server could go to any of the 4 dimensions and create new animations there.

  5. drd says:

    Further, you should be able to rotate and move each layer and varying speeds (all while in background paging the bitmap or other metadata from the server).

    I had a game idea 20 years ago but gave up on it because all that proved just too much headache.

  6. drd says:

    Further, you should be able to select a radius from current screen center, then make a linked or deep copy of the drawn stuff and animations inside the radius to "clipboard" and paste this to other locations and translate it in all 4 dimensions.

    So, if one person in the server draws some object, you can copy it and start making modifications after you paste it elsewhere, while they can still draw into their own (and if linked – your copy as well) area.

    This pretty much forms the base of a massively co-operative modding game.

  7. drd says:

    Oh cool. This is like 1/3 of the features I wanted above.

    (try to open then move scroll wheel to zoom out and then pan)

  8. Klaus Löffelmann, MVP says:

    Hey guys,

    I'm really interested in your work.

    Especially everything which has to do with fonts, measuring fonts and clipping through layers is of interest. For a current project, I could already use your library, the one thing I'd miss I suppose is things like measuring of Runs and applying geometries, which I needed to implement the way I want to typeset inside of arcs. Any status on that? I'd need PathGeometry and things like GetSystemFontCollection from the DwFactory, FontFace, GlyphRun, TextFormat, Trimming, TextLayout and LayerParameters for pushing and popping Layers to clip text which does not fit. I suppose, those things are not necessarily prio one on your list – so the question is, would I be able to contribute?

    Thanks a lot for any info you might have,


  9. Anastasios-Antonios Toulkeridis says:

    I noticed it's been more than a month since your last post. Is the project on hold or something?

  10. > I noticed it's been more than a month since your last post. Is the project on hold or something?

    Not at all!  We just had some down time over Christmas and the New Year due to team members taking vacation 🙂    We're all back now and hard at work on new features…

Skip to main content