Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
W
wine-winehq
Project
Project
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Registry
Registry
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
wine
wine-winehq
Commits
27208a0e
Commit
27208a0e
authored
Oct 19, 2011
by
Alexandre Julliard
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
gdi32: Implement GetCharABCWidthsI as a standard driver entry point.
parent
e5a0fa70
Hide whitespace changes
Inline
Side-by-side
Showing
3 changed files
with
16 additions
and
23 deletions
+16
-23
font.c
dlls/gdi32/font.c
+4
-7
freetype.c
dlls/gdi32/freetype.c
+12
-14
gdi_private.h
dlls/gdi32/gdi_private.h
+0
-2
No files found.
dlls/gdi32/font.c
View file @
27208a0e
...
...
@@ -2434,8 +2434,9 @@ BOOL WINAPI GetCharABCWidthsI( HDC hdc, UINT firstChar, UINT count,
LPWORD
pgi
,
LPABC
abc
)
{
DC
*
dc
=
get_dc_ptr
(
hdc
);
PHYSDEV
dev
;
unsigned
int
i
;
BOOL
ret
=
FALSE
;
BOOL
ret
;
if
(
!
dc
)
return
FALSE
;
...
...
@@ -2445,11 +2446,8 @@ BOOL WINAPI GetCharABCWidthsI( HDC hdc, UINT firstChar, UINT count,
return
FALSE
;
}
if
(
dc
->
gdiFont
)
ret
=
WineEngGetCharABCWidthsI
(
dc
->
gdiFont
,
firstChar
,
count
,
pgi
,
abc
);
else
FIXME
(
": stub
\n
"
);
dev
=
GET_DC_PHYSDEV
(
dc
,
pGetCharABCWidthsI
);
ret
=
dev
->
funcs
->
pGetCharABCWidthsI
(
dev
,
firstChar
,
count
,
pgi
,
abc
);
if
(
ret
)
{
/* convert device units to logical */
...
...
@@ -2458,7 +2456,6 @@ BOOL WINAPI GetCharABCWidthsI( HDC hdc, UINT firstChar, UINT count,
abc
->
abcB
=
INTERNAL_XDSTOWS
(
dc
,
abc
->
abcB
);
abc
->
abcC
=
INTERNAL_XDSTOWS
(
dc
,
abc
->
abcC
);
}
ret
=
TRUE
;
}
release_dc_ptr
(
dc
);
...
...
dlls/gdi32/freetype.c
View file @
27208a0e
...
...
@@ -6419,25 +6419,30 @@ BOOL WineEngGetCharABCWidthsFloat(GdiFont *font, UINT first, UINT last, LPABCFLO
}
/*************************************************************
* WineEngGetCharABCWidthsI
*
* freetype_GetCharABCWidthsI
*/
BOOL
WineEngGetCharABCWidthsI
(
GdiFont
*
font
,
UINT
firstChar
,
UINT
count
,
LPWORD
pgi
,
LPABC
buffer
)
static
BOOL
freetype_GetCharABCWidthsI
(
PHYSDEV
dev
,
UINT
firstChar
,
UINT
count
,
LPWORD
pgi
,
LPABC
buffer
)
{
static
const
MAT2
identity
=
{
{
0
,
1
},{
0
,
0
},{
0
,
0
},{
0
,
1
}
};
UINT
c
;
GLYPHMETRICS
gm
;
FT_UInt
glyph_index
;
GdiFont
*
linked_font
;
struct
freetype_physdev
*
physdev
=
get_freetype_dev
(
dev
);
if
(
!
physdev
->
font
)
{
dev
=
GET_NEXT_PHYSDEV
(
dev
,
pGetCharABCWidthsI
);
return
dev
->
funcs
->
pGetCharABCWidthsI
(
dev
,
firstChar
,
count
,
pgi
,
buffer
);
}
if
(
!
FT_HAS_HORIZONTAL
(
font
->
ft_face
))
if
(
!
FT_HAS_HORIZONTAL
(
physdev
->
font
->
ft_face
))
return
FALSE
;
GDI_CheckNotLock
();
EnterCriticalSection
(
&
freetype_cs
);
get_glyph_index_linked
(
font
,
'a'
,
&
linked_font
,
&
glyph_index
);
get_glyph_index_linked
(
physdev
->
font
,
'a'
,
&
linked_font
,
&
glyph_index
);
if
(
!
pgi
)
for
(
c
=
firstChar
;
c
<
firstChar
+
count
;
c
++
)
{
get_glyph_outline
(
linked_font
,
c
,
GGO_METRICS
|
GGO_GLYPH_INDEX
,
...
...
@@ -7094,7 +7099,7 @@ static const struct gdi_dc_funcs freetype_funcs =
NULL
,
/* pGdiComment */
NULL
,
/* pGdiRealizationInfo */
freetype_GetCharABCWidths
,
/* pGetCharABCWidths */
NULL
,
/* pGetCharABCWidthsI */
freetype_GetCharABCWidthsI
,
/* pGetCharABCWidthsI */
freetype_GetCharWidth
,
/* pGetCharWidth */
NULL
,
/* pGetDeviceCaps */
NULL
,
/* pGetDeviceGammaRamp */
...
...
@@ -7229,13 +7234,6 @@ BOOL WineEngGetCharABCWidthsFloat(GdiFont *font, UINT first, UINT last, LPABCFLO
return
FALSE
;
}
BOOL
WineEngGetCharABCWidthsI
(
GdiFont
*
font
,
UINT
firstChar
,
UINT
count
,
LPWORD
pgi
,
LPABC
buffer
)
{
ERR
(
"called but we don't have FreeType
\n
"
);
return
FALSE
;
}
BOOL
WineEngGetTextExtentExPointI
(
GdiFont
*
font
,
const
WORD
*
indices
,
INT
count
,
INT
max_ext
,
LPINT
nfit
,
LPINT
dx
,
LPSIZE
size
)
{
...
...
dlls/gdi32/gdi_private.h
View file @
27208a0e
...
...
@@ -294,8 +294,6 @@ extern HANDLE WineEngAddFontMemResourceEx(PVOID, DWORD, PVOID, LPDWORD) DECLSPEC
extern
BOOL
WineEngDestroyFontInstance
(
HFONT
handle
)
DECLSPEC_HIDDEN
;
extern
BOOL
WineEngGetCharABCWidthsFloat
(
GdiFont
*
font
,
UINT
firstChar
,
UINT
lastChar
,
LPABCFLOAT
buffer
)
DECLSPEC_HIDDEN
;
extern
BOOL
WineEngGetCharABCWidthsI
(
GdiFont
*
font
,
UINT
firstChar
,
UINT
count
,
LPWORD
pgi
,
LPABC
buffer
)
DECLSPEC_HIDDEN
;
extern
DWORD
WineEngGetFontData
(
GdiFont
*
,
DWORD
,
DWORD
,
LPVOID
,
DWORD
)
DECLSPEC_HIDDEN
;
extern
DWORD
WineEngGetFontUnicodeRanges
(
GdiFont
*
,
LPGLYPHSET
)
DECLSPEC_HIDDEN
;
extern
DWORD
WineEngGetGlyphIndices
(
GdiFont
*
font
,
LPCWSTR
lpstr
,
INT
count
,
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment