Blit from the primary to another surface is very slow, if there is any problem in my code?
I tried the following code. ========================================================== while (...) { ...... primary->FillTriangle(....); primary->DrawLine(....); ..... primary->Flip (primary, NULL, DSFLIP_ONSYNC); /* Filp here because I want to save the primary surface to tempSurface. Is my thought correct? */ IDirectFBSurface *tempSurface; dfb->CreateSurface (dfb, &dsc, &tempSurface); /* The tempSurface is not primary. */ tempSurface->Blit(tempSurface, primary, NULL, 0, 0); /* Offset the previous screen. */ primary->Blit(primary, tempSurface, NULL, 200, 200); primary->Flip (primary, NULL, DSFLIP_ONSYNC); // Main loop flip ...... } ========================================================== This loop had 0.5 second delay when "tempSurface->Blit(tempSurface, primary, NULL, 0, 0);" was executed. If I commented this line, no delay. Does anyone know the reason? Thanks a lot! Jack --- On Mon, 10/26/09, Jack W <ji...@yahoo.com> wrote: From: Jack W <ji...@yahoo.com> Subject: Re: [directfb-dev] How to save the current framebuffer to a surface? To: "haithem rahmani" <haithem.rahm...@gmail.com> Cc: directfb-dev@directfb.org Date: Monday, October 26, 2009, 6:44 PM I mean the current screen is the current flipped framebuffer (ex. I draw some triangles on the primary surface). I found a method. That is Blit the primary surface to a temp surface, then StrechBlit this temp surface back to the primary surface. It works. Does anyone have other solution? Jack --- On Mon, 10/26/09, haithem rahmani <haithem.rahm...@gmail.com> wrote: From: haithem rahmani <haithem.rahm...@gmail.com> Subject: Re: [directfb-dev] How to save the current framebuffer to a surface? To: "Jack W" <ji...@yahoo.com> Cc: directfb-dev@directfb.org Date: Monday, October 26, 2009, 7:21 AM Hi, where does the current screen content come from ? regards. On Mon, Oct 26, 2009 at 7:28 AM, Jack W <ji...@yahoo.com> wrote: Hi All, I want to save the current screen (framebuffer) (say 1280x1024) to a surface and then display this surface in a small area (say 600x400, StrechBlit) in the next frame. How to do that? Or does any other method can display the previous screen? BTW, I saw many nice DFB application screenshots on www.directfb.org. How can I download these example codes? Thanks a lot for help! Jack _______________________________________________ directfb-dev mailing list directfb-dev@directfb.org http://mail.directfb.org/cgi-bin/mailman/listinfo/directfb-dev -----Inline Attachment Follows----- _______________________________________________ directfb-dev mailing list directfb-dev@directfb.org http://mail.directfb.org/cgi-bin/mailman/listinfo/directfb-dev -----Inline Attachment Follows----- _______________________________________________ directfb-dev mailing list directfb-dev@directfb.org http://mail.directfb.org/cgi-bin/mailman/listinfo/directfb-dev
_______________________________________________ directfb-dev mailing list directfb-dev@directfb.org http://mail.directfb.org/cgi-bin/mailman/listinfo/directfb-dev