I have a legacy app for an embedded Linux platform that's currently using
the GRX graphics library (http://grx.gnu.de) for its I/O.  I'd like to
modernize it by adding a modern GUI.  GRX supports several backends (SDL,
framebuffer, X11), so I thought that a good approach would be to use GRX
plus SDL plus DirectFB and use the DirectFB port of GTK+ to start adding
some UI widgets.  I'm trying to start using GTK incrementally, to avoid
having to rewrite the entire app.  However, I can't figure out how to get
the SDL code to play nicely with any GTK code.

Any suggestions for this kind of problem?  Is the directfb-dev list a better
place for this kind of question?  This is using DirectFB 1.1.1 on an AMD
Geode LX system (x86 compatible with builtin graphics) and most software
compiled from source.

Here's what I've tried so far, in case I'm missing anything:

Switch back and forth between GRX/SDL code and GTK+ code from within the
same application:  Fails in various ways, depending on the exact order of
operations; it usually either crashes with a floating point exception error
or hangs in the middle of a poll() system call.

Put the GRX/SDL code and GTK+ code in two separate applications and use the
multi application support in DirectFB: Is multi app support stable enough?
My biggest problem was that GRX/SDL would take over the screen and keyboard
so that any GTK+ windows were unusable; is there some set of SDL options
which I can configure to avoid that?  (I'm a complete novice to SDL and am
still figuring out how GRX and SDL interact.)

Run DirectFB on top of SDL in hopes that SDL can keep everything straight:
This dies with the following error messages:
(!) DirectFB/Genefx: Could not lock destination!
    --> Not supported!
(!) Core/LayerRegion: Could not lock region surface for SetRegion()!
    --> Not supported!
(!) Core/LayerRegion: realize_region() in dfb_layer_region_flip_update()
failed!
    --> Not supported!
(!) DirectFB/Genefx: Could not lock destination!
    --> Not supported!
(!) Core/LayerRegion: Could not lock region surface for SetRegion()!
    --> Not supported!
(!) Core/LayerRegion: realize_region() in dfb_layer_region_flip_update()
failed!
    --> Not supported!
(!) [ 1544:    0.245] --> Caught signal 11 (at 0xc, invalid address) <--
 (!!!)  *** WARNING [still objects in 'Layer Region Pool'] *** [object.c:241
in fusion_object_pool_destroy()]
 (!!!)  *** WARNING [still objects in 'Layer Context Pool'] ***
[object.c:241 in fusion_object_pool_destroy()]
 (!!!)  *** WARNING [still objects in 'Surface Pool'] *** [object.c:241 in
fusion_object_pool_destroy()]
(!) Direct/Thread: Canceling 'Screen Update' (1549)!
(!) Direct/Thread: Canceling 'Fusion Dispatch' (1545)!

Thank you.

Josh Kelley
_______________________________________________
directfb-users mailing list
[email protected]
http://mail.directfb.org/cgi-bin/mailman/listinfo/directfb-users

Reply via email to