Jacek Caban : gdi32: Store font code page in DC_ATTR.
Alexandre Julliard
julliard at winehq.org
Fri Aug 20 16:12:55 CDT 2021
Module: wine
Branch: master
Commit: 7ad7ec5b8b903733bc521cfdc1200bf4d76fb182
URL: https://source.winehq.org/git/wine.git/?a=commit;h=7ad7ec5b8b903733bc521cfdc1200bf4d76fb182
Author: Jacek Caban <jacek at codeweavers.com>
Date: Fri Aug 20 10:42:24 2021 +0200
gdi32: Store font code page in DC_ATTR.
Signed-off-by: Jacek Caban <jacek at codeweavers.com>
Signed-off-by: Huw Davies <huw at codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard at winehq.org>
---
dlls/gdi32/dc.c | 2 +-
dlls/gdi32/font.c | 28 ++++++----------------------
dlls/gdi32/ntgdi_private.h | 1 -
dlls/gdi32/text.c | 9 +++++++++
include/ntgdi.h | 1 +
5 files changed, 17 insertions(+), 24 deletions(-)
diff --git a/dlls/gdi32/dc.c b/dlls/gdi32/dc.c
index 51b754d1ccd..e4f643389d5 100644
--- a/dlls/gdi32/dc.c
+++ b/dlls/gdi32/dc.c
@@ -80,8 +80,8 @@ static void set_initial_dc_state( DC *dc )
dc->attr->vport_ext.cy = 1;
dc->attr->miter_limit = 10.0f; /* 10.0 is the default, from MSDN */
dc->attr->layout = 0;
- dc->font_code_page = CP_ACP;
dc->attr->rop_mode = R2_COPYPEN;
+ dc->attr->font_code_page = CP_ACP;
dc->attr->poly_fill_mode = ALTERNATE;
dc->attr->stretch_blt_mode = BLACKONWHITE;
dc->attr->rel_abs_mode = ABSOLUTE;
diff --git a/dlls/gdi32/font.c b/dlls/gdi32/font.c
index bfb27ccd1af..e267190fb64 100644
--- a/dlls/gdi32/font.c
+++ b/dlls/gdi32/font.c
@@ -4163,22 +4163,6 @@ static BOOL get_char_positions_indices( DC *dc, const WORD *indices, INT count,
return TRUE;
}
-/***********************************************************************
- * GdiGetCodePage (GDI32.@)
- */
-DWORD WINAPI GdiGetCodePage( HDC hdc )
-{
- UINT cp = CP_ACP;
- DC *dc = get_dc_ptr( hdc );
-
- if (dc)
- {
- cp = dc->font_code_page;
- release_dc_ptr( dc );
- }
- return cp;
-}
-
/***********************************************************************
* get_text_charset_info
*
@@ -4457,14 +4441,14 @@ static void update_font_code_page( DC *dc, HANDLE font )
/* Hmm, nicely designed api this one! */
if (TranslateCharsetInfo( ULongToPtr(charset), &csi, TCI_SRCCHARSET) )
- dc->font_code_page = csi.ciACP;
+ dc->attr->font_code_page = csi.ciACP;
else {
switch(charset) {
case OEM_CHARSET:
- dc->font_code_page = GetOEMCP();
+ dc->attr->font_code_page = GetOEMCP();
break;
case DEFAULT_CHARSET:
- dc->font_code_page = GetACP();
+ dc->attr->font_code_page = GetACP();
break;
case VISCII_CHARSET:
@@ -4481,17 +4465,17 @@ static void update_font_code_page( DC *dc, HANDLE font )
each of these, but since it's broken anyway we'll just
use CP_ACP and hope it'll go away...
*/
- dc->font_code_page = CP_ACP;
+ dc->attr->font_code_page = CP_ACP;
break;
default:
FIXME("Can't find codepage for charset %d\n", charset);
- dc->font_code_page = CP_ACP;
+ dc->attr->font_code_page = CP_ACP;
break;
}
}
- TRACE("charset %d => cp %d\n", charset, dc->font_code_page);
+ TRACE( "charset %d => cp %d\n", charset, dc->attr->font_code_page );
}
/***********************************************************************
diff --git a/dlls/gdi32/ntgdi_private.h b/dlls/gdi32/ntgdi_private.h
index 522bd51b6cc..91230666fad 100644
--- a/dlls/gdi32/ntgdi_private.h
+++ b/dlls/gdi32/ntgdi_private.h
@@ -99,7 +99,6 @@ typedef struct tagDC
const struct font_gamma_ramp *font_gamma_ramp;
- UINT font_code_page;
INT breakExtra; /* breakTotalExtra / breakCount */
INT breakRem; /* breakTotalExtra % breakCount */
ABORTPROC pAbortProc; /* AbortProc for Printing */
diff --git a/dlls/gdi32/text.c b/dlls/gdi32/text.c
index 2d3902d2433..ffbc9806e78 100644
--- a/dlls/gdi32/text.c
+++ b/dlls/gdi32/text.c
@@ -737,6 +737,15 @@ static void text_metric_WtoA( const TEXTMETRICW *tmW, TEXTMETRICA *tmA )
tmA->tmCharSet = tmW->tmCharSet;
}
+/***********************************************************************
+ * GdiGetCodePage (GDI32.@)
+ */
+DWORD WINAPI GdiGetCodePage( HDC hdc )
+{
+ DC_ATTR *dc_attr = get_dc_attr( hdc );
+ return dc_attr ? dc_attr->font_code_page : CP_ACP;
+}
+
/***********************************************************************
* ExtTextOutW (GDI32.@)
*/
diff --git a/include/ntgdi.h b/include/ntgdi.h
index 52eb0767617..14808593501 100644
--- a/include/ntgdi.h
+++ b/include/ntgdi.h
@@ -156,6 +156,7 @@ typedef struct DC_ATTR
SIZE vport_ext; /* viewport extent */
SIZE virtual_res;
SIZE virtual_size;
+ UINT font_code_page;
void *emf;
} DC_ATTR;
More information about the wine-cvs
mailing list