请教ddraw PrimarySurface画图问题
32位窗口模式1024×768的PrimarySurface,先lock,然后memcpy 32位rgb数据到缓存,最后unlock显示
现在的问题是这样的:
DDRAW_INIT_STRUCT(ddsd);
if (FAILED(lpddsback->Lock(NULL, &ddsd,
DDLOCK_SURFACEMEMORYPTR | DDLOCK_WRITEONLY,
NULL)))
return 0;
UINT *video_buffer = (UINT *)ddsd.lpSurface;
memcpy(video_buffer,myrgb,sizeof(myrgb);
如果32位的rgb数据分辨率也是1024*768,显示正常,如果宽度是512的,则显示左右两个图像,如果宽度是其他值,比如800,640这种,就会花屏,请问该如何显示任意宽度的RGB数据啊?还有再请问一下,如果是16位或者24位的RGB数据,又该怎么拷贝到video_buffer使其正确显示?