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

Reply via email to