Ok, anyway you're probably experiencing a software blit. But 0.5s... it's quite slow. So a few more question to find why directfb is doing the blit operation in software : - what's the size of the screen ? - which gfxdriver ? - what's your default pixelformat (maybe not handled by hardware) ?
Regards, Le mercredi 28 octobre 2009 à 16:45 -0700, Jack W a écrit : > The dsc is > ================================================================ > ...... > primary->GetSize (primary, &screen_w, &screen_h); > > dsc.flags = DSDESC_CAPS | DSDESC_WIDTH | DSDESC_HEIGHT; > dsc.caps = DSCAPS_NONE; > dsc.width = screen_w; > dsc.height = screen_h; > > ...... > dfb->CreateSurface (dfb, &dsc, &tempSurface); > tempSurface->SetBlittingFlags (tempSurface, DSBLIT_NOFX); > ...... > ================================================================ > > Thanks. > > Jack > > > > > > > > "Lionel Landwerlin" <llandwer...@gmail.com> > > Le mercredi 28 octobre 2009 à 15:49 -0700, Jack W a écrit : > > > > How did you fill the dsc structure ? > > > > > --- On Wed, 10/28/09, Jack W <ji...@yahoo.com> wrote: > > From: Jack W <ji...@yahoo.com> > Subject: [directfb-dev] Blit is slow (modified post) - Re: How > to save the current framebuffer to a surface? > To: directfb-dev@directfb.org > Date: Wednesday, October 28, 2009, 6:49 PM > > Blit from the primary to another surface is very slow, if > there is any problem in my code? > I tried the following code. > > ========================================================== > ...... > IDirectFBSurface *tempSurface; > dfb->CreateSurface (dfb, &dsc, &tempSurface); /* The > tempSurface is not primary. */ > ...... > 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? */ > > tempSurface->Blit(tempSurface, primary, NULL, 0, 0); > > primary->Blit(primary, tempSurface, NULL, 200, > 200); /* Offset the previous screen. */ > > 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 > > > > -----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 -- Lionel Landwerlin <llandwer...@gmail.com> _______________________________________________ directfb-dev mailing list directfb-dev@directfb.org http://mail.directfb.org/cgi-bin/mailman/listinfo/directfb-dev