winex11: remove unused field

Marcus Meissner marcus at jet.franken.de
Mon Nov 29 03:18:43 CST 2010


On Sun, Nov 28, 2010 at 08:36:51PM -0600, Vincent Povirk wrote:
> I don't know much about this area of Wine, but I think the change is incorrect.
> 
> The DC's transform is applied to the font when it is rendered. To do
> this correctly, the glyphs must be transformed when they are
> rasterized and uploaded.
> 
> Note that we only appear to use the first four fields of XFORM (they
> are copied to a shorter FMAT2 struct) to rasterize the glyphs. The
> last two fields of XFORM only specify an offset, so I think they can
> be safely ignored.

Steam still has a 1x0x0x1 matrix, and only sends different eDX and eDY
values.

So would setting them to 0 help? Like this?

---
 dlls/winex11.drv/xrender.c |    3 +++
 1 files changed, 3 insertions(+), 0 deletions(-)

diff --git a/dlls/winex11.drv/xrender.c b/dlls/winex11.drv/xrender.c
index 4f900b2..f0ec1b1 100644
--- a/dlls/winex11.drv/xrender.c
+++ b/dlls/winex11.drv/xrender.c
@@ -1067,6 +1067,9 @@ BOOL X11DRV_XRender_SelectFont(X11DRV_PDEVICE *physDev, HFONT hfont)
     lfsz.devsize.cx = X11DRV_XWStoDS( physDev, lfsz.lf.lfWidth );
     lfsz.devsize.cy = X11DRV_YWStoDS( physDev, lfsz.lf.lfHeight );
     GetWorldTransform( physDev->hdc, &lfsz.xform );
+    /* Not used fields, would break hashing */
+    lfsz.xform.eDx = lfsz.xform.eDy = 0;
+
     lfsz_calc_hash(&lfsz);
 
     info = get_xrender_info(physDev);
-- 
1.7.1




More information about the wine-devel mailing list