Bug 30598

Summary: Cairo 1.8.10 causes GTK+ applications to render unreadable text on Windows 7
Product: cairo Reporter: Fan, Chun-wei <fanc999>
Component: win32 backendAssignee: cairo-bugs mailing list <cairo-bugs>
Status: RESOLVED NOTOURBUG QA Contact: cairo-bugs mailing list <cairo-bugs>
Severity: normal    
Priority: medium    
Version: 1.10.0   
Hardware: x86 (IA32)   
OS: Windows (All)   
Whiteboard:
i915 platform: i915 features:
Attachments: The image of the messed up GTK+ text

Description Fan, Chun-wei 2010-10-04 09:21:45 UTC
Created attachment 39154 [details]
The image of the messed up GTK+ text

Hi,

I have attempted to compile Cairo 1.10.0 with Visual C++ 2008, which was done successfully as I have done with the previous stable versions with both the supplied makefiles and with the Visual C++ project files successfully.

As I replaced the old 1.8.10 cairo.dll as I upgraded to GTK+ 2.22.0, and tried to run the GTK+ demo program, the text in the GTK+ application window became squeezed together, making the text in the window unreadable.  Upon investigation, using the cairo 1.9.14 DLL would remedy the problem.  My cairo-features.h is as follows (for both 1.10.0 and 1.9.14):

/* Generated by Makefile.win32.  Do not edit. */
#ifndef CAIRO_FEATURES_H
#define CAIRO_FEATURES_H 1
#define CAIRO_HAS_WIN32_SURFACE 1
#define CAIRO_HAS_WIN32_FONT 1
#define CAIRO_HAS_PNG_FUNCTIONS 1
#define CAIRO_HAS_FT_FONT 1
#define CAIRO_HAS_FC_FONT 1
#define CAIRO_HAS_PS_SURFACE 1
#define CAIRO_HAS_PDF_SURFACE 1
#define CAIRO_HAS_SVG_SURFACE 1
#define CAIRO_HAS_IMAGE_SURFACE 1
#define CAIRO_HAS_RECORDING_SURFACE 1
#define CAIRO_HAS_USER_FONT 1
#define CAIRO_HAS_GOBJECT_FUNCTIONS 1
#define CAIRO_HAS_INTERPRETER 1
#endif

Please note that this problem did not occur on Windows XP SP3 (not sure about Vista though as I do not run Vista).

Thanks
Comment 1 Fan, Chun-wei 2010-10-08 11:03:30 UTC
I realized that I mistakenly defined my own lround (C99) which MSVC did not have, instead of defining the macro DISABLE_SOME_FLOATING_POINT, which I believe was the correct thing to do and hence fixed the problem.

Sorry, DOH!

Use of freedesktop.org services, including Bugzilla, is subject to our Code of Conduct. How we collect and use information is described in our Privacy Policy.