This is the mail archive of the
ecos-discuss@sourceware.org
mailing list for the eCos project.
Framebuffer update on synthetic target
- From: "Martin Hansen" <farhansen at gmail dot com>
- To: "eCos Disuss" <ecos-discuss at ecos dot sourceware dot org>
- Date: Tue, 16 Dec 2008 13:10:50 +0100
- Subject: [ECOS] Framebuffer update on synthetic target
HI
I have made a small game for test of the framebuffer device, The game
itself appears to work.
But the synthetic framebuffer has a problem. First i thought my
program freeze, but some diag_printf's denied that.
The problem is that after a short time the framebuffer window on not
updated anymore.
I compiled the host frambugger with DEBUG set to 3, i see that it
stops generating calls to do_redraw.
I can force some do_redraw on ot by hiding the framebuffer window and
moving it back to the foreground, this do_redraw does not generate an
update of the picture, but if i use the mouse and resize the
frambuffer window, the image is updated, so by constantly moving the
window border, and thereby resizing the frambuffer window i can see
that the game is running.
this is what i get from host framebuffer device
0: framebuf main loop: selecting on 0x00000019
default_create_frame 0 mag 1 width 240 height 320
default_create_frame 0 mag 1 width 240 height 320
0: framebuf main loop: target request
0: target request SYNTH_FB_OK, eCos application has connected.
0: target request handled
0: framebuf main loop: selecting on 0x00000019
0: framebuf main loop: auxiliary request
0: handle_auxiliary request 2
0: Target has switched the display on
0: rendering: target_x 0, target_y 0, width 0, height 0
0: : window has not been mapped on to the display yet
0: handle_auxiliary request done
0: framebuf main loop: selecting on 0x00000019
0: framebuf main loop: auxiliary request
0: handle_auxiliary request 1
0: X window 104857684 has been mapped
0: red_mask 0x00ff0000, green_mask 0x0000ff00, blue_mask 0x000000ff
0: mapped window, X width 240, X height 320, win width 240, win
height 320, blank on 1, display on 1
0: rendering: target_x 0, target_y 0, width 240, height 320
0: : current viewport x 0, y 0
0: : after clipping, win_x 0, win_y 0, width 240, height 320
0: handle_auxiliary request done
0: framebuf main loop: selecting on 0x00000019
0: do_redraw: win_x 0, win_y 0, width 240, height 320
0: framebuf main loop: auxiliary request
0: handle_auxiliary request 4
0: Auxiliary has requested a redraw
0: handle_auxiliary request done
0: framebuf main loop: selecting on 0x00000019
0: do_redraw: win_x 0, win_y 0, width 240, height 320
making a focos change on the windows on the desktop i get:
0: framebuf main loop: X request
0: X expose event, x 0, y 107, width 2, height 213
0: X expose event, x 239, y 0, width 1, height 320
0: framebuf main loop: selecting on 0x00000019
0: do_redraw: win_x 0, win_y 0, width 240, height 320
0: framebuf main loop: X request
0: X expose event, x 0, y 0, width 2, height 107
0: X expose event, x 0, y 107, width 240, height 5
0: framebuf main loop: selecting on 0x00000019
0: do_redraw: win_x 0, win_y 0, width 240, height 320
0: framebuf main loop: X request
0: X expose event, x 0, y 0, width 2, height 320
0: framebuf main loop: selecting on 0x00000019
0: do_redraw: win_x 0, win_y 0, width 240, height 320
Making a resize of framebuffer window (causing an update of the image) i get:
0: framebuf main loop: X request
0: X expose event, x 0, y 0, width 240, height 320
0: framebuf main loop: selecting on 0x00000019
0: do_redraw: win_x 0, win_y 0, width 240, height 320
0: framebuf main loop: X request
0: X configure notify event, width 240, height 311
0: rendering: target_x 0, target_y 0, width 240, height 311
0: : current viewport x 0, y 0
0: : after clipping, win_x 0, win_y 0, width 240, height 311
0: framebuf main loop: selecting on 0x00000019
0: do_redraw: win_x 0, win_y 0, width 240, height 311
0: framebuf main loop: X request
0: X configure notify event, width 240, height 310
0: rendering: target_x 0, target_y 0, width 240, height 310
0: : current viewport x 0, y 0
0: : after clipping, win_x 0, win_y 0, width 240, height 310
0: framebuf main loop: selecting on 0x00000019
0: do_redraw: win_x 0, win_y 0, width 240, height 310
0: framebuf main loop: X request
0: X configure notify event, width 240, height 303
0: rendering: target_x 0, target_y 0, width 240, height 303
0: : current viewport x 0, y 0
0: : after clipping, win_x 0, win_y 0, width 240, height 303
0: X configure notify event, width 240, height 304
0: rendering: target_x 0, target_y 0, width 240, height 304
0: : current viewport x 0, y 0
0: : after clipping, win_x 0, win_y 0, width 240, height 304
0: X expose event, x 0, y 303, width 240, height 1
0: framebuf main loop: selecting on 0x00000019
0: do_redraw: win_x 0, win_y 0, width 240, height 304
--
Before posting, please read the FAQ: http://ecos.sourceware.org/fom/ecos
and search the list archive: http://ecos.sourceware.org/ml/ecos-discuss