On Mon, 10 Oct 2005, Lionel Ulmer wrote:

I still havent got the grasp of what dwSize is for if it does not reflect
the size allocated?, nor the size of the struct current in the mem.

As the DDSURFACEDESC2 structure starts exactly like the DDSURFACEDESC2 one,
the hack here is to use 'dwSize' to magically cast one structure to the
other to be able to share code.

Hmm, then it does reflect the size of the struct currently in the memory. So in theory it's:

assert(to != from);
DWORD __copysize = MIN((to)->dwSize,(from)->dwSize);
memcpy((to),(from),__copysize);

in practise, because of debug and bug 2070:

assert(to != from);
DWORD __tosize   = MIN(sizeof(*(to), ,(to)->dwSize);
DWORD __fromsize = MIN(sizeof(*(from),(from)->dwSize);
DWORD __copysize = MIN(__tosize,__fromsize);
memcpy((to),(from),__copysize);
memset((to)+__copysize,0,__tosize-__copysize);

Or am I still off?

Peter


Reply via email to