Kind Regards,
Ryang.
I'm working with an A20 and trying to get fb1 overlay over fb0 and following your steps below, however can't get alpha blending to work, instead fb0 shows on screen0 and fb1 shows on screen1
Here is the steps I am following for configuring fb1
1. Framebuffer mode is set to screen1 and set mode to DISP_LAYER_WORK_MODE_NORMAL (I've also tried other fb modes like FB_MODE_DUAL_DIFF_SCREEN_SAME_CONTENTS)
2. Request the framebuffer for screen1 using DISP_CMD_FB_REQUEST
3. Open fb1 for reading/writing fbfd = open("/dev/fb1",O_RDWR);
4. Get the layer id for fb1 ioctl(fbfd, FBIOGET_LAYER_HDL_1, &layer_id);
5. Map the framebuffer device to memory fbp = (char*)mmap(0, finfo.smem_len, PROT_READ | PROT_WRITE, MAP_SHARED, fbfd, 0);
6. For screen1 I turn off global alpha and and set global alpha value to 0 using DISP_CMD_LAYER_ALPHA_OFF and DISP_CMD_LAYER_SET_ALPHA_VALUE
7. For screen1 I set the layer to pipe1 using DISP_CMD_LAYER_SET_PIPE
8. For screen 1 I set the layer to top using DISP_CMD_LAYER_TOP
9. I then get the layer parameters to make sure everything looks ok using DISP_CMD_LAYER_GET_PARA
10. Then draw a blue rectangle and a red rectangle on fb1 with alpha set to 127 (half transparency)
11. draw a green rectangle on fb0 (alpha 255) whose edges would overlap the edges of the other rectangles drawn in step 10
12. wait for 10 seconds
13. release the framebuffer fb1 using DISP_CMD_FB_RELEASE before ending program. (if I don't do this I noticed the layer handle keeps incrementing and will eventually crash if the program is run again and saw this documented somewhere as a bug)
Result: If I view screen1 I see the blue and red rectangles but not the green rectangle drawn on fb0. If I view screen0 I can see the green rectangle drawn on fb0 but not the rectangles on fb1
Any suggestions on what I am missing? Is it possible that scalar mode is turned on for fb1? I'm not sure how to check or disable scalar mode.
Best regards,
Bart
My QT application is very slow on first startup.
My board is a Allwinner A10 running from NAND flash.
When I first try to start my application (with -qws) the screen remains blank for about 2~3s.
I then briefly get a mouse pointer before my application starts and hides the mouse.
If I quite my application and start it again, it start instantly (again with mouse pointer).
Any ideas why the first start would take so long!
I also tried with a simple ‘Hello World’ test and it does the same.
I’m using Qt 4.7.1.
Any suggestion?
Thanks a lot!