This is the mail archive of the ecos-discuss@sourceware.org mailing list for the eCos project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

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


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]