To comment on the following update, log in, then open the issue: http://www.openoffice.org/issues/show_bug.cgi?id=102380
------- Additional comments from [email protected] Fri Jun 26 16:45:54 +0000 2009 ------- AW: Okay, here we go. Base of consideration is the SdrGrafObj. GraphicObjects which are swapped have a swap-pointer set to SdrGrafObj::ImpSwapHdl. When (view-indeendent) primitives are created (SdrGrafPrimitive2D) from the ViewContact (VC) inside ViewContactOfGraphic::createViewIndependentPrimitive2DSequence the GraphicObject is copied using the copy operator. At this copy, the swap-pointer is not copied. In principle this is what is wanted; primitives are visualisation objects and should only exist when the object actually gets visualized; thus it is okay that the copy is not swapped. To make the swappig work again in principle it is just necessary to flush the SdrGrafPrimitive2D and it's bufferd decomposition. The primitives are also buffered at the ViewObjectContact (VOC), but as the name says this only exists when a view is visualizing the object, so this is automatically deleted. That flushing can be done internally using flushViewIndependentPrimitive2DSequence in the ViewContactOfGraphic implementation; adding a method ViewContactOfGraphic::flushGraphicObjects() will do that. A point to trigger this already exists in SdrGrafObj::ImpSwapHdl itself. After doing this the swapping works as before. I also took a look at the swap-in time for graphics. There is a mechanism in the ViewObjectContactOfGraphic which allows asynch loading (using AsynchGraphicLoadingEvent which registers at the view and is triggered using a timer). This is designed to show a replacement graphic at first repaint, which at the event rigger, gets replaced and repainted. That mechanism is currently broken since GraphicObject copy constructor triggers the SwapIn hard; investigating how to avoid this... --------------------------------------------------------------------- Please do not reply to this automatically generated notification from Issue Tracker. Please log onto the website and enter your comments. http://qa.openoffice.org/issue_handling/project_issues.html#notification --------------------------------------------------------------------- To unsubscribe, e-mail: [email protected] For additional commands, e-mail: [email protected] --------------------------------------------------------------------- To unsubscribe, e-mail: [email protected] For additional commands, e-mail: [email protected]
