I've pushed a new load of drawing fixes to my repo.or.cz repository for people to look at and test. They are under the "toplevel_overhaul2" branch for no particular reason. There are still a couple of outstanding queries, but I'm interested to have any comments on the patches, and whether they work / cause any specific regressions.
Anyone wanting to see the build-system changes needed to install mime types / icons will find that amongst those patches too. http://repo.or.cz/w/geda-gaf/pcjc2.git?a=shortlog;h=toplevel_overhaul2 There are still some testing pieces of code left over, but I think its getting closer. I'd certainly appreciate anyone keen checking out up to this commit: http://repo.or.cz/w/geda-gaf/pcjc2.git?a=commit;h=302a2ad27fa224183aad6e25e893302a122143f0 A log up til that point: commit 302a2ad27fa224183aad6e25e893302a122143f0 Always redraw the screen using a blit from the backbuffer. The previous redraw scheme which would draw to the screen concurrently with drawing to the backbuffer is proving to be a bottle-neck to recent desktops using compositing. Every draw we make forces the X server to compute a damaged region and re-composite the window. We now draw only into the backbuffer, and then invalidate the extents of the region we've drawn. commit 634dafadb884120d9e0e5da7da37cc5992488d19 Rework o_drawbounding() to work without dropping artifacts in all modes. Simplifies both o_drawbounding(), and many functions which call it. No special casing outside o_drawbounding() is needed for OUTLINE vs. BOUNDINGBOX mode. Duplicated code has been reduced by making more use of o_drawbounding() during copying / complex OBJECT placement. This commit fixes bugs in code paths which aren't normally exercised, as the BOUNDINGBOX drawing mode isn't used any more. The code could be simplified further by removing the BOUNDINGBOX mode if desired. commit 4c83a3701185bb8ca6d9ee913ccb07a2d6998b00 Update the all drawing state SCREEN co-ordinates when zooming / panning. By updating all of the co-ordinate state when zooming / panning, a redraw which includes a draw of any rubberbanded items will show them in the correct location. This allows XOR drawing to continue without dropping artifacts, or flashing up a "ghost" where the original element being moved was. The explicit erase for the gost item when moving is no longer needed. >From that point onwards, a shortlog: c0e69f83d1f4485b72e30efefe24ef0f62fcfb4d Add support for rotating whilst placing ddb1139dad2d82a69d6bb8186c31a0f54e27b3d4 Combine code for all operations which require placement of OBJECTS. 09bbdd6e60d9f36da644aac62e2d23860bb082f9 Tidy up some whitespace in gschem/src/x_event.c 3717c5fc0cbd20ccce07f0b123b078895860a7f2 Improve object mirroring API in libgeda + gschem 8b46a16dfb2376fe1551aae9496323578b92b1dd Improve object rotation API in libgeda + gschem 0f48c6f899fef78ea1c02103af0369638f3cab04 Remove the ATTRIB struct as it only contained one variable. b2e28b55fcc4d64e0da337a68ec2dd0a41c18563 Add desktop integration in a new "geda" subdir. f7633e84694c56849b0b9854cc33e8c27695d779 Wait for main window to appear before starting to draw. 1a88e70f9f86438874e7e48438bbd2efaff6f508 Switch off double buffering of the schematic GtkDrawingArea da3d6cf4e596446f64301e497b087295d51d74f1 Warnings temporarily added to look at during draw fixes Best wishes, -- Peter Clifton Electrical Engineering Division, Engineering Department, University of Cambridge, 9, JJ Thomson Avenue, Cambridge CB3 0FA Tel: +44 (0)7729 980173 - (No signal in the lab!) _______________________________________________ geda-dev mailing list [email protected] http://www.seul.org/cgi-bin/mailman/listinfo/geda-dev
