From 68c3a284aa167480b850c0f7efafe72408da4c4f Mon Sep 17 00:00:00 2001 From: Lionel Ulmer Date: Fri, 7 Mar 2003 20:34:34 +0000 Subject: [PATCH] - some Caps clean-up when no OpenGL compiled in - fix some fonts displaying problems --- dlls/ddraw/d3ddevice/mesa.c | 9 +++++++++ dlls/ddraw/ddraw/user.c | 14 +++++++++++--- 2 files changed, 20 insertions(+), 3 deletions(-) diff --git a/dlls/ddraw/d3ddevice/mesa.c b/dlls/ddraw/d3ddevice/mesa.c index 0eb5e85f296..da1cd34c540 100644 --- a/dlls/ddraw/d3ddevice/mesa.c +++ b/dlls/ddraw/d3ddevice/mesa.c @@ -2069,6 +2069,15 @@ d3ddevice_set_ortho(IDirect3DDeviceImpl *This) glMatrixMode(GL_MODELVIEW); glLoadIdentity(); + /* See the OpenGL Red Book for an explanation of the following translation (in the OpenGL + Correctness Tips section). + + Basically, from what I understood, if the game does not filter the font texture, + as the 'real' pixel will lie at the middle of the two texels, OpenGL may choose the wrong + one and we will have strange artifacts (as the rounding and stuff may give different results + for different pixels, ie sometimes take the left pixel, sometimes the right). + */ + glTranslatef(0.375, 0.375, 0); glMatrixMode(GL_PROJECTION); glLoadMatrixf(trans_mat); } diff --git a/dlls/ddraw/ddraw/user.c b/dlls/ddraw/ddraw/user.c index 17217345fa7..0ba30a6f12f 100644 --- a/dlls/ddraw/ddraw/user.c +++ b/dlls/ddraw/ddraw/user.c @@ -172,7 +172,11 @@ HRESULT User_DirectDraw_Construct(IDirectDrawImpl *This, BOOL ex) | DDFXCAPS_BLTSHRINKY | DDFXCAPS_BLTSHRINKXN \ | DDFXCAPS_BLTSTRETCHX | DDFXCAPS_BLTSTRETCHXN \ | DDFXCAPS_BLTSTRETCHY | DDFXCAPS_BLTSTRETCHYN) - This->caps.dwCaps |= DDCAPS_GDI | DDCAPS_PALETTE | BLIT_CAPS /* Hack for D3D code */ | DDCAPS_3D; + This->caps.dwCaps |= DDCAPS_GDI | DDCAPS_PALETTE | BLIT_CAPS; +#ifdef HAVE_OPENGL + /* Hack for D3D code */ + This->caps.dwCaps |= DDCAPS_3D; +#endif /* HAVE_OPENGL */ This->caps.dwCaps2 |= DDCAPS2_CERTIFIED | DDCAPS2_NOPAGELOCKREQUIRED | DDCAPS2_PRIMARYGAMMA | DDCAPS2_WIDESURFACES; This->caps.dwCKeyCaps |= CKEY_CAPS; @@ -193,8 +197,12 @@ HRESULT User_DirectDraw_Construct(IDirectDrawImpl *This, BOOL ex) DDSCAPS_FLIP | DDSCAPS_FRONTBUFFER | DDSCAPS_OFFSCREENPLAIN | DDSCAPS_PALETTE | DDSCAPS_PRIMARYSURFACE | DDSCAPS_SYSTEMMEMORY | - DDSCAPS_VIDEOMEMORY | DDSCAPS_VISIBLE | /* Hacks for D3D code */ - DDSCAPS_3DDEVICE | DDSCAPS_MIPMAP | DDSCAPS_TEXTURE | DDSCAPS_ZBUFFER; + DDSCAPS_VIDEOMEMORY | DDSCAPS_VISIBLE; +#ifdef HAVE_OPENGL + /* Hacks for D3D code */ + This->caps.ddsCaps.dwCaps |= DDSCAPS_3DDEVICE | DDSCAPS_MIPMAP | DDSCAPS_TEXTURE | DDSCAPS_ZBUFFER; +#endif /* HAVE_OPENGL */ + This->caps.ddsOldCaps.dwCaps = This->caps.ddsCaps.dwCaps; #undef BLIT_CAPS #undef CKEY_CAPS