freenode/#clim - IRC Chatlog
Search
15:52:33
jackdaniel
also, if you draw only *visible* part, then you do coordinate swizzling by default
15:52:41
beach
OK, let me start over. I think coordinate swizzling is error prone. That's why I have been wanting to get rid of it for a long time. In order to do that, inner sheets can not be mirrored. That is why I have been wanting the X11 backend to have a single mirrored top-level sheet, and then to get rid of coordinate swizzling.
15:53:41
jackdaniel
because if something is displayed at coordinate 33k : 500, then when you scroll to that point you swizzle coordinates, so they are displayed on actual mirror at coordinate (for instance) 200:200
15:53:48
beach
When I say "coordinate swizzling", I am specifically referring to the code that gilberth implemented in order for it to be possible to have mirrored sheets that are larger than what an X11 window allows.
15:54:20
beach
I am not referring to the coordinate transformation that is done as part of the ordinary CLIM machinery for mapping coordinates in a sheet to coordinates in its parent.
15:54:31
jackdaniel
code for small sheet to achieve that will be very similar I imagine, just "maximum size" will be capped at window size
15:57:13
jackdaniel
Even taking your clarification into account I still think that the problem is irrelevant to mirroring. But I'll spare some more time to think about it.
16:54:43
jackdaniel
so the result of optimizing clipping to polygon is from 0.5s to something what doesn't come up in flamegraph
16:56:55
jackdaniel
tomorrow I'll finish adding similar improvements for standard-region-union, standard-region-difference and standard-region-intersection, so we are all set for merging xrender branch with blazing speed rendering :)
16:57:42
jackdaniel
nb: that basically screems for a demo/benchmark of clipping to the intersection of a polygon and an ellipse
16:59:15
jackdaniel
(I think of implementing the intersection with a logxor clipper gcontext-function)
17:00:24
jackdaniel
scratch that, I'll need to think about intersection on paper. difference and union are trivial