[Bug 3778] morrowind faild to detect graphics correctly

Wine Bugs wine-bugs at winehq.org
Wed Nov 9 04:34:17 CST 2005


http://bugs.winehq.org/show_bug.cgi?id=3778





------- Additional Comments From saulius.krasuckas at 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

-- 
Configure bugmail: http://bugs.winehq.org/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
You are the assignee for the bug, or are watching the assignee.



More information about the wine-bugs mailing list