[Top][All Lists]

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Gnash-dev] refactored framebuffer GUI

From: Rob Savoye
Subject: [Gnash-dev] refactored framebuffer GUI
Date: Wed, 28 Jul 2010 13:53:55 -0600
User-agent: Mozilla/5.0 (X11; U; Linux i686; en-US; rv: Gecko/20100720 Fedora/3.1.1-1.fc13 Lightning/1.0b2 Thunderbird/3.1.1

  I refactored the Framebuffer support in Gnash, including redesigning
how all the input devices work. With some of the recent patches adding
OpenVG or OpenGL-ES1.1 support to Gnash had turned things into a mess of
nasty ifdefs and spaghetti that was hard to work with. So I started by
taking all the TODO comments about config support, and turned them all
into legit configure options. :-) This includes things like rendering to
off-screen buffers, double buffering, and selecting classes of input
devices. All the input devices now derive from a common base class,
etc... so the code is now much more modular and easy to read.

  The old code was ifdef'd to death for device support. So now I scan
for all the input devices, and select the ones like mouse and keyboard
we support. Supporting multiple mice or keyboards is now pretty easy.
I've also merged in the tslib patch (#6490, with the better 3 point
calibration fix) into this branch. I've changed piles of code, using
boost more, and making it more C++ style.

  Anyway, I've got a few more things to clean up in this before
migrating it to trunk, but I'd like some testing from anyone else out
there running Gnash in a framebuffer device to make sure I didn't break
any old behaviors they were depending on. (Udo ?) There is a very high
chance these changes will make the release, as they don't effect
anything but the Framebuffer GUI. I assume the only ones using a
Framebuffer with Gnash are developers, so can handle a few changes. btw,
who has the eTurboTouch touchscreen ? A URL to docs would be
appreciated, I still have to migrate that code from fb.cpp to the new way.

  To select input devices for scanning and support, now configure with
--enable-input=tslib,event,mouse. The possible values are:

tslib - Use the tslib library (/dev/ts)
event - Use linux input events (/dev/input/event*)
mouse - Use a PS/2 protocol mouse (/dev/input/mice)
ett   - Use the eTurboTouch touchscreen, which works like a mouse driver

  Other new options are:

--enable-offscreen      - Doesn't do anything yet, but had some code
--enable-doublebuf      - Doesn't do anything yet, but had some code
--with-fakefb           - Uses a 16bit memory mapped file with
                          fbe instead of a real device.

  The branch is up at: bzr branch lp:~rob-welcomehome/+junk/tslib,
although supposedly the nasty performances problems with bzr on savannah
are being fixed in the near term...

  Future refactoring is moving the AGG specific code out of the
Framebuffer GUI into it's own files. All the other GUIs work that way,
so the Framebuffer one should too. Once that is all done, then I can see
about getting those other renderer backends working correctly.

        - rob -

reply via email to

[Prev in Thread] Current Thread [Next in Thread]