From 4120188f99caaaade5921e396cc39af9e1c3ca24 Mon Sep 17 00:00:00 2001 From: Roderick Colenbrander Date: Sun, 30 Mar 2008 21:36:03 +0000 Subject: [PATCH] wined3d: Request a pixel format with alpha support in case of P8 render targets. --- dlls/wined3d/context.c | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/dlls/wined3d/context.c b/dlls/wined3d/context.c index 90828d6544..a3a7222219 100644 --- a/dlls/wined3d/context.c +++ b/dlls/wined3d/context.c @@ -237,6 +237,13 @@ WineD3DContext *CreateContext(IWineD3DDeviceImpl *This, IWineD3DSurfaceImpl *tar PUSH2(WGL_AUX_BUFFERS_ARB, 2); } + /* DirectDraw supports 8bit paletted render targets and these are used by old games like Starcraft and C&C. + * Most modern hardware doesn't support 8bit natively so we perform some form of 8bit -> 32bit conversion. + * The conversion (ab)uses the alpha component for storing the palette index. For this reason we require + * a format with 8bit alpha, so request A8R8G8B8. */ + if(fmt == WINED3DFMT_P8) + fmt = WINED3DFMT_A8R8G8B8; + if(!getColorBits(fmt, &redBits, &greenBits, &blueBits, &alphaBits, &colorBits)) { ERR("Unable to get color bits for format %#x!\n", target->resource.format); return FALSE; -- 2.33.8