+ //dprintf2("w: %i h: %i pi: %i pf: %i\n", sd.dwWidth, sd.dwHeight, sd.lPitch, sd.ddpfPixelFormat.dwRGBBitCount);\r
+\r
+ if (sd.ddpfPixelFormat.dwRGBBitCount == 32)\r
+ {\r
+ int *dst = (int *)sd.lpSurface;\r
+ for (y = 0; y < EmuHeight; y++)\r
+ {\r
+ for (x = 0; x < EmuWidth; x++)\r
+ {\r
+ int s = *ps++;\r
+ dst[x] = ((s&0xf800)<<8) | ((s&0x07e0)<<5) | ((s&0x001f)<<3);\r
+ }\r
+ dst = (int *)((char *)dst + sd.lPitch);\r
+ }\r
+ }\r
+ else if (sd.ddpfPixelFormat.dwRGBBitCount == 16)\r
+ {\r
+ unsigned short *dst = (unsigned short *)sd.lpSurface;\r
+ for (y = 0; y < EmuHeight; y++)\r
+ {\r
+ memcpy(dst, ps, EmuWidth*2);\r
+ ps += EmuWidth;\r
+ dst = (unsigned short *)((char *)dst + sd.lPitch);\r
+ }\r
+ }\r
+ else\r
+ {\r
+ LOGFAIL();\r
+ }\r