Added another anonymous union using the DUMMYUNIONNAME style.
This commit is contained in:
parent
690a6d4b72
commit
e0f604a3cd
252
graphics/ddraw.c
252
graphics/ddraw.c
|
@ -73,7 +73,7 @@ DEFAULT_DEBUG_CHANNEL(ddraw)
|
|||
#define SDDSCAPS(iface) ((iface)->s.surface_desc.ddsCaps.dwCaps)
|
||||
|
||||
/* Get the number of bytes per pixel for a given surface */
|
||||
#define PFGET_BPP(pf) (pf.dwFlags&DDPF_PALETTEINDEXED8?1:(pf.x.dwRGBBitCount/8))
|
||||
#define PFGET_BPP(pf) (pf.dwFlags&DDPF_PALETTEINDEXED8?1:(pf.u.dwRGBBitCount/8))
|
||||
|
||||
#define GET_BPP(desc) PFGET_BPP(desc.ddpfPixelFormat)
|
||||
|
||||
|
@ -530,8 +530,8 @@ static void _dump_pixelformat(void *in) {
|
|||
DPRINTF(", dwFourCC : %ld", pf->dwFourCC);
|
||||
}
|
||||
if (pf->dwFlags & DDPF_RGB) {
|
||||
DPRINTF(", RGB bits: %ld, ", pf->x.dwRGBBitCount);
|
||||
switch (pf->x.dwRGBBitCount) {
|
||||
DPRINTF(", RGB bits: %ld, ", pf->u.dwRGBBitCount);
|
||||
switch (pf->u.dwRGBBitCount) {
|
||||
case 4:
|
||||
cmd = "%1lx";
|
||||
break;
|
||||
|
@ -551,21 +551,21 @@ static void _dump_pixelformat(void *in) {
|
|||
ERR("Unexpected bit depth !\n");
|
||||
cmd = "%d";
|
||||
}
|
||||
DPRINTF(" R "); DPRINTF(cmd, pf->y.dwRBitMask);
|
||||
DPRINTF(" G "); DPRINTF(cmd, pf->z.dwGBitMask);
|
||||
DPRINTF(" B "); DPRINTF(cmd, pf->xx.dwBBitMask);
|
||||
DPRINTF(" R "); DPRINTF(cmd, pf->u1.dwRBitMask);
|
||||
DPRINTF(" G "); DPRINTF(cmd, pf->u2.dwGBitMask);
|
||||
DPRINTF(" B "); DPRINTF(cmd, pf->u3.dwBBitMask);
|
||||
if (pf->dwFlags & DDPF_ALPHAPIXELS) {
|
||||
DPRINTF(" A "); DPRINTF(cmd, pf->xy.dwRGBAlphaBitMask);
|
||||
DPRINTF(" A "); DPRINTF(cmd, pf->u4.dwRGBAlphaBitMask);
|
||||
}
|
||||
if (pf->dwFlags & DDPF_ZPIXELS) {
|
||||
DPRINTF(" Z "); DPRINTF(cmd, pf->xy.dwRGBZBitMask);
|
||||
DPRINTF(" Z "); DPRINTF(cmd, pf->u4.dwRGBZBitMask);
|
||||
}
|
||||
}
|
||||
if (pf->dwFlags & DDPF_ZBUFFER) {
|
||||
DPRINTF(", Z bits : %ld", pf->x.dwZBufferBitDepth);
|
||||
DPRINTF(", Z bits : %ld", pf->u.dwZBufferBitDepth);
|
||||
}
|
||||
if (pf->dwFlags & DDPF_ALPHA) {
|
||||
DPRINTF(", Alpha bits : %ld", pf->x.dwAlphaBitDepth);
|
||||
DPRINTF(", Alpha bits : %ld", pf->u.dwAlphaBitDepth);
|
||||
}
|
||||
DPRINTF(")");
|
||||
}
|
||||
|
@ -615,17 +615,17 @@ static void _dump_surface_desc(DDSURFACEDESC *lpddsd) {
|
|||
FE(DDSD_WIDTH, _dump_DWORD, dwWidth);
|
||||
FE(DDSD_PITCH, _dump_DWORD, lPitch);
|
||||
FE(DDSD_BACKBUFFERCOUNT, _dump_DWORD, dwBackBufferCount);
|
||||
FE(DDSD_ZBUFFERBITDEPTH, _dump_DWORD, x.dwZBufferBitDepth);
|
||||
FE(DDSD_ZBUFFERBITDEPTH, _dump_DWORD, u.dwZBufferBitDepth);
|
||||
FE(DDSD_ALPHABITDEPTH, _dump_DWORD, dwAlphaBitDepth);
|
||||
FE(DDSD_PIXELFORMAT, _dump_pixelformat, ddpfPixelFormat);
|
||||
FE(DDSD_CKDESTOVERLAY, _dump_DDCOLORKEY, ddckCKDestOverlay);
|
||||
FE(DDSD_CKDESTBLT, _dump_DDCOLORKEY, ddckCKDestBlt);
|
||||
FE(DDSD_CKSRCOVERLAY, _dump_DDCOLORKEY, ddckCKSrcOverlay);
|
||||
FE(DDSD_CKSRCBLT, _dump_DDCOLORKEY, ddckCKSrcBlt);
|
||||
FE(DDSD_MIPMAPCOUNT, _dump_DWORD, x.dwMipMapCount);
|
||||
FE(DDSD_REFRESHRATE, _dump_DWORD, x.dwRefreshRate);
|
||||
FE(DDSD_LINEARSIZE, _dump_DWORD, y.dwLinearSize);
|
||||
FE(DDSD_LPSURFACE, _dump_PTR, y.lpSurface);
|
||||
FE(DDSD_MIPMAPCOUNT, _dump_DWORD, u.dwMipMapCount);
|
||||
FE(DDSD_REFRESHRATE, _dump_DWORD, u.dwRefreshRate);
|
||||
FE(DDSD_LINEARSIZE, _dump_DWORD, u1.dwLinearSize);
|
||||
FE(DDSD_LPSURFACE, _dump_PTR, u1.lpSurface);
|
||||
#undef FE
|
||||
|
||||
for (i=0;i<sizeof(flags)/sizeof(flags[0]);i++)
|
||||
|
@ -673,11 +673,11 @@ static HRESULT WINAPI IDirectDrawSurface4Impl_Lock(
|
|||
return DDERR_INVALIDPARAMS;
|
||||
}
|
||||
|
||||
lpddsd->y.lpSurface = (LPVOID) ((char *) This->s.surface_desc.y.lpSurface +
|
||||
lpddsd->u1.lpSurface = (LPVOID) ((char *) This->s.surface_desc.u1.lpSurface +
|
||||
(lprect->top*This->s.surface_desc.lPitch) +
|
||||
lprect->left*GET_BPP(This->s.surface_desc));
|
||||
} else {
|
||||
assert(This->s.surface_desc.y.lpSurface);
|
||||
assert(This->s.surface_desc.u1.lpSurface);
|
||||
}
|
||||
return DD_OK;
|
||||
}
|
||||
|
@ -694,7 +694,7 @@ static HRESULT WINAPI DGA_IDirectDrawSurface4Impl_Unlock(
|
|||
|
||||
static void Xlib_copy_surface_on_screen(IDirectDrawSurface4Impl* This) {
|
||||
if (This->s.ddraw->d.pixel_convert != NULL)
|
||||
This->s.ddraw->d.pixel_convert(This->s.surface_desc.y.lpSurface,
|
||||
This->s.ddraw->d.pixel_convert(This->s.surface_desc.u1.lpSurface,
|
||||
This->t.xlib.image->data,
|
||||
This->s.surface_desc.dwWidth,
|
||||
This->s.surface_desc.dwHeight,
|
||||
|
@ -814,9 +814,9 @@ static HRESULT WINAPI DGA_IDirectDrawSurface4Impl_Flip(
|
|||
iflipto->t.dga.fb_height = xheight;
|
||||
|
||||
/* And the assciated surface pointer */
|
||||
surf = This->s.surface_desc.y.lpSurface;
|
||||
This->s.surface_desc.y.lpSurface = iflipto->s.surface_desc.y.lpSurface;
|
||||
iflipto->s.surface_desc.y.lpSurface = surf;
|
||||
surf = This->s.surface_desc.u1.lpSurface;
|
||||
This->s.surface_desc.u1.lpSurface = iflipto->s.surface_desc.u1.lpSurface;
|
||||
iflipto->s.surface_desc.u1.lpSurface = surf;
|
||||
|
||||
return DD_OK;
|
||||
}
|
||||
|
@ -849,9 +849,9 @@ static HRESULT WINAPI Xlib_IDirectDrawSurface4Impl_Flip(
|
|||
|
||||
/* We need to switch the lowlevel surfaces, for xlib this is: */
|
||||
/* The surface pointer */
|
||||
surf = This->s.surface_desc.y.lpSurface;
|
||||
This->s.surface_desc.y.lpSurface = iflipto->s.surface_desc.y.lpSurface;
|
||||
iflipto->s.surface_desc.y.lpSurface = surf;
|
||||
surf = This->s.surface_desc.u1.lpSurface;
|
||||
This->s.surface_desc.u1.lpSurface = iflipto->s.surface_desc.u1.lpSurface;
|
||||
iflipto->s.surface_desc.u1.lpSurface = surf;
|
||||
/* the associated ximage */
|
||||
image = This->t.xlib.image;
|
||||
This->t.xlib.image = iflipto->t.xlib.image;
|
||||
|
@ -884,7 +884,7 @@ static HRESULT WINAPI Xlib_IDirectDrawSurface4Impl_SetPalette(
|
|||
return DD_OK;
|
||||
}
|
||||
|
||||
if( !(ipal->cm) && (This->s.ddraw->d.screen_pixelformat.x.dwRGBBitCount<=8))
|
||||
if( !(ipal->cm) && (This->s.ddraw->d.screen_pixelformat.u.dwRGBBitCount<=8))
|
||||
{
|
||||
ipal->cm = TSXCreateColormap(display,This->s.ddraw->d.drawable,
|
||||
DefaultVisualOfScreen(X11DRV_GetXScreen()),AllocAll);
|
||||
|
@ -1035,14 +1035,14 @@ static HRESULT WINAPI IDirectDrawSurface4Impl_Blt(
|
|||
dstheight = xdst.bottom - xdst.top;
|
||||
dstwidth = xdst.right - xdst.left;
|
||||
width = (xdst.right - xdst.left) * bpp;
|
||||
dbuf = (BYTE *) ddesc.y.lpSurface + (xdst.top * ddesc.lPitch) + (xdst.left * bpp);
|
||||
dbuf = (BYTE *) ddesc.u1.lpSurface + (xdst.top * ddesc.lPitch) + (xdst.left * bpp);
|
||||
|
||||
dwFlags &= ~(DDBLT_WAIT|DDBLT_ASYNC);/* FIXME: can't handle right now */
|
||||
|
||||
/* First, all the 'source-less' blits */
|
||||
if (dwFlags & DDBLT_COLORFILL) {
|
||||
ret = _Blt_ColorFill(dbuf, dstwidth, dstheight, bpp,
|
||||
ddesc.lPitch, lpbltfx->b.dwFillColor);
|
||||
ddesc.lPitch, lpbltfx->u4.dwFillColor);
|
||||
dwFlags &= ~DDBLT_COLORFILL;
|
||||
}
|
||||
|
||||
|
@ -1074,14 +1074,14 @@ static HRESULT WINAPI IDirectDrawSurface4Impl_Blt(
|
|||
ret = _Blt_ColorFill(dbuf, dstwidth, dstheight, bpp, ddesc.lPitch, ~0);
|
||||
break;
|
||||
default:
|
||||
FIXME("Unsupported raster op: %08lx Pattern: %p\n", lpbltfx->dwROP, lpbltfx->b.lpDDSPattern);
|
||||
FIXME("Unsupported raster op: %08lx Pattern: %p\n", lpbltfx->dwROP, lpbltfx->u4.lpDDSPattern);
|
||||
goto error;
|
||||
}
|
||||
dwFlags &= ~DDBLT_ROP;
|
||||
}
|
||||
|
||||
if (dwFlags & DDBLT_DDROPS) {
|
||||
FIXME("\tDdraw Raster Ops: %08lx Pattern: %p\n", lpbltfx->dwDDROP, lpbltfx->b.lpDDSPattern);
|
||||
FIXME("\tDdraw Raster Ops: %08lx Pattern: %p\n", lpbltfx->dwDDROP, lpbltfx->u4.lpDDSPattern);
|
||||
}
|
||||
|
||||
/* Now the 'with source' blits */
|
||||
|
@ -1089,7 +1089,7 @@ static HRESULT WINAPI IDirectDrawSurface4Impl_Blt(
|
|||
LPBYTE sbase;
|
||||
int sx, xinc, sy, yinc;
|
||||
|
||||
sbase = (BYTE *) sdesc.y.lpSurface + (xsrc.top * sdesc.lPitch) + xsrc.left * bpp;
|
||||
sbase = (BYTE *) sdesc.u1.lpSurface + (xsrc.top * sdesc.lPitch) + xsrc.left * bpp;
|
||||
xinc = (srcwidth << 16) / dstwidth;
|
||||
yinc = (srcheight << 16) / dstheight;
|
||||
|
||||
|
@ -1199,8 +1199,8 @@ static HRESULT WINAPI IDirectDrawSurface4Impl_Blt(
|
|||
_dump_DDBLT(dwFlags);
|
||||
}
|
||||
|
||||
IDirectDrawSurface4_Unlock(iface,ddesc.y.lpSurface);
|
||||
if (src) IDirectDrawSurface4_Unlock(src,sdesc.y.lpSurface);
|
||||
IDirectDrawSurface4_Unlock(iface,ddesc.u1.lpSurface);
|
||||
if (src) IDirectDrawSurface4_Unlock(src,sdesc.u1.lpSurface);
|
||||
|
||||
return DD_OK;
|
||||
}
|
||||
|
@ -1229,8 +1229,8 @@ static HRESULT WINAPI IDirectDrawSurface4Impl_BltFast(
|
|||
IDirectDrawSurface4_Lock(iface,NULL,&ddesc,DDLOCK_WRITEONLY,0);
|
||||
|
||||
bpp = GET_BPP(This->s.surface_desc);
|
||||
sbuf = (BYTE *) sdesc.y.lpSurface + (rsrc->top * sdesc.lPitch) + rsrc->left * bpp;
|
||||
dbuf = (BYTE *) ddesc.y.lpSurface + (dsty * ddesc.lPitch) + dstx * bpp;
|
||||
sbuf = (BYTE *) sdesc.u1.lpSurface + (rsrc->top * sdesc.lPitch) + rsrc->left * bpp;
|
||||
dbuf = (BYTE *) ddesc.u1.lpSurface + (dsty * ddesc.lPitch) + dstx * bpp;
|
||||
|
||||
|
||||
h=rsrc->bottom-rsrc->top;
|
||||
|
@ -1257,8 +1257,8 @@ static HRESULT WINAPI IDirectDrawSurface4Impl_BltFast(
|
|||
|
||||
#define COPYBOX_COLORKEY(type) { \
|
||||
type *d = (type *)dbuf, *s = (type *)sbuf, tmp; \
|
||||
s = (type *) ((BYTE *) sdesc.y.lpSurface + (rsrc->top * sdesc.lPitch) + rsrc->left * bpp); \
|
||||
d = (type *) ((BYTE *) ddesc.y.lpSurface + (dsty * ddesc.lPitch) + dstx * bpp); \
|
||||
s = (type *) ((BYTE *) sdesc.u1.lpSurface + (rsrc->top * sdesc.lPitch) + rsrc->left * bpp); \
|
||||
d = (type *) ((BYTE *) ddesc.u1.lpSurface + (dsty * ddesc.lPitch) + dstx * bpp); \
|
||||
for (y = 0; y < h; y++) { \
|
||||
for (x = 0; x < w; x++) { \
|
||||
tmp = s[x]; \
|
||||
|
@ -1294,8 +1294,8 @@ static HRESULT WINAPI IDirectDrawSurface4Impl_BltFast(
|
|||
|
||||
error:
|
||||
|
||||
IDirectDrawSurface4_Unlock(iface,ddesc.y.lpSurface);
|
||||
IDirectDrawSurface4_Unlock(src,sdesc.y.lpSurface);
|
||||
IDirectDrawSurface4_Unlock(iface,ddesc.u1.lpSurface);
|
||||
IDirectDrawSurface4_Unlock(src,sdesc.u1.lpSurface);
|
||||
return ret;
|
||||
}
|
||||
|
||||
|
@ -1350,7 +1350,7 @@ static ULONG WINAPI DGA_IDirectDrawSurface4Impl_Release(LPDIRECTDRAWSURFACE4 ifa
|
|||
IDirectDraw2_Release((IDirectDraw2*)This->s.ddraw);
|
||||
/* clear out of surface list */
|
||||
if (This->t.dga.fb_height == -1)
|
||||
HeapFree(GetProcessHeap(),0,This->s.surface_desc.y.lpSurface);
|
||||
HeapFree(GetProcessHeap(),0,This->s.surface_desc.u1.lpSurface);
|
||||
else
|
||||
This->s.ddraw->e.dga.vpmask &= ~(1<<(This->t.dga.fb_height/This->s.ddraw->e.dga.fb_height));
|
||||
|
||||
|
@ -1379,7 +1379,7 @@ static ULONG WINAPI Xlib_IDirectDrawSurface4Impl_Release(LPDIRECTDRAWSURFACE4 if
|
|||
if (This->t.xlib.image != NULL) {
|
||||
if (This->s.ddraw->d.pixel_convert != NULL) {
|
||||
/* In pixel conversion mode, there are 2 buffers to release. */
|
||||
HeapFree(GetProcessHeap(),0,This->s.surface_desc.y.lpSurface);
|
||||
HeapFree(GetProcessHeap(),0,This->s.surface_desc.u1.lpSurface);
|
||||
|
||||
#ifdef HAVE_LIBXXSHM
|
||||
if (This->s.ddraw->e.xlib.xshm_active) {
|
||||
|
@ -1404,7 +1404,7 @@ static ULONG WINAPI Xlib_IDirectDrawSurface4Impl_Release(LPDIRECTDRAWSURFACE4 if
|
|||
shmdt(This->t.xlib.shminfo.shmaddr);
|
||||
} else {
|
||||
#endif
|
||||
HeapFree(GetProcessHeap(),0,This->s.surface_desc.y.lpSurface);
|
||||
HeapFree(GetProcessHeap(),0,This->s.surface_desc.u1.lpSurface);
|
||||
TSXDestroyImage(This->t.xlib.image);
|
||||
#ifdef HAVE_LIBXXSHM
|
||||
}
|
||||
|
@ -1412,7 +1412,7 @@ static ULONG WINAPI Xlib_IDirectDrawSurface4Impl_Release(LPDIRECTDRAWSURFACE4 if
|
|||
}
|
||||
This->t.xlib.image = 0;
|
||||
} else {
|
||||
HeapFree(GetProcessHeap(),0,This->s.surface_desc.y.lpSurface);
|
||||
HeapFree(GetProcessHeap(),0,This->s.surface_desc.u1.lpSurface);
|
||||
}
|
||||
|
||||
if (This->s.palette)
|
||||
|
@ -1559,7 +1559,7 @@ static HRESULT WINAPI IDirectDrawSurface4Impl_GetDC(LPDIRECTDRAWSURFACE4 iface,H
|
|||
IDirectDrawSurface4_Lock(iface,NULL,&desc,0,0);
|
||||
|
||||
if (This->s.hdc == 0) {
|
||||
switch (desc.ddpfPixelFormat.x.dwRGBBitCount) {
|
||||
switch (desc.ddpfPixelFormat.u.dwRGBBitCount) {
|
||||
case 16:
|
||||
case 32:
|
||||
#if 0 /* This should be filled if Wine's DIBSection did understand BI_BITFIELDS */
|
||||
|
@ -1573,7 +1573,7 @@ static HRESULT WINAPI IDirectDrawSurface4Impl_GetDC(LPDIRECTDRAWSURFACE4 iface,H
|
|||
|
||||
default:
|
||||
b_info = (BITMAPINFO *)HeapAlloc(GetProcessHeap(), HEAP_ZERO_MEMORY,
|
||||
sizeof(BITMAPINFOHEADER) + sizeof(RGBQUAD) * (2 << desc.ddpfPixelFormat.x.dwRGBBitCount));
|
||||
sizeof(BITMAPINFOHEADER) + sizeof(RGBQUAD) * (2 << desc.ddpfPixelFormat.u.dwRGBBitCount));
|
||||
break;
|
||||
}
|
||||
|
||||
|
@ -1581,23 +1581,23 @@ static HRESULT WINAPI IDirectDrawSurface4Impl_GetDC(LPDIRECTDRAWSURFACE4 iface,H
|
|||
b_info->bmiHeader.biWidth = desc.dwWidth;
|
||||
b_info->bmiHeader.biHeight = desc.dwHeight;
|
||||
b_info->bmiHeader.biPlanes = 1;
|
||||
b_info->bmiHeader.biBitCount = desc.ddpfPixelFormat.x.dwRGBBitCount;
|
||||
b_info->bmiHeader.biBitCount = desc.ddpfPixelFormat.u.dwRGBBitCount;
|
||||
#if 0
|
||||
if ((desc.ddpfPixelFormat.x.dwRGBBitCount != 16) &&
|
||||
(desc.ddpfPixelFormat.x.dwRGBBitCount != 32))
|
||||
if ((desc.ddpfPixelFormat.u.dwRGBBitCount != 16) &&
|
||||
(desc.ddpfPixelFormat.u.dwRGBBitCount != 32))
|
||||
#endif
|
||||
b_info->bmiHeader.biCompression = BI_RGB;
|
||||
#if 0
|
||||
else
|
||||
b_info->bmiHeader.biCompression = BI_BITFIELDS;
|
||||
#endif
|
||||
b_info->bmiHeader.biSizeImage = (desc.ddpfPixelFormat.x.dwRGBBitCount / 8) * desc.dwWidth * desc.dwHeight;
|
||||
b_info->bmiHeader.biSizeImage = (desc.ddpfPixelFormat.u.dwRGBBitCount / 8) * desc.dwWidth * desc.dwHeight;
|
||||
b_info->bmiHeader.biXPelsPerMeter = 0;
|
||||
b_info->bmiHeader.biYPelsPerMeter = 0;
|
||||
b_info->bmiHeader.biClrUsed = 0;
|
||||
b_info->bmiHeader.biClrImportant = 0;
|
||||
|
||||
switch (desc.ddpfPixelFormat.x.dwRGBBitCount) {
|
||||
switch (desc.ddpfPixelFormat.u.dwRGBBitCount) {
|
||||
case 16:
|
||||
case 32:
|
||||
#if 0
|
||||
|
@ -1605,9 +1605,9 @@ static HRESULT WINAPI IDirectDrawSurface4Impl_GetDC(LPDIRECTDRAWSURFACE4 iface,H
|
|||
DWORD *masks = (DWORD *) &(b_info->bmiColors);
|
||||
|
||||
usage = 0;
|
||||
masks[0] = desc.ddpfPixelFormat.y.dwRBitMask;
|
||||
masks[1] = desc.ddpfPixelFormat.z.dwGBitMask;
|
||||
masks[2] = desc.ddpfPixelFormat.xx.dwBBitMask;
|
||||
masks[0] = desc.ddpfPixelFormat.u1.dwRBitMask;
|
||||
masks[1] = desc.ddpfPixelFormat.u2.dwGBitMask;
|
||||
masks[2] = desc.ddpfPixelFormat.u3.dwBBitMask;
|
||||
}
|
||||
break;
|
||||
#endif
|
||||
|
@ -1628,7 +1628,7 @@ static HRESULT WINAPI IDirectDrawSurface4Impl_GetDC(LPDIRECTDRAWSURFACE4 iface,H
|
|||
RGBQUAD *rgb = (RGBQUAD *) &(b_info->bmiColors);
|
||||
PALETTEENTRY *pent = (PALETTEENTRY *)&(This->s.palette->palents);
|
||||
|
||||
for (i=0;i<(1<<desc.ddpfPixelFormat.x.dwRGBBitCount);i++) {
|
||||
for (i=0;i<(1<<desc.ddpfPixelFormat.u.dwRGBBitCount);i++) {
|
||||
rgb[i].rgbBlue = pent[i].peBlue;
|
||||
rgb[i].rgbRed = pent[i].peRed;
|
||||
rgb[i].rgbGreen = pent[i].peGreen;
|
||||
|
@ -1657,7 +1657,7 @@ static HRESULT WINAPI IDirectDrawSurface4Impl_GetDC(LPDIRECTDRAWSURFACE4 iface,H
|
|||
|
||||
/* Copy our surface in the DIB section */
|
||||
if ((GET_BPP(desc) * desc.dwWidth) == desc.lPitch)
|
||||
memcpy(This->s.bitmap_data,desc.y.lpSurface,desc.lPitch*desc.dwHeight);
|
||||
memcpy(This->s.bitmap_data,desc.u1.lpSurface,desc.lPitch*desc.dwHeight);
|
||||
else
|
||||
/* TODO */
|
||||
FIXME("This case has to be done :/\n");
|
||||
|
@ -1675,13 +1675,13 @@ static HRESULT WINAPI IDirectDrawSurface4Impl_ReleaseDC(LPDIRECTDRAWSURFACE4 ifa
|
|||
TRACE( "Copying DIBSection at : %p\n", This->s.bitmap_data);
|
||||
/* Copy the DIB section to our surface */
|
||||
if ((GET_BPP(This->s.surface_desc) * This->s.surface_desc.dwWidth) == This->s.surface_desc.lPitch) {
|
||||
memcpy(This->s.surface_desc.y.lpSurface, This->s.bitmap_data, This->s.surface_desc.lPitch * This->s.surface_desc.dwHeight);
|
||||
memcpy(This->s.surface_desc.u1.lpSurface, This->s.bitmap_data, This->s.surface_desc.lPitch * This->s.surface_desc.dwHeight);
|
||||
} else {
|
||||
/* TODO */
|
||||
FIXME("This case has to be done :/\n");
|
||||
}
|
||||
/* Unlock the surface */
|
||||
IDirectDrawSurface4_Unlock(iface,This->s.surface_desc.y.lpSurface);
|
||||
IDirectDrawSurface4_Unlock(iface,This->s.surface_desc.u1.lpSurface);
|
||||
return DD_OK;
|
||||
}
|
||||
|
||||
|
@ -2814,8 +2814,8 @@ static HRESULT common_off_screen_CreateSurface(IDirectDraw2Impl* This,
|
|||
|
||||
if (lpdsf->s.surface_desc.dwFlags & DDSD_ZBUFFERBITDEPTH) {
|
||||
/* This is a Z Buffer */
|
||||
TRACE("Creating Z-Buffer of %ld bit depth\n", lpdsf->s.surface_desc.x.dwZBufferBitDepth);
|
||||
bpp = lpdsf->s.surface_desc.x.dwZBufferBitDepth / 8;
|
||||
TRACE("Creating Z-Buffer of %ld bit depth\n", lpdsf->s.surface_desc.u.dwZBufferBitDepth);
|
||||
bpp = lpdsf->s.surface_desc.u.dwZBufferBitDepth / 8;
|
||||
} else {
|
||||
/* This is a standard image */
|
||||
if (!(lpdsf->s.surface_desc.dwFlags & DDSD_PIXELFORMAT)) {
|
||||
|
@ -2833,7 +2833,7 @@ static HRESULT common_off_screen_CreateSurface(IDirectDraw2Impl* This,
|
|||
}
|
||||
|
||||
lpdsf->s.surface_desc.dwFlags |= DDSD_PITCH|DDSD_LPSURFACE;
|
||||
lpdsf->s.surface_desc.y.lpSurface =
|
||||
lpdsf->s.surface_desc.u1.lpSurface =
|
||||
(LPBYTE)HeapAlloc(GetProcessHeap(),0,lpdsf->s.surface_desc.dwWidth * lpdsf->s.surface_desc.dwHeight * bpp);
|
||||
lpdsf->s.surface_desc.lPitch = lpdsf->s.surface_desc.dwWidth * bpp;
|
||||
|
||||
|
@ -2892,7 +2892,7 @@ static HRESULT WINAPI DGA_IDirectDraw2Impl_CreateSurface(
|
|||
lpddsd->lPitch = (*ilpdsf)->s.surface_desc.lPitch =
|
||||
This->e.dga.fb_width*PFGET_BPP(This->d.directdraw_pixelformat);
|
||||
|
||||
(*ilpdsf)->s.surface_desc.y.lpSurface =
|
||||
(*ilpdsf)->s.surface_desc.u1.lpSurface =
|
||||
This->e.dga.fb_addr + i*fbheight*lpddsd->lPitch;
|
||||
|
||||
(*ilpdsf)->t.dga.fb_height = i*fbheight;
|
||||
|
@ -2932,7 +2932,7 @@ static HRESULT WINAPI DGA_IDirectDraw2Impl_CreateSurface(
|
|||
/* Copy the surface description from the front buffer */
|
||||
back->s.surface_desc = (*ilpdsf)->s.surface_desc;
|
||||
/* Change the parameters that are not the same */
|
||||
back->s.surface_desc.y.lpSurface =
|
||||
back->s.surface_desc.u1.lpSurface =
|
||||
This->e.dga.fb_addr + i*fbheight*lpddsd->lPitch;
|
||||
|
||||
back->s.ddraw = This;
|
||||
|
@ -3044,7 +3044,7 @@ static XImage *create_xshmimage(IDirectDraw2Impl* This, IDirectDrawSurface4Impl*
|
|||
shmctl(lpdsf->t.xlib.shminfo.shmid, IPC_RMID, 0);
|
||||
|
||||
if (This->d.pixel_convert != NULL) {
|
||||
lpdsf->s.surface_desc.y.lpSurface = HeapAlloc(
|
||||
lpdsf->s.surface_desc.u1.lpSurface = HeapAlloc(
|
||||
GetProcessHeap(),
|
||||
HEAP_ZERO_MEMORY,
|
||||
lpdsf->s.surface_desc.dwWidth *
|
||||
|
@ -3052,7 +3052,7 @@ static XImage *create_xshmimage(IDirectDraw2Impl* This, IDirectDrawSurface4Impl*
|
|||
PFGET_BPP(This->d.directdraw_pixelformat)
|
||||
);
|
||||
} else {
|
||||
lpdsf->s.surface_desc.y.lpSurface = img->data;
|
||||
lpdsf->s.surface_desc.u1.lpSurface = img->data;
|
||||
}
|
||||
return img;
|
||||
}
|
||||
|
@ -3069,7 +3069,7 @@ static XImage *create_ximage(IDirectDraw2Impl* This, IDirectDrawSurface4Impl* lp
|
|||
if (img == NULL) {
|
||||
#endif
|
||||
/* Allocate surface memory */
|
||||
lpdsf->s.surface_desc.y.lpSurface = HeapAlloc(
|
||||
lpdsf->s.surface_desc.u1.lpSurface = HeapAlloc(
|
||||
GetProcessHeap(),HEAP_ZERO_MEMORY,
|
||||
lpdsf->s.surface_desc.dwWidth *
|
||||
lpdsf->s.surface_desc.dwHeight *
|
||||
|
@ -3083,7 +3083,7 @@ static XImage *create_ximage(IDirectDraw2Impl* This, IDirectDrawSurface4Impl* lp
|
|||
PFGET_BPP(This->d.screen_pixelformat)
|
||||
);
|
||||
} else {
|
||||
img_data = lpdsf->s.surface_desc.y.lpSurface;
|
||||
img_data = lpdsf->s.surface_desc.u1.lpSurface;
|
||||
}
|
||||
|
||||
/* In this case, create an XImage */
|
||||
|
@ -3336,18 +3336,18 @@ static int _common_depth_to_pixelformat(DWORD depth,
|
|||
pixelformat->dwSize = sizeof(*pixelformat);
|
||||
if (depth == 8) {
|
||||
pixelformat->dwFlags = DDPF_PALETTEINDEXED8;
|
||||
pixelformat->y.dwRBitMask = 0;
|
||||
pixelformat->z.dwGBitMask = 0;
|
||||
pixelformat->xx.dwBBitMask = 0;
|
||||
pixelformat->u1.dwRBitMask = 0;
|
||||
pixelformat->u2.dwGBitMask = 0;
|
||||
pixelformat->u3.dwBBitMask = 0;
|
||||
} else {
|
||||
pixelformat->dwFlags = DDPF_RGB;
|
||||
pixelformat->y.dwRBitMask = vi[j].red_mask;
|
||||
pixelformat->z.dwGBitMask = vi[j].green_mask;
|
||||
pixelformat->xx.dwBBitMask = vi[j].blue_mask;
|
||||
pixelformat->u1.dwRBitMask = vi[j].red_mask;
|
||||
pixelformat->u2.dwGBitMask = vi[j].green_mask;
|
||||
pixelformat->u3.dwBBitMask = vi[j].blue_mask;
|
||||
}
|
||||
pixelformat->dwFourCC = 0;
|
||||
pixelformat->x.dwRGBBitCount = pf[i].bits_per_pixel;
|
||||
pixelformat->xy.dwRGBAlphaBitMask= 0;
|
||||
pixelformat->u.dwRGBBitCount = pf[i].bits_per_pixel;
|
||||
pixelformat->u4.dwRGBAlphaBitMask= 0;
|
||||
|
||||
*screen_pixelformat = *pixelformat;
|
||||
|
||||
|
@ -3382,28 +3382,28 @@ static int _common_depth_to_pixelformat(DWORD depth,
|
|||
screen_pixelformat->dwSize = sizeof(*screen_pixelformat);
|
||||
screen_pixelformat->dwFlags = DDPF_RGB;
|
||||
screen_pixelformat->dwFourCC = 0;
|
||||
screen_pixelformat->x.dwRGBBitCount = pf[i].bits_per_pixel;
|
||||
screen_pixelformat->y.dwRBitMask = vi[j].red_mask;
|
||||
screen_pixelformat->z.dwGBitMask = vi[j].green_mask;
|
||||
screen_pixelformat->xx.dwBBitMask = vi[j].blue_mask;
|
||||
screen_pixelformat->xy.dwRGBAlphaBitMask= 0;
|
||||
screen_pixelformat->u.dwRGBBitCount = pf[i].bits_per_pixel;
|
||||
screen_pixelformat->u1.dwRBitMask = vi[j].red_mask;
|
||||
screen_pixelformat->u2.dwGBitMask = vi[j].green_mask;
|
||||
screen_pixelformat->u3.dwBBitMask = vi[j].blue_mask;
|
||||
screen_pixelformat->u4.dwRGBAlphaBitMask= 0;
|
||||
|
||||
pixelformat->dwSize = sizeof(*pixelformat);
|
||||
pixelformat->dwFourCC = 0;
|
||||
if (depth == 8) {
|
||||
pixelformat->dwFlags = DDPF_PALETTEINDEXED8;
|
||||
pixelformat->x.dwRGBBitCount = 8;
|
||||
pixelformat->y.dwRBitMask = 0;
|
||||
pixelformat->z.dwGBitMask = 0;
|
||||
pixelformat->xx.dwBBitMask = 0;
|
||||
pixelformat->u.dwRGBBitCount = 8;
|
||||
pixelformat->u1.dwRBitMask = 0;
|
||||
pixelformat->u2.dwGBitMask = 0;
|
||||
pixelformat->u3.dwBBitMask = 0;
|
||||
} else {
|
||||
pixelformat->dwFlags = DDPF_RGB;
|
||||
pixelformat->x.dwRGBBitCount = ModeEmulations[c].dest.bpp;
|
||||
pixelformat->y.dwRBitMask = ModeEmulations[c].dest.rmask;
|
||||
pixelformat->z.dwGBitMask = ModeEmulations[c].dest.gmask;
|
||||
pixelformat->xx.dwBBitMask = ModeEmulations[c].dest.bmask;
|
||||
pixelformat->u.dwRGBBitCount = ModeEmulations[c].dest.bpp;
|
||||
pixelformat->u1.dwRBitMask = ModeEmulations[c].dest.rmask;
|
||||
pixelformat->u2.dwGBitMask = ModeEmulations[c].dest.gmask;
|
||||
pixelformat->u3.dwBBitMask = ModeEmulations[c].dest.bmask;
|
||||
}
|
||||
pixelformat->xy.dwRGBAlphaBitMask= 0;
|
||||
pixelformat->u4.dwRGBAlphaBitMask= 0;
|
||||
|
||||
if (pix_depth != NULL)
|
||||
*pix_depth = vi[j].depth;
|
||||
|
@ -3871,7 +3871,7 @@ static HRESULT WINAPI DGA_IDirectDraw2Impl_CreatePalette(
|
|||
res = common_IDirectDraw2Impl_CreatePalette(This,dwFlags,palent,ilpddpal,lpunk,&xsize);
|
||||
if (res != 0) return res;
|
||||
(*ilpddpal)->lpvtbl = &dga_ddpalvt;
|
||||
if (This->d.directdraw_pixelformat.x.dwRGBBitCount<=8) {
|
||||
if (This->d.directdraw_pixelformat.u.dwRGBBitCount<=8) {
|
||||
(*ilpddpal)->cm = TSXCreateColormap(display,DefaultRootWindow(display),DefaultVisualOfScreen(X11DRV_GetXScreen()),AllocAll);
|
||||
} else {
|
||||
FIXME("why are we doing CreatePalette in hi/truecolor?\n");
|
||||
|
@ -4173,41 +4173,41 @@ static HRESULT WINAPI DGA_IDirectDraw2Impl_EnumDisplayModes(
|
|||
ddsfd.dwFlags = DDSD_HEIGHT|DDSD_WIDTH|DDSD_BACKBUFFERCOUNT|DDSD_PIXELFORMAT|DDSD_CAPS;
|
||||
if (dwFlags & DDEDM_REFRESHRATES) {
|
||||
ddsfd.dwFlags |= DDSD_REFRESHRATE;
|
||||
ddsfd.x.dwRefreshRate = 60;
|
||||
ddsfd.u.dwRefreshRate = 60;
|
||||
}
|
||||
|
||||
for (i=0;i<sizeof(depths)/sizeof(depths[0]);i++) {
|
||||
ddsfd.dwBackBufferCount = 1;
|
||||
ddsfd.ddpfPixelFormat.dwFourCC = 0;
|
||||
ddsfd.ddpfPixelFormat.dwFlags = DDPF_RGB;
|
||||
ddsfd.ddpfPixelFormat.x.dwRGBBitCount = depths[i];
|
||||
ddsfd.ddpfPixelFormat.u.dwRGBBitCount = depths[i];
|
||||
/* FIXME: those masks would have to be set in depth > 8 */
|
||||
if (depths[i]==8) {
|
||||
ddsfd.ddpfPixelFormat.y.dwRBitMask = 0;
|
||||
ddsfd.ddpfPixelFormat.z.dwGBitMask = 0;
|
||||
ddsfd.ddpfPixelFormat.xx.dwBBitMask = 0;
|
||||
ddsfd.ddpfPixelFormat.xy.dwRGBAlphaBitMask= 0;
|
||||
ddsfd.ddpfPixelFormat.u1.dwRBitMask = 0;
|
||||
ddsfd.ddpfPixelFormat.u2.dwGBitMask = 0;
|
||||
ddsfd.ddpfPixelFormat.u3.dwBBitMask = 0;
|
||||
ddsfd.ddpfPixelFormat.u4.dwRGBAlphaBitMask= 0;
|
||||
ddsfd.ddsCaps.dwCaps=DDSCAPS_PALETTE;
|
||||
ddsfd.ddpfPixelFormat.dwFlags|=DDPF_PALETTEINDEXED8;
|
||||
} else {
|
||||
ddsfd.ddpfPixelFormat.xy.dwRGBAlphaBitMask= 0;
|
||||
ddsfd.ddpfPixelFormat.u4.dwRGBAlphaBitMask= 0;
|
||||
|
||||
/* FIXME: We should query those from X itself */
|
||||
switch (depths[i]) {
|
||||
case 16:
|
||||
ddsfd.ddpfPixelFormat.y.dwRBitMask = 0xF800;
|
||||
ddsfd.ddpfPixelFormat.z.dwGBitMask = 0x07E0;
|
||||
ddsfd.ddpfPixelFormat.xx.dwBBitMask= 0x001F;
|
||||
ddsfd.ddpfPixelFormat.u1.dwRBitMask = 0xF800;
|
||||
ddsfd.ddpfPixelFormat.u2.dwGBitMask = 0x07E0;
|
||||
ddsfd.ddpfPixelFormat.u3.dwBBitMask= 0x001F;
|
||||
break;
|
||||
case 24:
|
||||
ddsfd.ddpfPixelFormat.y.dwRBitMask = 0x00FF0000;
|
||||
ddsfd.ddpfPixelFormat.z.dwGBitMask = 0x0000FF00;
|
||||
ddsfd.ddpfPixelFormat.xx.dwBBitMask= 0x000000FF;
|
||||
ddsfd.ddpfPixelFormat.u1.dwRBitMask = 0x00FF0000;
|
||||
ddsfd.ddpfPixelFormat.u2.dwGBitMask = 0x0000FF00;
|
||||
ddsfd.ddpfPixelFormat.u3.dwBBitMask= 0x000000FF;
|
||||
break;
|
||||
case 32:
|
||||
ddsfd.ddpfPixelFormat.y.dwRBitMask = 0x00FF0000;
|
||||
ddsfd.ddpfPixelFormat.z.dwGBitMask = 0x0000FF00;
|
||||
ddsfd.ddpfPixelFormat.xx.dwBBitMask= 0x000000FF;
|
||||
ddsfd.ddpfPixelFormat.u1.dwRBitMask = 0x00FF0000;
|
||||
ddsfd.ddpfPixelFormat.u2.dwGBitMask = 0x0000FF00;
|
||||
ddsfd.ddpfPixelFormat.u3.dwBBitMask= 0x000000FF;
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
@ -4265,7 +4265,7 @@ static HRESULT WINAPI Xlib_IDirectDraw2Impl_EnumDisplayModes(
|
|||
ddsfd.dwFlags = DDSD_HEIGHT|DDSD_WIDTH|DDSD_PIXELFORMAT|DDSD_CAPS;
|
||||
if (dwFlags & DDEDM_REFRESHRATES) {
|
||||
ddsfd.dwFlags |= DDSD_REFRESHRATE;
|
||||
ddsfd.x.dwRefreshRate = 60;
|
||||
ddsfd.u.dwRefreshRate = 60;
|
||||
}
|
||||
maxWidth = MONITOR_GetWidth(&MONITOR_PrimaryMonitor);
|
||||
maxHeight = MONITOR_GetHeight(&MONITOR_PrimaryMonitor);
|
||||
|
@ -4302,11 +4302,11 @@ static HRESULT WINAPI Xlib_IDirectDraw2Impl_EnumDisplayModes(
|
|||
ddsfd.ddpfPixelFormat.dwSize = sizeof(ddsfd.ddpfPixelFormat);
|
||||
ddsfd.ddpfPixelFormat.dwFlags = DDPF_PALETTEINDEXED8;
|
||||
ddsfd.ddpfPixelFormat.dwFourCC = 0;
|
||||
ddsfd.ddpfPixelFormat.x.dwRGBBitCount = 8;
|
||||
ddsfd.ddpfPixelFormat.y.dwRBitMask = 0;
|
||||
ddsfd.ddpfPixelFormat.z.dwGBitMask = 0;
|
||||
ddsfd.ddpfPixelFormat.xx.dwBBitMask = 0;
|
||||
ddsfd.ddpfPixelFormat.xy.dwRGBAlphaBitMask= 0;
|
||||
ddsfd.ddpfPixelFormat.u.dwRGBBitCount = 8;
|
||||
ddsfd.ddpfPixelFormat.u1.dwRBitMask = 0;
|
||||
ddsfd.ddpfPixelFormat.u2.dwGBitMask = 0;
|
||||
ddsfd.ddpfPixelFormat.u3.dwBBitMask = 0;
|
||||
ddsfd.ddpfPixelFormat.u4.dwRGBAlphaBitMask= 0;
|
||||
|
||||
has_mode[mode_index] = 1;
|
||||
} else {
|
||||
|
@ -4318,11 +4318,11 @@ static HRESULT WINAPI Xlib_IDirectDraw2Impl_EnumDisplayModes(
|
|||
ddsfd.ddpfPixelFormat.dwSize = sizeof(ddsfd.ddpfPixelFormat);
|
||||
ddsfd.ddpfPixelFormat.dwFlags = DDPF_RGB;
|
||||
ddsfd.ddpfPixelFormat.dwFourCC = 0;
|
||||
ddsfd.ddpfPixelFormat.x.dwRGBBitCount = pf[i].bits_per_pixel;
|
||||
ddsfd.ddpfPixelFormat.y.dwRBitMask = vi[j].red_mask;
|
||||
ddsfd.ddpfPixelFormat.z.dwGBitMask = vi[j].green_mask;
|
||||
ddsfd.ddpfPixelFormat.xx.dwBBitMask = vi[j].blue_mask;
|
||||
ddsfd.ddpfPixelFormat.xy.dwRGBAlphaBitMask= 0;
|
||||
ddsfd.ddpfPixelFormat.u.dwRGBBitCount = pf[i].bits_per_pixel;
|
||||
ddsfd.ddpfPixelFormat.u1.dwRBitMask = vi[j].red_mask;
|
||||
ddsfd.ddpfPixelFormat.u2.dwGBitMask = vi[j].green_mask;
|
||||
ddsfd.ddpfPixelFormat.u3.dwBBitMask = vi[j].blue_mask;
|
||||
ddsfd.ddpfPixelFormat.u4.dwRGBAlphaBitMask= 0;
|
||||
|
||||
send_mode = 1;
|
||||
has_mode[mode_index] = 1;
|
||||
|
@ -4359,18 +4359,18 @@ static HRESULT WINAPI Xlib_IDirectDraw2Impl_EnumDisplayModes(
|
|||
ddsfd.ddpfPixelFormat.dwFourCC = 0;
|
||||
if (depth == 8) {
|
||||
ddsfd.ddpfPixelFormat.dwFlags = DDPF_PALETTEINDEXED8;
|
||||
ddsfd.ddpfPixelFormat.x.dwRGBBitCount = 8;
|
||||
ddsfd.ddpfPixelFormat.y.dwRBitMask = 0;
|
||||
ddsfd.ddpfPixelFormat.z.dwGBitMask = 0;
|
||||
ddsfd.ddpfPixelFormat.xx.dwBBitMask = 0;
|
||||
ddsfd.ddpfPixelFormat.u.dwRGBBitCount = 8;
|
||||
ddsfd.ddpfPixelFormat.u1.dwRBitMask = 0;
|
||||
ddsfd.ddpfPixelFormat.u2.dwGBitMask = 0;
|
||||
ddsfd.ddpfPixelFormat.u3.dwBBitMask = 0;
|
||||
} else {
|
||||
ddsfd.ddpfPixelFormat.dwFlags = DDPF_RGB;
|
||||
ddsfd.ddpfPixelFormat.x.dwRGBBitCount = ModeEmulations[c].dest.bpp;
|
||||
ddsfd.ddpfPixelFormat.y.dwRBitMask = ModeEmulations[c].dest.rmask;
|
||||
ddsfd.ddpfPixelFormat.z.dwGBitMask = ModeEmulations[c].dest.gmask;
|
||||
ddsfd.ddpfPixelFormat.xx.dwBBitMask = ModeEmulations[c].dest.bmask;
|
||||
ddsfd.ddpfPixelFormat.u.dwRGBBitCount = ModeEmulations[c].dest.bpp;
|
||||
ddsfd.ddpfPixelFormat.u1.dwRBitMask = ModeEmulations[c].dest.rmask;
|
||||
ddsfd.ddpfPixelFormat.u2.dwGBitMask = ModeEmulations[c].dest.gmask;
|
||||
ddsfd.ddpfPixelFormat.u3.dwBBitMask = ModeEmulations[c].dest.bmask;
|
||||
}
|
||||
ddsfd.ddpfPixelFormat.xy.dwRGBAlphaBitMask= 0;
|
||||
ddsfd.ddpfPixelFormat.u4.dwRGBAlphaBitMask= 0;
|
||||
send_mode = 1;
|
||||
}
|
||||
|
||||
|
@ -4437,7 +4437,7 @@ static HRESULT WINAPI DGA_IDirectDraw2Impl_GetDisplayMode(
|
|||
lpddsfd->dwWidth = This->d.width;
|
||||
lpddsfd->lPitch = This->e.dga.fb_width*PFGET_BPP(This->d.directdraw_pixelformat);
|
||||
lpddsfd->dwBackBufferCount = 1;
|
||||
lpddsfd->x.dwRefreshRate = 60;
|
||||
lpddsfd->u.dwRefreshRate = 60;
|
||||
lpddsfd->ddsCaps.dwCaps = DDSCAPS_PALETTE;
|
||||
lpddsfd->ddpfPixelFormat = This->d.directdraw_pixelformat;
|
||||
return DD_OK;
|
||||
|
@ -4454,7 +4454,7 @@ static HRESULT WINAPI Xlib_IDirectDraw2Impl_GetDisplayMode(
|
|||
lpddsfd->dwWidth = This->d.width;
|
||||
lpddsfd->lPitch = lpddsfd->dwWidth * PFGET_BPP(This->d.directdraw_pixelformat);
|
||||
lpddsfd->dwBackBufferCount = 1;
|
||||
lpddsfd->x.dwRefreshRate = 60;
|
||||
lpddsfd->u.dwRefreshRate = 60;
|
||||
lpddsfd->ddsCaps.dwCaps = DDSCAPS_PALETTE;
|
||||
lpddsfd->ddpfPixelFormat = This->d.directdraw_pixelformat;
|
||||
return DD_OK;
|
||||
|
|
|
@ -65,7 +65,7 @@ int VGA_GetMode(unsigned*Height,unsigned*Width,unsigned*Depth)
|
|||
if (!lpddsurf) return 1;
|
||||
if (Height) *Height=sdesc.dwHeight;
|
||||
if (Width) *Width=sdesc.dwWidth;
|
||||
if (Depth) *Depth=sdesc.ddpfPixelFormat.x.dwRGBBitCount;
|
||||
if (Depth) *Depth=sdesc.ddpfPixelFormat.u.dwRGBBitCount;
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
@ -115,13 +115,13 @@ LPSTR VGA_Lock(unsigned*Pitch,unsigned*Height,unsigned*Width,unsigned*Depth)
|
|||
if (Pitch) *Pitch=sdesc.lPitch;
|
||||
if (Height) *Height=sdesc.dwHeight;
|
||||
if (Width) *Width=sdesc.dwWidth;
|
||||
if (Depth) *Depth=sdesc.ddpfPixelFormat.x.dwRGBBitCount;
|
||||
return sdesc.y.lpSurface;
|
||||
if (Depth) *Depth=sdesc.ddpfPixelFormat.u.dwRGBBitCount;
|
||||
return sdesc.u1.lpSurface;
|
||||
}
|
||||
|
||||
void VGA_Unlock(void)
|
||||
{
|
||||
IDirectDrawSurface_Unlock(lpddsurf,sdesc.y.lpSurface);
|
||||
IDirectDrawSurface_Unlock(lpddsurf,sdesc.u1.lpSurface);
|
||||
}
|
||||
|
||||
/* We are called from SIGALRM, aren't we? We should _NOT_ do synchronization
|
||||
|
|
|
@ -494,25 +494,25 @@ typedef struct _DDPIXELFORMAT {
|
|||
DWORD dwYUVBitCount; /* C: how many bits per pixel */
|
||||
DWORD dwZBufferBitDepth; /* C: how many bits for z buffers */
|
||||
DWORD dwAlphaBitDepth; /* C: how many bits for alpha channels*/
|
||||
} x;
|
||||
} DUMMYUNIONNAME;
|
||||
union {
|
||||
DWORD dwRBitMask; /* 10: mask for red bit*/
|
||||
DWORD dwYBitMask; /* 10: mask for Y bits*/
|
||||
} y;
|
||||
} DUMMYUNIONNAME1;
|
||||
union {
|
||||
DWORD dwGBitMask; /* 14: mask for green bits*/
|
||||
DWORD dwUBitMask; /* 14: mask for U bits*/
|
||||
} z;
|
||||
} DUMMYUNIONNAME2;
|
||||
union {
|
||||
DWORD dwBBitMask; /* 18: mask for blue bits*/
|
||||
DWORD dwVBitMask; /* 18: mask for V bits*/
|
||||
} xx;
|
||||
} DUMMYUNIONNAME3;
|
||||
union {
|
||||
DWORD dwRGBAlphaBitMask; /* 1C: mask for alpha channel */
|
||||
DWORD dwYUVAlphaBitMask; /* 1C: mask for alpha channel */
|
||||
DWORD dwRGBZBitMask; /* 1C: mask for Z channel */
|
||||
DWORD dwYUVZBitMask; /* 1C: mask for Z channel */
|
||||
} xy;
|
||||
} DUMMYUNIONNAME4;
|
||||
/* 20: next structure */
|
||||
} DDPIXELFORMAT,*LPDDPIXELFORMAT;
|
||||
|
||||
|
@ -663,13 +663,13 @@ typedef struct _DDSURFACEDESC
|
|||
DWORD dwMipMapCount;/* 18:number of mip-map levels requested*/
|
||||
DWORD dwZBufferBitDepth;/*18: depth of Z buffer requested*/
|
||||
DWORD dwRefreshRate;/* 18:refresh rate (used when display mode is described)*/
|
||||
} x;
|
||||
} DUMMYUNIONNAME;
|
||||
DWORD dwAlphaBitDepth;/* 1C:depth of alpha buffer requested*/
|
||||
DWORD dwReserved; /* 20:reserved*/
|
||||
union {
|
||||
LPVOID lpSurface; /* 24:pointer to the associated surface memory*/
|
||||
DWORD dwLinearSize; /* 24:Formless late-allocated optimized surface size*/
|
||||
} y;
|
||||
} DUMMYUNIONNAME1;
|
||||
DDCOLORKEY ddckCKDestOverlay;/* 28: CK for dest overlay use*/
|
||||
DDCOLORKEY ddckCKDestBlt; /* 30: CK for destination blt use*/
|
||||
DDCOLORKEY ddckCKSrcOverlay;/* 38: CK for source overlay use*/
|
||||
|
@ -735,13 +735,13 @@ typedef struct _DDBLTFX
|
|||
{
|
||||
DWORD dwZDestConst; /* Constant to use as Z buffer for dest */
|
||||
LPDIRECTDRAWSURFACE lpDDSZBufferDest; /* Surface to use as Z buffer for dest */
|
||||
} x;
|
||||
} DUMMYUNIONNAME;
|
||||
DWORD dwZSrcConstBitDepth; /* Bit depth used to specify Z constant for source */
|
||||
union
|
||||
{
|
||||
DWORD dwZSrcConst; /* Constant to use as Z buffer for src */
|
||||
LPDIRECTDRAWSURFACE lpDDSZBufferSrc; /* Surface to use as Z buffer for src */
|
||||
} y;
|
||||
} DUMMYUNIONNAME1;
|
||||
DWORD dwAlphaEdgeBlendBitDepth; /* Bit depth used to specify constant for alpha edge blend */
|
||||
DWORD dwAlphaEdgeBlend; /* Alpha for edge blending */
|
||||
DWORD dwReserved;
|
||||
|
@ -750,20 +750,20 @@ typedef struct _DDBLTFX
|
|||
{
|
||||
DWORD dwAlphaDestConst; /* Constant to use as Alpha Channel */
|
||||
LPDIRECTDRAWSURFACE lpDDSAlphaDest; /* Surface to use as Alpha Channel */
|
||||
} z;
|
||||
} DUMMYUNIONNAME2;
|
||||
DWORD dwAlphaSrcConstBitDepth; /* Bit depth used to specify alpha constant for source */
|
||||
union
|
||||
{
|
||||
DWORD dwAlphaSrcConst; /* Constant to use as Alpha Channel */
|
||||
LPDIRECTDRAWSURFACE lpDDSAlphaSrc; /* Surface to use as Alpha Channel */
|
||||
} a;
|
||||
} DUMMYUNIONNAME3;
|
||||
union
|
||||
{
|
||||
DWORD dwFillColor; /* color in RGB or Palettized */
|
||||
DWORD dwFillDepth; /* depth value for z-buffer */
|
||||
DWORD dwFillPixel; /* pixel val for RGBA or RGBZ */
|
||||
LPDIRECTDRAWSURFACE lpDDSPattern; /* Surface to use as pattern */
|
||||
} b;
|
||||
} DUMMYUNIONNAME4;
|
||||
DDCOLORKEY ddckDestColorkey; /* DestColorkey override */
|
||||
DDCOLORKEY ddckSrcColorkey; /* SrcColorkey override */
|
||||
} DDBLTFX,*LPDDBLTFX;
|
||||
|
@ -799,13 +799,13 @@ typedef struct _DDOVERLAYFX
|
|||
{
|
||||
DWORD dwAlphaDestConst; /* Constant to use as alpha channel for dest */
|
||||
LPDIRECTDRAWSURFACE lpDDSAlphaDest; /* Surface to use as alpha channel for dest */
|
||||
} x;
|
||||
} DUMMYUNIONNAME;
|
||||
DWORD dwAlphaSrcConstBitDepth; /* Bit depth used to specify alpha constant for source */
|
||||
union
|
||||
{
|
||||
DWORD dwAlphaSrcConst; /* Constant to use as alpha channel for src */
|
||||
LPDIRECTDRAWSURFACE lpDDSAlphaSrc; /* Surface to use as alpha channel for src */
|
||||
} y;
|
||||
} DUMMYUNIONNAME1;
|
||||
DDCOLORKEY dckDestColorkey; /* DestColorkey override */
|
||||
DDCOLORKEY dckSrcColorkey; /* DestColorkey override */
|
||||
DWORD dwDDFX; /* Overlay FX */
|
||||
|
|
Loading…
Reference in New Issue