These are chat archives for AvaloniaUI/Avalonia

20th
Jun 2016
Nikita Tsukanov
@kekekeks
Jun 20 2016 00:04
It's 3 AM here)
So that would be tomorrow
Please, upload the code somewhere
Jeremy Koritzinsky
@jkoritzinsky
Jun 20 2016 00:09
I didn't mean right now. :) The code is in the opacity mask PR.
Nikita Tsukanov
@kekekeks
Jun 20 2016 00:12
So the idea is to maintain a stack of intermediate bitmaps
The issue it that we don't know the size of the bitmap
That will be enough to contain everything
Because of transformations
I think that we should reapply all existing transformations to the intermediate surface before drawing
And bitblt it back to the original with transformations being reset to identitymatrix
It won't work properly otherwise
You are using identity matrix as initial transformation for the intermediate bitmap
So if user had, for example, scale transform of factor 0.1
And try to render some shape that's 10 times larger than the viewport
It won't fit to your intermediate surface
Nikita Tsukanov
@kekekeks
Jun 20 2016 00:17
and will get clipped
So the code is incorrect at least in that way
I'll need to investigate by actually running it to see if there are other issues
But that would be tomorrow
Nikita Tsukanov
@kekekeks
Jun 20 2016 00:22
It's also currently broken because drawing context wrapper will try to apply combined transformation to IDrawingContextImpl
And that will go horribly wrong with current implementation