proleme directdraw : incompatibilite entre DDSD_LPSURFACE et DDSCAPS_SYSTEMMEMORY

Le
torri
j'utilise directdraw pour un moteur 2d (je sais que directdraw est
obsolete mais je dois neanmoins l'utiliser). Je dois creer une surface
dont la memoire est creee dans la memoire systeme et non la memoire du
gpu.

J'ai utilise le code suivant (je suis en 16bpp) :


void *source;

source = malloc(width * height * 2);
if (!source)
{
// je sors
}

memset (&surface_desc, 0, sizeof (surface_desc));
surface_desc.dwSize = sizeof (surface_desc);
surface_desc.dwFlags =
DDSD_CAPS | DDSD_HEIGHT | DDSD_WIDTH |
DDSD_LPSURFACE | DDSD_PITCH | DDSD_PIXELFORMAT;
surface_desc.ddsCaps.dwCaps = DDSCAPS_OFFSCREENPLAIN |
DDSCAPS_SYSTEMMEMORY;
surface_desc.dwWidth = width;
surface_desc.dwHeight = height;
surface_desc.lPitch = 2 * surface_desc.dwWidth;
surface_desc.lpSurface = source;
surface_desc.ddpfPixelFormat = pixel_format;

res = o->CreateSurface(&surface_desc, surface_source, NULL);

et res n'est pas DD_OK. L'erreur est "parametres invalides".

Si j'enleve le flag DDSD_LPSURFACE, il n'y a pas d'erreur. Comment dois-
je creer la surface directdraw dans mon cas ?

merci
Vidéos High-Tech et Jeu Vidéo
Téléchargements
Vos réponses
Gagnez chaque mois un abonnement Premium avec GNT : Inscrivez-vous !
Trier par : date / pertinence
Michael
Le #18926001
"torri" news:49bf6d0e$0$4832$

...........;;
surface_desc.lpSurface = source;
surface_desc.ddpfPixelFormat = pixel_format;

res = o->CreateSurface(&surface_desc, surface_source, NULL);

et res n'est pas DD_OK. L'erreur est "parametres invalides".

Si j'enleve le flag DDSD_LPSURFACE, il n'y a pas d'erreur. Comment dois-
je creer la surface directdraw dans mon cas ?



Là, ils ont l'air de passer ce qui est retourné par un DIB :
http://cvs.transgaming.org/cgi-bin/viewcvs.cgi/*checkout*/winex/dlls/ddraw/ddraw/main.c?rev=1.4
ou d' autres exemples du SDK avec DDSD_LPSURFACE
http://csclab.murraystate.edu/bob.pilgrim/info/DirectX/DirectX%208%20SDK/samples/multimedia/directdraw/multimon/multimon.cpp

http://www.crnarupa.singidunum.ac.yu/ARHIVA/godina%202004%20-%202005/Predmet%20Uvod%20u%20programiranje%20-%20Prof.%20Zoran%20Banjac%20&%20Goran%20%C5%A0imi%C4%87/MSDN/CD1/DN600ENU1%20(D)/SAMPLES/VC98/SDK/GRAPHICS/DIRECTX/STRETCH3/STRETCH.CPP
Publicité
Poster une réponse
Anonyme