On Tuesday 20 Dec 2005 09:41, Guillaume Laurent wrote: > Actually I wonder if this isn't what we were looking for in the first > place, rather than maintaining our own seg buffer update rect :-).
No, they're two separate problems. You're mixing up modified and exposed areas again. It's easy to get the right update rectangles through to the viewportPaintEvent during pointer position changes by the simple (but blunt) expedient of using repaints instead of updates. I tried that last week or whenever it was, and reported the results here. The problem is that if we only had a single flag for the fact that something had changed, we still had to recreate the entire buffer because we didn't know what that thing was. You may be able to get around this by assuming that the area needing repainting is always a superset of the area that has changed, and always recreating all of that. This assumption is likely to be true, in our case, but it's not certain because there's no guarantee that the paint event associated with the region for a particular change will be the next paint event following that change. I'm not sure whether that would matter in practice, but it certainly breaks the logic. It would also mean recreating quite a lot of buffer areas unnecessarily, and in particular it would be slow while the playback pointer was moving, as parts of lots of segments exposed under the moving pointer would be constantly redrawn unnecessarily -- avoiding this is a large part of why we have this buffer in the first place. Chris ------------------------------------------------------- This SF.net email is sponsored by: Splunk Inc. Do you grep through log files for problems? Stop! Download the new AJAX search engine that makes searching your log files as easy as surfing the web. DOWNLOAD SPLUNK! http://ads.osdn.com/?ad_id=7637&alloc_id=16865&op=click _______________________________________________ Rosegarden-devel mailing list [email protected] - use the link below to unsubscribe https://lists.sourceforge.net/lists/listinfo/rosegarden-devel
