I'm trying to get the application "Nya Multigram" (http://www.softogram.se/multigramkunskapsbanken.html) running in Wine. It works somewhat, but the initial screen (which should look like http://www.softogram.se/grafik/multigramkunskapsbanken/mgkbscreenshot4.jpg) doesn't have any text. The buttons are rendered very slowly, and this error message appears:
fixme:system:SystemParametersInfoW Unimplemented action: 8202 (SPI_GETFONTSMOOTHINGTYPE)
A screenshot is available at http://www.cendio.com/~peter/multigram.png.
A partial log when running with WINEDEBUG=+font,+nativefont,+wc_font is included below. Any ideas on how to solve this?
trace:font:GetTextMetricsW text metrics: Weight = 700 FirstChar = 32 AveCharWidth = 16 Italic = 0 LastChar = 64258 MaxCharWidth = 16 UnderLined = 0 DefaultChar = 0 Overhang = 0 StruckOut = 0 BreakChar = 32 CharSet = 0 PitchAndFamily = 36 -------------------- InternalLeading = 4 Ascent = 24 Descent = 6 Height = 30 fixme:system:SystemParametersInfoW Unimplemented action: 8202 (SPI_GETFONTSMOOTHINGTYPE) trace:font:WineEngCreateFontInstance L"System", h=16, it=0, weight=400, PandF=22, charset=0 orient 0 escapement 0 trace:font:WineEngCreateFontInstance returning cached gdiFont(0x7fe9b888) for hFont 0x7c trace:font:X11DRV_SelectFont hdc=0x1154, hfont=0x7c trace:font:X11DRV_SelectFont gdiFont = 0x7fe9b888 trace:font:WineEngCreateFontInstance L"System", h=16, it=0, weight=400, PandF=22, charset=0 orient 0 escapement 0 trace:font:WineEngCreateFontInstance returning cached gdiFont(0x7fe9b888) for hFont 0x7c trace:font:X11DRV_SelectFont hdc=0x2284, hfont=0x7c trace:font:X11DRV_SelectFont gdiFont = 0x7fe9b888 trace:font:X11DRV_SelectFont hdc=0x2284, hfont=0x7c trace:font:X11DRV_SelectFont gdiFont = 0x7fe9b888 trace:font:X11DRV_SelectFont hdc=0x2284, hfont=0x7c trace:font:X11DRV_SelectFont gdiFont = 0x7fe9b888 trace:font:X11DRV_SelectFont hdc=0x2284, hfont=0x7c trace:font:X11DRV_SelectFont gdiFont = 0x7fe9b888 trace:font:WineEngCreateFontInstance L"Arial", h=31, it=0, weight=700, PandF=00, charset=0 orient 0 escapement 0 trace:font:WineEngCreateFontInstance returning cached gdiFont(0x7b7abd70) for hFont 0xec8 trace:font:X11DRV_SelectFont hdc=0x2218, hfont=0xec8 trace:font:X11DRV_SelectFont gdiFont = 0x7b7abd70 trace:font:X11DRV_SelectFont hdc=0x1154, hfont=0x7c trace:font:X11DRV_SelectFont gdiFont = 0x7fe9b888 trace:font:WineEngCreateFontInstance L"Arial", h=31, it=0, weight=700, PandF=00, charset=0 orient 0 escapement 0 trace:font:WineEngCreateFontInstance returning cached gdiFont(0x7b7abd70) for hFont 0xec8 trace:font:X11DRV_SelectFont hdc=0x1154, hfont=0xec8 trace:font:X11DRV_SelectFont gdiFont = 0x7b7abd70
On Wed, 28 Dec 2005, Peter Åstrand wrote:
I'm trying to get the application "Nya Multigram" (http://www.softogram.se/multigramkunskapsbanken.html) running in Wine. It works somewhat, but the initial screen (which should look like http://www.softogram.se/grafik/multigramkunskapsbanken/mgkbscreenshot4.jpg) doesn't have any text. The buttons are rendered very slowly, and this error
After some more investigations, it seems like this is a GDI+ problem. I've tried a very simple GDI+ demo (http://www.codeproject.com/vcpp/gdiplus/gdi__and_mfc.asp), which draws a line, ellipse and a rectangle. The, I added this text output, copied directly from http://msdn.microsoft.com/library/default.asp?url=/library/en-us/gdicpp/GDIP...:
FontFamily fontFamily(L"Times New Roman"); Font font(&fontFamily, 24, FontStyleRegular, UnitPixel); PointF pointF(30.0f, 10.0f); SolidBrush solidBrush(Color(255, 0, 0, 255));
graphics.DrawString(L"Hello", -1, &font, pointF, &solidBrush);
This works perfectly in Windows, but with Wine, no text appears! See screnshot http://www.cendio.se/~peter/tmp/gdiplus-windows.png versus http://www.cendio.se/~peter/tmp/gdiplus-wine.png.
It seems very strange to me that such a basic concept like drawing a string with GDI+ doesn't work with Wine. Isn't this a common task?
Regards,
Hmm..
Looks strikingly similar to the label issue with Poser I'm looking at. http://www.winehq.org/pipermail/wine-devel/2005-December/043615.html I haven't had a chance to look at it deeper, but I think the issue lies somewhere in the CreateDIBSection -> DoCopyDIBSection areas.
Would you be so kind to post the gdi+ sample executable somewhere? I'd like to compare traces and see if we're hitting on the same issue here.(Tried compiling myself, but VC6 seems to hate the new platform SDK ;-) )
Cheers Vik
After some more investigations, it seems like this is a GDI+ problem. I've tried a very simple GDI+ demo (http://www.codeproject.com/vcpp/gdiplus/gdi__and_mfc.asp), which draws a line, ellipse and a rectangle. The, I added this text output, copied directly from http://msdn.microsoft.com/library/default.asp?url=/library/en-us/gdicpp/GDIP...:
FontFamily fontFamily(L"Times New Roman"); Font font(&fontFamily, 24, FontStyleRegular, UnitPixel); PointF pointF(30.0f, 10.0f); SolidBrush solidBrush(Color(255, 0, 0, 255));
graphics.DrawString(L"Hello", -1, &font, pointF, &solidBrush);
This works perfectly in Windows, but with Wine, no text appears! See screnshot http://www.cendio.se/~peter/tmp/gdiplus-windows.png versus http://www.cendio.se/~peter/tmp/gdiplus-wine.png.
It seems very strange to me that such a basic concept like drawing a string with GDI+ doesn't work with Wine. Isn't this a common task?
On Sun, 8 Jan 2006, Vik Kumar wrote:
Looks strikingly similar to the label issue with Poser I'm looking at. http://www.winehq.org/pipermail/wine-devel/2005-December/043615.html I haven't had a chance to look at it deeper, but I think the issue lies somewhere in the CreateDIBSection -> DoCopyDIBSection areas.
Thanks for noticing this.
Would you be so kind to post the gdi+ sample executable somewhere? I'd like to compare traces and see if we're hitting on the same issue here.(Tried compiling myself, but VC6 seems to hate the new platform SDK ;-) )
Here you go: http://www.cendio.se/~peter/tmp/MFC_GDI_PLUS.exe.
I've also noticied that the result depends on which Windows version Wine is emulating:
When using 95 or 98 setting, I get no GDI+ output at all (no lines), and the error messages:
err:dc:CreateDCW no device found for L"\\.\DISPLAY1" fixme:font:WineEngCreateFontInstance just using first face for now
When using 2000 or XP setting, I get the lines, but no text, and the error messages:
fixme:win:EnumDisplayDevicesW ((null),0,0x7fc6f65c,0x00000000), stub! fixme:font:WineEngCreateFontInstance just using first face for now fixme:dciman:DCICreatePrimary 0x320 0x7f3a11f
Regards,
Sunday, January 8, 2006, 10:36:46 AM, Peter Åstrand wrote:
On Sun, 8 Jan 2006, Vik Kumar wrote:
Would you be so kind to post the gdi+ sample executable somewhere? I'd like to compare traces and see if we're hitting on the same issue here.(Tried compiling myself, but VC6 seems to hate the new platform SDK ;-) )
Here you go: http://www.cendio.se/~peter/tmp/MFC_GDI_PLUS.exe.
I've also noticied that the result depends on which Windows version Wine is emulating:
When using 95 or 98 setting, I get no GDI+ output at all (no lines), and the error messages:
err:dc:CreateDCW no device found for L"\\.\DISPLAY1" fixme:font:WineEngCreateFontInstance just using first face for now
This should be fixed in cvs. What Wine version are you using?
Vitaliy
On Sun, 8 Jan 2006, Vitaliy Margolen wrote:
Here you go: http://www.cendio.se/~peter/tmp/MFC_GDI_PLUS.exe.
I've also noticied that the result depends on which Windows version Wine is emulating:
When using 95 or 98 setting, I get no GDI+ output at all (no lines), and the error messages:
err:dc:CreateDCW no device found for L"\\.\DISPLAY1" fixme:font:WineEngCreateFontInstance just using first face for now
This should be fixed in cvs. What Wine version are you using?
The CVS version, as of 2006-01-05. Strange.
Here you go: http://www.cendio.se/~peter/tmp/MFC_GDI_PLUS.exe.
Thanks
This should be fixed in cvs. What Wine version are you using?
The CVS version, as of 2006-01-05. Strange.
Indeed this is fixed in CVS HEAD if you set the windows version to win2k. I can see the text output on MFC_GDI_PLUS.exe Tho, my Poser issue is still there. I'm also guessing that Nya Multigram still is broken... so might have been a different issue.
Cheers Vik
On Mon, 9 Jan 2006, Vik Kumar wrote:
Here you go: http://www.cendio.se/~peter/tmp/MFC_GDI_PLUS.exe.
Indeed this is fixed in CVS HEAD if you set the windows version to win2k. I can see the text output on MFC_GDI_PLUS.exe
Strange, I wonder what's different with my environment:
* Which version of gdiplus.dll are you using? I'm using 5.1.3097.0.
* Which OS are you running? I've tested Wine on both Fedora Core 4 and RedHat 9.
* Do you get this error message as well?:
fixme:win:EnumDisplayDevicesW ((null),0,0x4075f65c,0x00000000), stub! fixme:dciman:DCICreatePrimary 0x320 0x418511fc
Regards,
Hi,
- Which version of gdiplus.dll are you using? I'm using 5.1.3097.0.
*Mine's apparently 5.1.3102.1360*
- Which OS are you running? I've tested Wine on both Fedora Core 4 and
RedHat 9.
Gentoo
- Do you get this error message as well?:
fixme:win:EnumDisplayDevicesW ((null),0,0x4075f65c,0x00000000), stub! fixme:dciman:DCICreatePrimary 0x320 0x418511fc
I do. And I also get the same errors as yours when I use win98. I guess it's the gdiplus version.... I got mine off of dll-files.
Cheers Vik
On Tue, 10 Jan 2006, Vik Kumar wrote:
- Which version of gdiplus.dll are you using? I'm using 5.1.3097.0.
*Mine's apparently 5.1.3102.1360*
I've tried this version as well now, no difference.
fixme:win:EnumDisplayDevicesW ((null),0,0x4075f65c,0x00000000), stub! fixme:dciman:DCICreatePrimary 0x320 0x418511fc
I do. And I also get the same errors as yours when I use win98. I guess it's the gdiplus version.... I got mine off of dll-files.
Apparently not. Perhaps it depends on which fonts you have available.
On Mon, 2006-01-09 at 10:36 +0100, Peter Åstrand wrote:
On Mon, 9 Jan 2006, Vik Kumar wrote:
Here you go: http://www.cendio.se/~peter/tmp/MFC_GDI_PLUS.exe.
Indeed this is fixed in CVS HEAD if you set the windows version to win2k. I can see the text output on MFC_GDI_PLUS.exe
I pulled a CVS update about 8 hours ago, I can not see the text output in the demo program.
Strange, I wonder what's different with my environment:
- Which version of gdiplus.dll are you using? I'm using 5.1.3097.0.
The one from dll-files, like Vik. 5.1.3102.1360
- Which OS are you running? I've tested Wine on both Fedora Core 4 and
RedHat 9.
Debian Etch
- Do you get this error message as well?:
fixme:win:EnumDisplayDevicesW ((null),0,0x4075f65c,0x00000000), stub! fixme:dciman:DCICreatePrimary 0x320 0x418511fc
With W2K the colored lines are drawn, no text: wino@debian:~$ wine MFC_GDI_PLUS.exe fixme:win:EnumDisplayDevicesW ((null),0,0x7fc4f65c,0x00000000), stub! fixme:dciman:DCICreatePrimary 0x320 0x7e6211fc
If I set to Windows98, there are no colored lines, either: wino@debian:~$ wine MFC_GDI_PLUS.exe err:dc:CreateDCW no device found for L"\\.\DISPLAY1"
Ron Jensen
On Mon, 9 Jan 2006, Ron Jensen wrote:
Here you go: http://www.cendio.se/~peter/tmp/MFC_GDI_PLUS.exe.
Indeed this is fixed in CVS HEAD if you set the windows version to win2k. I can see the text output on MFC_GDI_PLUS.exe
I pulled a CVS update about 8 hours ago, I can not see the text output in the demo program.
Thanks for confirming my result. I tried Debian myself yesterday, with the same result.
Regards,
On Mon, 9 Jan 2006, Peter Åstrand wrote:
On Mon, 9 Jan 2006, Vik Kumar wrote:
Here you go: http://www.cendio.se/~peter/tmp/MFC_GDI_PLUS.exe.
Indeed this is fixed in CVS HEAD if you set the windows version to win2k. I can see the text output on MFC_GDI_PLUS.exe
Strange, I wonder what's different with my environment:
Progress: This is a font issue. If I install http://sf.net/projects/corefonts/times32.exe, my test program correctly displays the text! The application "Nya Multigram" also works much better; most fonts are now visible (but not all). Now I wonder:
1) Isn't it a bug that Wine fails to display the simple GDI+ text without MS font? Shouldn't Wine at least print an error or warning? Should I file a bug?
2) How can I determine which fonts are "missing" (what the application requires)? I've tried debugging with WINEDEBUG=+font, but cannot find anything obvious.
Regards,