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
6376b4cf
Commit
6376b4cf
authored
Oct 20, 2011
by
Alexandre Julliard
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
gdi32: Implement GetGlyphOutline as a standard driver entry point.
parent
ff96c4dd
Hide whitespace changes
Inline
Side-by-side
Showing
3 changed files
with
15 additions
and
24 deletions
+15
-24
font.c
dlls/gdi32/font.c
+3
-6
freetype.c
dlls/gdi32/freetype.c
+12
-15
gdi_private.h
dlls/gdi32/gdi_private.h
+0
-3
No files found.
dlls/gdi32/font.c
View file @
6376b4cf
...
@@ -2503,6 +2503,7 @@ DWORD WINAPI GetGlyphOutlineW( HDC hdc, UINT uChar, UINT fuFormat,
...
@@ -2503,6 +2503,7 @@ DWORD WINAPI GetGlyphOutlineW( HDC hdc, UINT uChar, UINT fuFormat,
{
{
DC
*
dc
;
DC
*
dc
;
DWORD
ret
;
DWORD
ret
;
PHYSDEV
dev
;
TRACE
(
"(%p, %04x, %04x, %p, %d, %p, %p)
\n
"
,
TRACE
(
"(%p, %04x, %04x, %p, %d, %p, %p)
\n
"
,
hdc
,
uChar
,
fuFormat
,
lpgm
,
cbBuffer
,
lpBuffer
,
lpmat2
);
hdc
,
uChar
,
fuFormat
,
lpgm
,
cbBuffer
,
lpBuffer
,
lpmat2
);
...
@@ -2512,12 +2513,8 @@ DWORD WINAPI GetGlyphOutlineW( HDC hdc, UINT uChar, UINT fuFormat,
...
@@ -2512,12 +2513,8 @@ DWORD WINAPI GetGlyphOutlineW( HDC hdc, UINT uChar, UINT fuFormat,
dc
=
get_dc_ptr
(
hdc
);
dc
=
get_dc_ptr
(
hdc
);
if
(
!
dc
)
return
GDI_ERROR
;
if
(
!
dc
)
return
GDI_ERROR
;
if
(
dc
->
gdiFont
)
dev
=
GET_DC_PHYSDEV
(
dc
,
pGetGlyphOutline
);
ret
=
WineEngGetGlyphOutline
(
dc
->
gdiFont
,
uChar
,
fuFormat
,
lpgm
,
ret
=
dev
->
funcs
->
pGetGlyphOutline
(
dev
,
uChar
,
fuFormat
,
lpgm
,
cbBuffer
,
lpBuffer
,
lpmat2
);
cbBuffer
,
lpBuffer
,
lpmat2
);
else
ret
=
GDI_ERROR
;
release_dc_ptr
(
dc
);
release_dc_ptr
(
dc
);
return
ret
;
return
ret
;
}
}
...
...
dlls/gdi32/freetype.c
View file @
6376b4cf
...
@@ -6196,18 +6196,23 @@ end:
...
@@ -6196,18 +6196,23 @@ end:
}
}
/*************************************************************
/*************************************************************
* WineEngGetGlyphOutline
* freetype_GetGlyphOutline
*
*/
*/
DWORD
WineEngGetGlyphOutline
(
GdiFont
*
font
,
UINT
glyph
,
UINT
format
,
static
DWORD
freetype_GetGlyphOutline
(
PHYSDEV
dev
,
UINT
glyph
,
UINT
format
,
LPGLYPHMETRICS
lpgm
,
DWORD
buflen
,
LPVOID
buf
,
LPGLYPHMETRICS
lpgm
,
DWORD
buflen
,
LPVOID
buf
,
const
MAT2
*
lpmat
)
const
MAT2
*
lpmat
)
{
{
struct
freetype_physdev
*
physdev
=
get_freetype_dev
(
dev
);
DWORD
ret
;
DWORD
ret
;
if
(
!
physdev
->
font
)
{
dev
=
GET_NEXT_PHYSDEV
(
dev
,
pGetGlyphOutline
);
return
dev
->
funcs
->
pGetGlyphOutline
(
dev
,
glyph
,
format
,
lpgm
,
buflen
,
buf
,
lpmat
);
}
GDI_CheckNotLock
();
GDI_CheckNotLock
();
EnterCriticalSection
(
&
freetype_cs
);
EnterCriticalSection
(
&
freetype_cs
);
ret
=
get_glyph_outline
(
font
,
glyph
,
format
,
lpgm
,
buflen
,
buf
,
lpmat
);
ret
=
get_glyph_outline
(
physdev
->
font
,
glyph
,
format
,
lpgm
,
buflen
,
buf
,
lpmat
);
LeaveCriticalSection
(
&
freetype_cs
);
LeaveCriticalSection
(
&
freetype_cs
);
return
ret
;
return
ret
;
}
}
...
@@ -7089,7 +7094,7 @@ static const struct gdi_dc_funcs freetype_funcs =
...
@@ -7089,7 +7094,7 @@ static const struct gdi_dc_funcs freetype_funcs =
NULL
,
/* pGetFontData */
NULL
,
/* pGetFontData */
freetype_GetFontUnicodeRanges
,
/* pGetFontUnicodeRanges */
freetype_GetFontUnicodeRanges
,
/* pGetFontUnicodeRanges */
freetype_GetGlyphIndices
,
/* pGetGlyphIndices */
freetype_GetGlyphIndices
,
/* pGetGlyphIndices */
NULL
,
/* pGetGlyphOutline */
freetype_GetGlyphOutline
,
/* pGetGlyphOutline */
NULL
,
/* pGetICMProfile */
NULL
,
/* pGetICMProfile */
NULL
,
/* pGetImage */
NULL
,
/* pGetImage */
NULL
,
/* pGetKerningPairs */
NULL
,
/* pGetKerningPairs */
...
@@ -7190,14 +7195,6 @@ BOOL WineEngDestroyFontInstance(HFONT hfont)
...
@@ -7190,14 +7195,6 @@ BOOL WineEngDestroyFontInstance(HFONT hfont)
return
FALSE
;
return
FALSE
;
}
}
DWORD
WineEngGetGlyphOutline
(
GdiFont
*
font
,
UINT
glyph
,
UINT
format
,
LPGLYPHMETRICS
lpgm
,
DWORD
buflen
,
LPVOID
buf
,
const
MAT2
*
lpmat
)
{
ERR
(
"called but we don't have FreeType
\n
"
);
return
GDI_ERROR
;
}
UINT
WineEngGetOutlineTextMetrics
(
GdiFont
*
font
,
UINT
cbSize
,
UINT
WineEngGetOutlineTextMetrics
(
GdiFont
*
font
,
UINT
cbSize
,
OUTLINETEXTMETRICW
*
potm
)
OUTLINETEXTMETRICW
*
potm
)
{
{
...
...
dlls/gdi32/gdi_private.h
View file @
6376b4cf
...
@@ -293,9 +293,6 @@ extern INT WineEngAddFontResourceEx(LPCWSTR, DWORD, PVOID) DECLSPEC_HIDDEN;
...
@@ -293,9 +293,6 @@ extern INT WineEngAddFontResourceEx(LPCWSTR, DWORD, PVOID) DECLSPEC_HIDDEN;
extern
HANDLE
WineEngAddFontMemResourceEx
(
PVOID
,
DWORD
,
PVOID
,
LPDWORD
)
DECLSPEC_HIDDEN
;
extern
HANDLE
WineEngAddFontMemResourceEx
(
PVOID
,
DWORD
,
PVOID
,
LPDWORD
)
DECLSPEC_HIDDEN
;
extern
BOOL
WineEngDestroyFontInstance
(
HFONT
handle
)
DECLSPEC_HIDDEN
;
extern
BOOL
WineEngDestroyFontInstance
(
HFONT
handle
)
DECLSPEC_HIDDEN
;
extern
DWORD
WineEngGetFontData
(
GdiFont
*
,
DWORD
,
DWORD
,
LPVOID
,
DWORD
)
DECLSPEC_HIDDEN
;
extern
DWORD
WineEngGetFontData
(
GdiFont
*
,
DWORD
,
DWORD
,
LPVOID
,
DWORD
)
DECLSPEC_HIDDEN
;
extern
DWORD
WineEngGetGlyphOutline
(
GdiFont
*
,
UINT
glyph
,
UINT
format
,
LPGLYPHMETRICS
,
DWORD
buflen
,
LPVOID
buf
,
const
MAT2
*
)
DECLSPEC_HIDDEN
;
extern
DWORD
WineEngGetKerningPairs
(
GdiFont
*
,
DWORD
,
KERNINGPAIR
*
)
DECLSPEC_HIDDEN
;
extern
DWORD
WineEngGetKerningPairs
(
GdiFont
*
,
DWORD
,
KERNINGPAIR
*
)
DECLSPEC_HIDDEN
;
extern
BOOL
WineEngGetLinkedHFont
(
DC
*
dc
,
WCHAR
c
,
HFONT
*
new_hfont
,
UINT
*
glyph
)
DECLSPEC_HIDDEN
;
extern
BOOL
WineEngGetLinkedHFont
(
DC
*
dc
,
WCHAR
c
,
HFONT
*
new_hfont
,
UINT
*
glyph
)
DECLSPEC_HIDDEN
;
extern
UINT
WineEngGetOutlineTextMetrics
(
GdiFont
*
,
UINT
,
LPOUTLINETEXTMETRICW
)
DECLSPEC_HIDDEN
;
extern
UINT
WineEngGetOutlineTextMetrics
(
GdiFont
*
,
UINT
,
LPOUTLINETEXTMETRICW
)
DECLSPEC_HIDDEN
;
...
...
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