-
Notifications
You must be signed in to change notification settings - Fork 289
Backlog
Shawn Hargreaves edited this page Jul 22, 2015
·
62 revisions
To help you understand where Win2D is heading, this backlog lists the work we plan to do and the order in which we plan to do it. Things near the top of the list are well understood and will happen in the next sprint or two, while items further down won't show up until later in the year and are more likely to move around or change as our understanding of them evolves.
If you have feedback on the contents or ordering of this backlog, please create an issue using the "backlog suggestion" label.
- Update to VS 2015 RTM (merge vs2015rtm branch to master)
- Remove workaround that removes reference to platform.winmd for VCLibs v14 in Win2D-managed.targets
- When VS2013 Update 5 ships, merge vs2013u5rtm branch to master and check everything still works
- When we have a VS build with DevDiv:1029064 resolved remove workaround in Win2D.cpp.targets
- Add dummy assembly that references numerics to work around .NET Native release mode build break
- When Windows 10 ships, undo obsolete workarounds (merge win10rtm branch to master)
- ExampleGallery.BackgroundTask.uap project defines both x86 and Win32 targets
- Update docs/readme to reflect v1 status, new NuGet package structure, and VS 2015 RTM
- Review Win10 D2D additions to see if there is anything else new we should expose
- Understand inking - is there anything Win2D should do here?
- Custom imaging effects
- Remove deprecated Win2D package once we've shipped it
- When DirectXTK ships a UAP NuGet package, enable D3D interop example for UAP
- Ensure Win2D types are threadsafe where appropriate
- Remove workaround for intellisense xml (devdiv:1200085)
- Switch docs to have UAP as primary focus
- Support Win10 SoftwareBitmap
- Support gradient meshes
- Polymorphic interop ICanvasImage from CanvasBitmap, CanvasEffect and CanvasCommandList
- Allow brushes to have polymorphic interop
- It'd be great if CanvasTextLayout wasn't a device dependent resource (currently it is, but only for interop reasons)
- Hook up interop for image effect types (convert back and forth between WinRT and underlying D2D types)
- Evaluate interop behavior of CanvasTextFormat once we have some more experience with using it
- CanvasTextFormat interop falls down if you modify the dwrite object and then try and set the Win2D properties back to the same value
- Update docs to indicate interop type when it's not clear
- ResourceTracker.h should use strings.h rather than embedding error message literal
- Revisit ICanvasBitmapResourceCreationAdapter's interface and implementation
- GetOrCreate() should fail at compile-time based on whether or not the wrapper needs a device
- Interop - find some way to make it hard to accidentally call Make(...) rather than fooManager->Create(...)
- Can draw to a virtual surface image source
- XAML virtual canvas control
- CanvasControl and CanvasAnimatedControl support scaler to render at non-display resolution
- CanvasControl.Invalidate overload that takes a region to invalidate (github #98)
- CanvasCreateResourcesEventArgs should be activatable
- It's too hard to maintain a rendertarget the same size as a CanvasAnimatedControl
- CanvasAnimatedControl.Size should be synchronized with the update/draw loop
- CanvasAnimatedControl doesn't display the proper clear color in the VS XAML designer
- XAML Loaded vs. Unloaded events aren't reliably sequenced
- Draw to Windows.UI.Composition swapchains
- Draw to Windows.UI.Composition image visuals
- Higher level controls (eg. game loop) to simplify using Win2D + composition?
- High performance 2D sprites
- Support spritesheets (sample code?)
- Investigate all DWrite functionality and decide what to expose in Win2D
- Ensure CanvasTextFormat exposes optical alignment and other IDWriteTextFormat1 functionality
- CanvasTextFormat doesn't correctly handle UTF-32 trimming delimiters
- Expose DWrite built-in ellipsis trimming sign
- Expose general (non-ellipsis) DWrite trimming signs
- Should the text trimming sign have a better default than nothing? (github #100)
- Get the contours of glyphs
- Sample or documentation showing how to calculate the default line spacing (github #111)
- Printing
- Project ColorManagementEffect
- Project LookupTable3DEffect
- Project HistogramEffect (special case as it doesn't produce a regular image output)
- Project YCbCrEffect?
- Draw using floating point high precision color values (unlike WinRT color which is only 8 bit per channel)
- CanvasBitmap.CreateFromDirect3D11Surface should infer alphamode = ignore if the format is B8G8R8X8
- Support saving CanvasBitmap with pixel formats other than 32bppPBGRA to disk
- Expose SetRenderingControls (buffer precision and tile size)
- Expose DrawingStateBlock
- Expose text layout GetLineMetrics and GetClusterMetrics
- Expose effect configuration properties (D2D1_PROPERTY_CACHED, D2D1_PROPERTY_PRECISION)
- Expose effect dirty rect tracking (GetEffectInvalidRectangles, GetEffectRequiredInputRectangles, InvalidateEffectInputRectangle)
- Expose caps queries (ID2D1DeviceContext::IsBufferPrecisionSupported+IsDxgiFormatSupported, ID2D1RenderTarget::IsSupported)
- Expose Device.RenderingPriority
- Expose Device.ClearResources
- Expose Device.MaximumTextureMemory
- Expose ID2D1RenderTarget::Flush?
- Expose ID2D1MultiThread?
- Expose ID2D1DeviceContext::SetTextRenderingParams, particularly for text outline mode
- Ability to clone a CanvasTextFormat
- Consider adding CanvasStrokeStyle.Hairline (static property to create a hairline stroke style)
- Work through implications of effects in command lists
- Doc describing potential sampling issues when drawing abutting rects?
- Video demo in ExampleGallery crashes if device doesn't have internet connection
- Doc for TargetElapsedTime leaves you asking what units it's in
- Camera effects demo layout needs to be tweak for wide screens (the bottom of the image is cropped otherwise)
- Do profiling!
- Instrumentation to enable performance investigations (eg d3d debug markers or etw)
- Read bitmap contents without memory allocation (GetPixelBytes overload that takes an IBuffer)
- Support DXT block compressed data in Win2D
- DrawText in perf demo hits TextLayout::SlowPath in DWrite, triples time spent in DoLayout vs. an equivalent Direct2D app
- CanvasBitmap.CopyPixelsFromBitmap should support copying between bitmaps of different devices
- Investigate performance glitch when changing Example Gallery custom fonts to draw everything as a single text layout
- Consider making ImageBrush lazily create underlying D2D brushes
- Verify that our GetResults methods won't return failures that should actually be reported via the completion handler
- Use the RaiseException trick to give the game loop thread a human readable name
- Remove checked in PFX files