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
7889b174
Commit
7889b174
authored
Aug 29, 2015
by
Nikolay Sivov
Committed by
Alexandre Julliard
Sep 01, 2015
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
gdi32: Added GetFontRealizationInfo() export.
parent
adb0f582
Hide whitespace changes
Inline
Side-by-side
Showing
15 changed files
with
77 additions
and
34 deletions
+77
-34
dc.c
dlls/gdi32/dibdrv/dc.c
+2
-2
driver.c
dlls/gdi32/driver.c
+6
-6
init.c
dlls/gdi32/enhmfdrv/init.c
+1
-1
font.c
dlls/gdi32/font.c
+39
-7
freetype.c
dlls/gdi32/freetype.c
+12
-6
gdi32.spec
dlls/gdi32/gdi32.spec
+1
-0
gdi_private.h
dlls/gdi32/gdi_private.h
+6
-4
init.c
dlls/gdi32/mfdrv/init.c
+1
-1
path.c
dlls/gdi32/path.c
+1
-1
font.c
dlls/gdi32/tests/font.c
+2
-0
gdi.c
dlls/winemac.drv/gdi.c
+1
-1
init.c
dlls/wineps.drv/init.c
+1
-1
init.c
dlls/winex11.drv/init.c
+1
-1
xrender.c
dlls/winex11.drv/xrender.c
+1
-1
gdi_driver.h
include/wine/gdi_driver.h
+2
-2
No files found.
dlls/gdi32/dibdrv/dc.c
View file @
7889b174
...
...
@@ -429,7 +429,6 @@ const struct gdi_dc_funcs dib_driver =
NULL
,
/* pFontIsLinked */
NULL
,
/* pFrameRgn */
NULL
,
/* pGdiComment */
NULL
,
/* pGdiRealizationInfo */
NULL
,
/* pGetBoundsRect */
NULL
,
/* pGetCharABCWidths */
NULL
,
/* pGetCharABCWidthsI */
...
...
@@ -437,6 +436,7 @@ const struct gdi_dc_funcs dib_driver =
NULL
,
/* pGetDeviceCaps */
NULL
,
/* pGetDeviceGammaRamp */
NULL
,
/* pGetFontData */
NULL
,
/* pGetFontRealizationInfo */
NULL
,
/* pGetFontUnicodeRanges */
NULL
,
/* pGetGlyphIndices */
NULL
,
/* pGetGlyphOutline */
...
...
@@ -1049,7 +1049,6 @@ static const struct gdi_dc_funcs window_driver =
NULL
,
/* pFontIsLinked */
NULL
,
/* pFrameRgn */
NULL
,
/* pGdiComment */
NULL
,
/* pGdiRealizationInfo */
NULL
,
/* pGetBoundsRect */
NULL
,
/* pGetCharABCWidths */
NULL
,
/* pGetCharABCWidthsI */
...
...
@@ -1057,6 +1056,7 @@ static const struct gdi_dc_funcs window_driver =
NULL
,
/* pGetDeviceCaps */
NULL
,
/* pGetDeviceGammaRamp */
NULL
,
/* pGetFontData */
NULL
,
/* pGetFontRealizationInfo */
NULL
,
/* pGetFontUnicodeRanges */
NULL
,
/* pGetGlyphIndices */
NULL
,
/* pGetGlyphOutline */
...
...
dlls/gdi32/driver.c
View file @
7889b174
...
...
@@ -276,11 +276,6 @@ static BOOL nulldrv_GdiComment( PHYSDEV dev, UINT size, const BYTE *data )
return
FALSE
;
}
static
BOOL
nulldrv_GdiRealizationInfo
(
PHYSDEV
dev
,
void
*
info
)
{
return
FALSE
;
}
static
UINT
nulldrv_GetBoundsRect
(
PHYSDEV
dev
,
RECT
*
rect
,
UINT
flags
)
{
return
DCB_RESET
;
...
...
@@ -334,6 +329,11 @@ static DWORD nulldrv_GetFontData( PHYSDEV dev, DWORD table, DWORD offset, LPVOID
return
FALSE
;
}
static
BOOL
nulldrv_GetFontRealizationInfo
(
PHYSDEV
dev
,
void
*
info
)
{
return
FALSE
;
}
static
DWORD
nulldrv_GetFontUnicodeRanges
(
PHYSDEV
dev
,
LPGLYPHSET
glyphs
)
{
return
0
;
...
...
@@ -668,7 +668,6 @@ const struct gdi_dc_funcs null_driver =
nulldrv_FontIsLinked
,
/* pFontIsLinked */
nulldrv_FrameRgn
,
/* pFrameRgn */
nulldrv_GdiComment
,
/* pGdiComment */
nulldrv_GdiRealizationInfo
,
/* pGdiRealizationInfo */
nulldrv_GetBoundsRect
,
/* pGetBoundsRect */
nulldrv_GetCharABCWidths
,
/* pGetCharABCWidths */
nulldrv_GetCharABCWidthsI
,
/* pGetCharABCWidthsI */
...
...
@@ -676,6 +675,7 @@ const struct gdi_dc_funcs null_driver =
nulldrv_GetDeviceCaps
,
/* pGetDeviceCaps */
nulldrv_GetDeviceGammaRamp
,
/* pGetDeviceGammaRamp */
nulldrv_GetFontData
,
/* pGetFontData */
nulldrv_GetFontRealizationInfo
,
/* pGetFontRealizationInfo */
nulldrv_GetFontUnicodeRanges
,
/* pGetFontUnicodeRanges */
nulldrv_GetGlyphIndices
,
/* pGetGlyphIndices */
nulldrv_GetGlyphOutline
,
/* pGetGlyphOutline */
...
...
dlls/gdi32/enhmfdrv/init.c
View file @
7889b174
...
...
@@ -69,7 +69,6 @@ static const struct gdi_dc_funcs EMFDRV_Funcs =
NULL
,
/* pFontIsLinked */
EMFDRV_FrameRgn
,
/* pFrameRgn */
EMFDRV_GdiComment
,
/* pGdiComment */
NULL
,
/* pGdiRealizationInfo */
NULL
,
/* pGetBoundsRect */
NULL
,
/* pGetCharABCWidths */
NULL
,
/* pGetCharABCWidthsI */
...
...
@@ -77,6 +76,7 @@ static const struct gdi_dc_funcs EMFDRV_Funcs =
EMFDRV_GetDeviceCaps
,
/* pGetDeviceCaps */
NULL
,
/* pGetDeviceGammaRamp */
NULL
,
/* pGetFontData */
NULL
,
/* pGetFontRealizationInfo */
NULL
,
/* pGetFontUnicodeRanges */
NULL
,
/* pGetGlyphIndices */
NULL
,
/* pGetGlyphOutline */
...
...
dlls/gdi32/font.c
View file @
7889b174
...
...
@@ -3846,19 +3846,51 @@ BOOL WINAPI FontIsLinked(HDC hdc)
}
/*************************************************************
* GdiRealizationInfo (GDI32.@)
*
* Returns a structure that contains some font information.
* GetFontRealizationInfo (GDI32.@)
*/
BOOL
WINAPI
G
diRealizationInfo
(
HDC
hdc
,
realization_info_t
*
info
)
BOOL
WINAPI
G
etFontRealizationInfo
(
HDC
hdc
,
struct
font_realization_info
*
info
)
{
DC
*
dc
=
get_dc_ptr
(
hdc
);
BOOL
is_v0
=
info
->
size
==
FIELD_OFFSET
(
struct
font_realization_info
,
unk
);
PHYSDEV
dev
;
BOOL
ret
;
DC
*
dc
;
if
(
info
->
size
!=
sizeof
(
*
info
)
&&
!
is_v0
)
return
FALSE
;
dc
=
get_dc_ptr
(
hdc
);
if
(
!
dc
)
return
FALSE
;
dev
=
GET_DC_PHYSDEV
(
dc
,
pG
di
RealizationInfo
);
ret
=
dev
->
funcs
->
pG
di
RealizationInfo
(
dev
,
info
);
dev
=
GET_DC_PHYSDEV
(
dc
,
pG
etFont
RealizationInfo
);
ret
=
dev
->
funcs
->
pG
etFont
RealizationInfo
(
dev
,
info
);
release_dc_ptr
(
dc
);
return
ret
;
}
struct
realization_info
{
DWORD
flags
;
/* 1 for bitmap fonts, 3 for scalable fonts */
DWORD
cache_num
;
/* keeps incrementing - num of fonts that have been created allowing for caching?? */
DWORD
instance_id
;
/* identifies a realized font instance */
};
/*************************************************************
* GdiRealizationInfo (GDI32.@)
*
* Returns a structure that contains some font information.
*/
BOOL
WINAPI
GdiRealizationInfo
(
HDC
hdc
,
struct
realization_info
*
info
)
{
struct
font_realization_info
ri
;
BOOL
ret
;
ri
.
size
=
sizeof
(
ri
);
ret
=
GetFontRealizationInfo
(
hdc
,
&
ri
);
if
(
ret
)
{
info
->
flags
=
ri
.
flags
;
info
->
cache_num
=
ri
.
cache_num
;
info
->
instance_id
=
ri
.
instance_id
;
}
return
ret
;
}
dlls/gdi32/freetype.c
View file @
7889b174
...
...
@@ -8131,17 +8131,17 @@ BOOL WINAPI GetRasterizerCaps( LPRASTERIZER_STATUS lprs, UINT cbNumBytes)
}
/*************************************************************
* freetype_G
di
RealizationInfo
* freetype_G
etFont
RealizationInfo
*/
static
BOOL
freetype_G
di
RealizationInfo
(
PHYSDEV
dev
,
void
*
ptr
)
static
BOOL
freetype_G
etFont
RealizationInfo
(
PHYSDEV
dev
,
void
*
ptr
)
{
struct
freetype_physdev
*
physdev
=
get_freetype_dev
(
dev
);
realization_info_t
*
info
=
ptr
;
struct
font_realization_info
*
info
=
ptr
;
if
(
!
physdev
->
font
)
{
dev
=
GET_NEXT_PHYSDEV
(
dev
,
pG
di
RealizationInfo
);
return
dev
->
funcs
->
pG
di
RealizationInfo
(
dev
,
ptr
);
dev
=
GET_NEXT_PHYSDEV
(
dev
,
pG
etFont
RealizationInfo
);
return
dev
->
funcs
->
pG
etFont
RealizationInfo
(
dev
,
ptr
);
}
FIXME
(
"(%p, %p): stub!
\n
"
,
physdev
->
font
,
info
);
...
...
@@ -8152,6 +8152,12 @@ static BOOL freetype_GdiRealizationInfo( PHYSDEV dev, void *ptr )
info
->
cache_num
=
physdev
->
font
->
cache_num
;
info
->
instance_id
=
-
1
;
if
(
info
->
size
==
sizeof
(
*
info
))
{
info
->
unk
=
0
;
info
->
face_index
=
physdev
->
font
->
ft_face
->
face_index
;
}
return
TRUE
;
}
...
...
@@ -8445,7 +8451,6 @@ static const struct gdi_dc_funcs freetype_funcs =
freetype_FontIsLinked
,
/* pFontIsLinked */
NULL
,
/* pFrameRgn */
NULL
,
/* pGdiComment */
freetype_GdiRealizationInfo
,
/* pGdiRealizationInfo */
NULL
,
/* pGetBoundsRect */
freetype_GetCharABCWidths
,
/* pGetCharABCWidths */
freetype_GetCharABCWidthsI
,
/* pGetCharABCWidthsI */
...
...
@@ -8453,6 +8458,7 @@ static const struct gdi_dc_funcs freetype_funcs =
NULL
,
/* pGetDeviceCaps */
NULL
,
/* pGetDeviceGammaRamp */
freetype_GetFontData
,
/* pGetFontData */
freetype_GetFontRealizationInfo
,
/* pGetFontRealizationInfo */
freetype_GetFontUnicodeRanges
,
/* pGetFontUnicodeRanges */
freetype_GetGlyphIndices
,
/* pGetGlyphIndices */
freetype_GetGlyphOutline
,
/* pGetGlyphOutline */
...
...
dlls/gdi32/gdi32.spec
View file @
7889b174
...
...
@@ -280,6 +280,7 @@
# @ stub GetFontAssocStatus
@ stdcall GetFontData(long long long ptr long)
@ stdcall GetFontLanguageInfo(long)
@ stdcall GetFontRealizationInfo(long ptr)
@ stub GetFontResourceInfo
@ stdcall GetFontResourceInfoW(wstr ptr ptr long)
@ stdcall GetFontUnicodeRanges(ptr ptr)
...
...
dlls/gdi32/gdi_private.h
View file @
7889b174
...
...
@@ -276,14 +276,16 @@ extern HENHMETAFILE EMF_Create_HENHMETAFILE(ENHMETAHEADER *emh, BOOL on_disk ) D
/* freetype.c */
/* Undocumented structure filled in by G
di
RealizationInfo */
typedef
struct
/* Undocumented structure filled in by G
etFont
RealizationInfo */
struct
font_realization_info
{
DWORD
size
;
/* could be 16 or 24 */
DWORD
flags
;
/* 1 for bitmap fonts, 3 for scalable fonts */
DWORD
cache_num
;
/* keeps incrementing - num of fonts that have been created allowing for caching?? */
DWORD
instance_id
;
/* identifies a realized font instance */
}
realization_info_t
;
DWORD
unk
;
/* unknown */
DWORD
face_index
;
/* face index in case of font collections */
};
extern
INT
WineEngAddFontResourceEx
(
LPCWSTR
,
DWORD
,
PVOID
)
DECLSPEC_HIDDEN
;
extern
HANDLE
WineEngAddFontMemResourceEx
(
PVOID
,
DWORD
,
PVOID
,
LPDWORD
)
DECLSPEC_HIDDEN
;
...
...
dlls/gdi32/mfdrv/init.c
View file @
7889b174
...
...
@@ -132,7 +132,6 @@ static const struct gdi_dc_funcs MFDRV_Funcs =
NULL
,
/* pFontIsLinked */
MFDRV_FrameRgn
,
/* pFrameRgn */
NULL
,
/* pGdiComment */
NULL
,
/* pGdiRealizationInfo */
MFDRV_GetBoundsRect
,
/* pGetBoundsRect */
NULL
,
/* pGetCharABCWidths */
NULL
,
/* pGetCharABCWidthsI */
...
...
@@ -140,6 +139,7 @@ static const struct gdi_dc_funcs MFDRV_Funcs =
MFDRV_GetDeviceCaps
,
/* pGetDeviceCaps */
NULL
,
/* pGetDeviceGammaRamp */
NULL
,
/* pGetFontData */
NULL
,
/* pGetFontRealizationInfo */
NULL
,
/* pGetFontUnicodeRanges */
NULL
,
/* pGetGlyphIndices */
NULL
,
/* pGetGlyphOutline */
...
...
dlls/gdi32/path.c
View file @
7889b174
...
...
@@ -2251,7 +2251,6 @@ const struct gdi_dc_funcs path_driver =
NULL
,
/* pFontIsLinked */
NULL
,
/* pFrameRgn */
NULL
,
/* pGdiComment */
NULL
,
/* pGdiRealizationInfo */
NULL
,
/* pGetBoundsRect */
NULL
,
/* pGetCharABCWidths */
NULL
,
/* pGetCharABCWidthsI */
...
...
@@ -2259,6 +2258,7 @@ const struct gdi_dc_funcs path_driver =
NULL
,
/* pGetDeviceCaps */
NULL
,
/* pGetDeviceGammaRamp */
NULL
,
/* pGetFontData */
NULL
,
/* pGetFontRealizationInfo */
NULL
,
/* pGetFontUnicodeRanges */
NULL
,
/* pGetGlyphIndices */
NULL
,
/* pGetGlyphOutline */
...
...
dlls/gdi32/tests/font.c
View file @
7889b174
...
...
@@ -4222,6 +4222,7 @@ static void test_RealizationInfo(void)
ok
(
info2
[
6
]
==
0xcccccccc
,
"structure longer than 6 dwords
\n
"
);
/* Test GetFontFileInfo() */
if
(
pGetFontFileInfo
)
{
r
=
pGetFontFileInfo
(
fri
->
instance_id
,
0
,
&
file_info
,
sizeof
(
file_info
),
&
needed
);
ok
(
r
!=
0
||
GetLastError
()
==
ERROR_NOACCESS
,
"ret %d gle %d
\n
"
,
r
,
GetLastError
());
...
...
@@ -4250,6 +4251,7 @@ static void test_RealizationInfo(void)
else
win_skip
(
"GetFontFileInfo() failed, skipping
\n
"
);
}
}
DeleteObject
(
SelectObject
(
hdc
,
hfont_old
));
...
...
dlls/winemac.drv/gdi.c
View file @
7889b174
...
...
@@ -444,7 +444,6 @@ static const struct gdi_dc_funcs macdrv_funcs =
NULL
,
/* pFontIsLinked */
NULL
,
/* pFrameRgn */
NULL
,
/* pGdiComment */
NULL
,
/* pGdiRealizationInfo */
NULL
,
/* pGetBoundsRect */
NULL
,
/* pGetCharABCWidths */
NULL
,
/* pGetCharABCWidthsI */
...
...
@@ -452,6 +451,7 @@ static const struct gdi_dc_funcs macdrv_funcs =
macdrv_GetDeviceCaps
,
/* pGetDeviceCaps */
macdrv_GetDeviceGammaRamp
,
/* pGetDeviceGammaRamp */
NULL
,
/* pGetFontData */
NULL
,
/* pGetFontRealizationInfo */
NULL
,
/* pGetFontUnicodeRanges */
NULL
,
/* pGetGlyphIndices */
NULL
,
/* pGetGlyphOutline */
...
...
dlls/wineps.drv/init.c
View file @
7889b174
...
...
@@ -856,7 +856,6 @@ static const struct gdi_dc_funcs psdrv_funcs =
NULL
,
/* pFontIsLinked */
NULL
,
/* pFrameRgn */
NULL
,
/* pGdiComment */
NULL
,
/* pGdiRealizationInfo */
NULL
,
/* pGetBoundsRect */
NULL
,
/* pGetCharABCWidths */
NULL
,
/* pGetCharABCWidthsI */
...
...
@@ -864,6 +863,7 @@ static const struct gdi_dc_funcs psdrv_funcs =
PSDRV_GetDeviceCaps
,
/* pGetDeviceCaps */
NULL
,
/* pGetDeviceGammaRamp */
NULL
,
/* pGetFontData */
NULL
,
/* pGetFontRealizationInfo */
NULL
,
/* pGetFontUnicodeRanges */
NULL
,
/* pGetGlyphIndices */
NULL
,
/* pGetGlyphOutline */
...
...
dlls/winex11.drv/init.c
View file @
7889b174
...
...
@@ -500,7 +500,6 @@ static const struct gdi_dc_funcs x11drv_funcs =
NULL
,
/* pFontIsLinked */
NULL
,
/* pFrameRgn */
NULL
,
/* pGdiComment */
NULL
,
/* pGdiRealizationInfo */
NULL
,
/* pGetBoundsRect */
NULL
,
/* pGetCharABCWidths */
NULL
,
/* pGetCharABCWidthsI */
...
...
@@ -508,6 +507,7 @@ static const struct gdi_dc_funcs x11drv_funcs =
X11DRV_GetDeviceCaps
,
/* pGetDeviceCaps */
X11DRV_GetDeviceGammaRamp
,
/* pGetDeviceGammaRamp */
NULL
,
/* pGetFontData */
NULL
,
/* pGetFontRealizationInfo */
NULL
,
/* pGetFontUnicodeRanges */
NULL
,
/* pGetGlyphIndices */
NULL
,
/* pGetGlyphOutline */
...
...
dlls/winex11.drv/xrender.c
View file @
7889b174
...
...
@@ -2181,7 +2181,6 @@ static const struct gdi_dc_funcs xrender_funcs =
NULL
,
/* pFontIsLinked */
NULL
,
/* pFrameRgn */
NULL
,
/* pGdiComment */
NULL
,
/* pGdiRealizationInfo */
NULL
,
/* pGetBoundsRect */
NULL
,
/* pGetCharABCWidths */
NULL
,
/* pGetCharABCWidthsI */
...
...
@@ -2189,6 +2188,7 @@ static const struct gdi_dc_funcs xrender_funcs =
NULL
,
/* pGetDeviceCaps */
NULL
,
/* pGetDeviceGammaRamp */
NULL
,
/* pGetFontData */
NULL
,
/* pGetFontRealizationInfo */
NULL
,
/* pGetFontUnicodeRanges */
NULL
,
/* pGetGlyphIndices */
NULL
,
/* pGetGlyphOutline */
...
...
include/wine/gdi_driver.h
View file @
7889b174
...
...
@@ -97,7 +97,6 @@ struct gdi_dc_funcs
BOOL
(
*
pFontIsLinked
)(
PHYSDEV
);
BOOL
(
*
pFrameRgn
)(
PHYSDEV
,
HRGN
,
HBRUSH
,
INT
,
INT
);
BOOL
(
*
pGdiComment
)(
PHYSDEV
,
UINT
,
const
BYTE
*
);
BOOL
(
*
pGdiRealizationInfo
)(
PHYSDEV
,
void
*
);
UINT
(
*
pGetBoundsRect
)(
PHYSDEV
,
RECT
*
,
UINT
);
BOOL
(
*
pGetCharABCWidths
)(
PHYSDEV
,
UINT
,
UINT
,
LPABC
);
BOOL
(
*
pGetCharABCWidthsI
)(
PHYSDEV
,
UINT
,
UINT
,
WORD
*
,
LPABC
);
...
...
@@ -105,6 +104,7 @@ struct gdi_dc_funcs
INT
(
*
pGetDeviceCaps
)(
PHYSDEV
,
INT
);
BOOL
(
*
pGetDeviceGammaRamp
)(
PHYSDEV
,
LPVOID
);
DWORD
(
*
pGetFontData
)(
PHYSDEV
,
DWORD
,
DWORD
,
LPVOID
,
DWORD
);
BOOL
(
*
pGetFontRealizationInfo
)(
PHYSDEV
,
void
*
);
DWORD
(
*
pGetFontUnicodeRanges
)(
PHYSDEV
,
LPGLYPHSET
);
DWORD
(
*
pGetGlyphIndices
)(
PHYSDEV
,
LPCWSTR
,
INT
,
LPWORD
,
DWORD
);
DWORD
(
*
pGetGlyphOutline
)(
PHYSDEV
,
UINT
,
UINT
,
LPGLYPHMETRICS
,
DWORD
,
LPVOID
,
const
MAT2
*
);
...
...
@@ -197,7 +197,7 @@ struct gdi_dc_funcs
};
/* increment this when you change the DC function table */
#define WINE_GDI_DRIVER_VERSION 4
6
#define WINE_GDI_DRIVER_VERSION 4
7
#define GDI_PRIORITY_NULL_DRV 0
/* null driver */
#define GDI_PRIORITY_FONT_DRV 100
/* any font driver */
...
...
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