2010-07-15 19 views
0

J'utilise les codes suivants pour copier la surface D3D dans la mémoire système, mais les performances sont mauvaises lors de l'appel LockRect, elle passe beaucoup de temps sur cette fonction . Y a-t-il un moyen de l'améliorer? Merci d'avance.Comment améliorer la vitesse de copie de la surface D3D vers la mémoire système

Vous trouverez ci-dessous des exemples de codes.

D3DDev-> GetRenderTargetData (renderTarget, offscreenSurface);

// Bloquer la surface à lire pixels

offscreenSurface-> LockRect (& de gauche à droite, & rect, D3DLOCK_READONLY);

Répondre

0

Quelle version de D3D? Vous pouvez créer une cible de rendu avec le support HDC, obtenir sa surface et utiliser ensuite surface->GetHDC(). J'ai utilisé cette astuce à la place de 'LockRect', il donnait des performances acceptables pour capturer des données D3D à utiliser avec GDI ou E/S.