Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
W
wine-cw
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-cw
Commits
6dd9cdca
Commit
6dd9cdca
authored
Sep 08, 2015
by
Nikolay Sivov
Committed by
Alexandre Julliard
Sep 08, 2015
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
dwrite: Return stub IDWriteFontList from GetMatchingFonts().
parent
a0da827d
Hide whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
102 additions
and
3 deletions
+102
-3
font.c
dlls/dwrite/font.c
+102
-3
No files found.
dlls/dwrite/font.c
View file @
6dd9cdca
...
...
@@ -94,6 +94,11 @@ struct dwrite_font_data {
BOOL
oblique_sim_tested
:
1
;
};
struct
dwrite_fontlist
{
IDWriteFontList
IDWriteFontList_iface
;
LONG
ref
;
};
struct
dwrite_fontfamily_data
{
LONG
ref
;
...
...
@@ -241,6 +246,11 @@ static inline struct dwrite_colorglyphenum *impl_from_IDWriteColorGlyphRunEnumer
return
CONTAINING_RECORD
(
iface
,
struct
dwrite_colorglyphenum
,
IDWriteColorGlyphRunEnumerator_iface
);
}
static
inline
struct
dwrite_fontlist
*
impl_from_IDWriteFontList
(
IDWriteFontList
*
iface
)
{
return
CONTAINING_RECORD
(
iface
,
struct
dwrite_fontlist
,
IDWriteFontList_iface
);
}
static
inline
const
char
*
debugstr_tag
(
UINT32
tag
)
{
return
wine_dbg_sprintf
(
"%c%c%c%c"
,
tag
&
0xff
,
(
tag
>>
8
)
&
0xff
,
(
tag
>>
16
)
&
0xff
,
tag
>>
24
);
...
...
@@ -1447,6 +1457,83 @@ static HRESULT create_font(struct dwrite_font_data *data, IDWriteFontFamily *fam
return
S_OK
;
}
/* IDWriteFontList */
static
HRESULT
WINAPI
dwritefontlist_QueryInterface
(
IDWriteFontList
*
iface
,
REFIID
riid
,
void
**
obj
)
{
struct
dwrite_fontlist
*
This
=
impl_from_IDWriteFontList
(
iface
);
TRACE
(
"(%p)->(%s %p)
\n
"
,
This
,
debugstr_guid
(
riid
),
obj
);
if
(
IsEqualIID
(
riid
,
&
IID_IDWriteFontList
)
||
IsEqualIID
(
riid
,
&
IID_IUnknown
))
{
*
obj
=
iface
;
IDWriteFontList_AddRef
(
iface
);
return
S_OK
;
}
*
obj
=
NULL
;
return
E_NOINTERFACE
;
}
static
ULONG
WINAPI
dwritefontlist_AddRef
(
IDWriteFontList
*
iface
)
{
struct
dwrite_fontlist
*
This
=
impl_from_IDWriteFontList
(
iface
);
ULONG
ref
=
InterlockedIncrement
(
&
This
->
ref
);
TRACE
(
"(%p)->(%d)
\n
"
,
This
,
ref
);
return
ref
;
}
static
ULONG
WINAPI
dwritefontlist_Release
(
IDWriteFontList
*
iface
)
{
struct
dwrite_fontlist
*
This
=
impl_from_IDWriteFontList
(
iface
);
ULONG
ref
=
InterlockedDecrement
(
&
This
->
ref
);
TRACE
(
"(%p)->(%d)
\n
"
,
This
,
ref
);
if
(
!
ref
)
{
heap_free
(
This
);
}
return
ref
;
}
static
HRESULT
WINAPI
dwritefontlist_GetFontCollection
(
IDWriteFontList
*
iface
,
IDWriteFontCollection
**
collection
)
{
struct
dwrite_fontlist
*
This
=
impl_from_IDWriteFontList
(
iface
);
FIXME
(
"(%p)->(%p): stub
\n
"
,
This
,
collection
);
return
E_NOTIMPL
;
}
static
UINT32
WINAPI
dwritefontlist_GetFontCount
(
IDWriteFontList
*
iface
)
{
struct
dwrite_fontlist
*
This
=
impl_from_IDWriteFontList
(
iface
);
FIXME
(
"(%p): stub
\n
"
,
This
);
return
0
;
}
static
HRESULT
WINAPI
dwritefontlist_GetFont
(
IDWriteFontList
*
iface
,
UINT32
index
,
IDWriteFont
**
font
)
{
struct
dwrite_fontlist
*
This
=
impl_from_IDWriteFontList
(
iface
);
FIXME
(
"(%p)->(%u %p): stub
\n
"
,
This
,
index
,
font
);
*
font
=
NULL
;
return
E_NOTIMPL
;
}
static
const
IDWriteFontListVtbl
dwritefontlistvtbl
=
{
dwritefontlist_QueryInterface
,
dwritefontlist_AddRef
,
dwritefontlist_Release
,
dwritefontlist_GetFontCollection
,
dwritefontlist_GetFontCount
,
dwritefontlist_GetFont
};
static
HRESULT
WINAPI
dwritefontfamily_QueryInterface
(
IDWriteFontFamily
*
iface
,
REFIID
riid
,
void
**
obj
)
{
struct
dwrite_fontfamily
*
This
=
impl_from_IDWriteFontFamily
(
iface
);
...
...
@@ -1598,11 +1685,23 @@ static HRESULT WINAPI dwritefontfamily_GetFirstMatchingFont(IDWriteFontFamily *i
}
static
HRESULT
WINAPI
dwritefontfamily_GetMatchingFonts
(
IDWriteFontFamily
*
iface
,
DWRITE_FONT_WEIGHT
weight
,
DWRITE_FONT_STRETCH
stretch
,
DWRITE_FONT_STYLE
style
,
IDWriteFontList
**
fonts
)
DWRITE_FONT_STRETCH
stretch
,
DWRITE_FONT_STYLE
style
,
IDWriteFontList
**
ret
)
{
struct
dwrite_fontfamily
*
This
=
impl_from_IDWriteFontFamily
(
iface
);
FIXME
(
"(%p)->(%d %d %d %p): stub
\n
"
,
This
,
weight
,
stretch
,
style
,
fonts
);
return
E_NOTIMPL
;
struct
dwrite_fontlist
*
fonts
;
TRACE
(
"(%p)->(%d %d %d %p)
\n
"
,
This
,
weight
,
stretch
,
style
,
ret
);
*
ret
=
NULL
;
fonts
=
heap_alloc
(
sizeof
(
*
fonts
));
if
(
!
fonts
)
return
E_OUTOFMEMORY
;
fonts
->
IDWriteFontList_iface
.
lpVtbl
=
&
dwritefontlistvtbl
;
fonts
->
ref
=
1
;
*
ret
=
&
fonts
->
IDWriteFontList_iface
;
return
S_OK
;
}
static
const
IDWriteFontFamilyVtbl
fontfamilyvtbl
=
{
...
...
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