http://bugs.winehq.org/show_bug.cgi?id=3778
------- Additional Comments From saulius.krasuckas@elst.vtu.lt 2005-09-11 04:34 ------- | I guess they mean SB_PIXEL_ALPHA, part of SHADEBLENDCAPS in GetDeviceCaps for | x11drv. SHADEBLENDCAPS seems to be completely missing currently: ... | I would add them myself, seems to be gruntwork, but there are numbers in the | header file behind all other capabilities - I don't know what they mean, or | what the correct values for those caps would be...
As for correct header filenames you can always check Platform SDK and DX SDK [*]. grep is your friend:
$ grep -rEC3 'SB_PIXEL_ALPHA|SHADEBLENDCAPS' Microsoft\ SDK/include/ | Microsoft SDK/include/WinGDI.h-#define BLTALIGNMENT 119 /* Preferred blt alignment */ | Microsoft SDK/include/WinGDI.h- | Microsoft SDK/include/WinGDI.h-#if(WINVER >= 0x0500) | Microsoft SDK/include/WinGDI.h:#define SHADEBLENDCAPS 120 /* Shading and blending caps */ | Microsoft SDK/include/WinGDI.h-#define COLORMGMTCAPS 121 /* Color Management caps */ | Microsoft SDK/include/WinGDI.h-#endif /* WINVER >= 0x0500 */ | Microsoft SDK/include/WinGDI.h- | -- | Microsoft SDK/include/WinGDI.h-/* Shading and blending caps */ | Microsoft SDK/include/WinGDI.h-#define SB_NONE 0x00000000 | Microsoft SDK/include/WinGDI.h-#define SB_CONST_ALPHA 0x00000001 | Microsoft SDK/include/WinGDI.h:#define SB_PIXEL_ALPHA 0x00000002 | Microsoft SDK/include/WinGDI.h-#define SB_PREMULT_ALPHA 0x00000004 | Microsoft SDK/include/WinGDI.h- | Microsoft SDK/include/WinGDI.h-#define SB_GRAD_RECT 0x00000010
As for values, you can formally use MSDN or get the same info from the SDKs. :-) Think of adding a corresponding test [2][3] for the SHADEBLENDCAPS parameter passed to GetDeviceCaps(), as none such exists yet:
$ cd /usr/src/wine-cvs/wine $ grr GetDeviceCaps dlls/*/tests/ | dlls/gdi/tests/gdiobj.c: ok(!GetDeviceCaps(hgdiobj_event->hdc, TECHNOLOGY), "GetDeviceCaps(TECHNOLOGY) should fail\n"); | dlls/gdi/tests/gdiobj.c: ret = GetDeviceCaps(hgdiobj_event.hdc, TECHNOLOGY); | dlls/gdi/tests/gdiobj.c: ok(ret == DT_RASDISPLAY, "GetDeviceCaps(TECHNOLOGY) should return DT_RASDISPLAY not %d\n", ret); | dlls/gdi/tests/metafile.c: ok(GetDeviceCaps(hdcMetafile, TECHNOLOGY) == DT_RASDISPLAY, | dlls/gdi/tests/metafile.c: "GetDeviceCaps(TECHNOLOGY) has to return DT_RASDISPLAY for a display based EMF\n"); | dlls/gdi/tests/metafile.c: caps = GetDeviceCaps (hdcMetafile, TECHNOLOGY); | dlls/gdi/tests/metafile.c: "GetDeviceCaps: TECHNOLOGY=%d != DT_METAFILE.\n", caps); | dlls/gdi/tests/metafile.c: x0 = MulDiv(0, GetDeviceCaps(hdc, HORZSIZE) * 100, GetDeviceCaps(hdc, HORZRES)); | dlls/gdi/tests/metafile.c: y0 = MulDiv(0, GetDeviceCaps(hdc, VERTSIZE) * 100, GetDeviceCaps(hdc, VERTRES)); | dlls/gdi/tests/metafile.c: x1 = MulDiv(10, GetDeviceCaps(hdc, HORZSIZE) * 100, GetDeviceCaps(hdc, HORZRES)); | dlls/gdi/tests/metafile.c: y1 = MulDiv(10, GetDeviceCaps(hdc, VERTSIZE) * 100, GetDeviceCaps(hdc, VERTRES)); | dlls/gdi/tests/bitmap.c: screen_depth = GetDeviceCaps(hdc, BITSPIXEL); | dlls/gdi/tests/bitmap.c: screen_depth = GetDeviceCaps(hdc, BITSPIXEL) * GetDeviceCaps(hdc, PLANES); | dlls/user/tests/sysparams.c: dpi = GetDeviceCaps( hdc, LOGPIXELSY); | dlls/user/tests/text.c: lf.lfHeight = -MulDiv(9, GetDeviceCaps(hdc,
Of course, it's easiest to start by compiling simple Windows app which doesn't work under Wine. Then transform it to Wine test. Then compile in windows. Then make it compile using Wine.
IMHO wine-devel@ list will help you in any case. Feel free, thanks. :-)
Good luck.
[1] http://www.winehq.org/site/docs/winedev-guide/testing-windows [2] http://www.winehq.org/site/docs/winedev-guide/testing-what [3] http://www.winehq.org/site/docs/winedev-guide/testing-test