Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

proleme directdraw : incompatibilite entre DDSD_LPSURFACE et DDSCAPS_SYSTEMMEMORY

1 réponse
Avatar
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

1 réponse

Avatar
Michael
"torri" wrote in message
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