Survex 0.95 prerelease 7 and xcaverot's rubber band.

Mark Shinwell Mark.Shinwell@cl.cam.ac.uk
Tue, 31 Oct 2000 15:09:59 +0000


On Tue, Oct 31, 2000 at 02:14:25PM +0000, Olly Betts wrote:
> In message <20001027115404.L4554@mrs30.quns.cam.ac.uk>, Mark Shinwell writes:
> >On Fri, Oct 27, 2000 at 11:44:45AM +0100, Olly Betts wrote:
> >> But any idea why [combining pending events] is too slow with
> >> GTK?  I have trouble visualising what could take the time.
> >
> >Well it has all the crud in the way in GDK with removing events and
> >copying structures, etc.
> 
> Surely you'd need to do a ridiculous amount of structure copying to make the
> response slower to the extent that someone will notice?  I think I may take
> a look at what GDK is actually up to here.

Indeed; I wasn't sure what was going on at the time but I didn't have
time to investigate.  I'll take a look this week now things at uni
have calmed down.
 
> >I think even raw Xlib is slow this way too;
> 
> I've changed xcaverot to do this and the response improves dramatically to
> near instant.  I've also tried changing it to use XSync which gives less of
> an improvement.
> Either GDK is doing some expensive stuff or we're talking at cross-purposes.

Interesting...

> >[XSync] is very much quicker (it's probably just a pointer assignment or
> >something).
> 
> But doesn't XSync totally discard the events?  That doesn't seem to be ideal
> since mouse button clicks and key presses could be ignored.

Yeah, it does, you have to do some extra checks too... it's definitely
non-ideal :)

While on the subject of rendering, I hope soon to integrate the PotRot
code into Aven when I get the GTK OpenGL widget to work without freezing
my machine.  This lot will eventually use a common transformation
pipeline which can be used for both the 2D and the 3D stuff, which can
then go into Spud.  The whole thing will be based on quarternions
so there will be lots of scope for producing plugins to provide different
ways of interacting with the cave on the screen, including "free
rotation" like Tunnel.

I'm also having a think about the plugin architecture; hopefully this
can be fleshed out in the next few weeks.

Mark

-- 
Mark Shinwell -- http://mrs30.quns.cam.ac.uk -- Mark.Shinwell@cl.cam.ac.uk
Theory and Semantics Group, University of Cambridge Computer Laboratory