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
7b751a9f
Commit
7b751a9f
authored
Dec 07, 2023
by
Zebediah Figura
Committed by
Alexandre Julliard
Dec 07, 2023
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
quartz: Stub IVMRSurfaceAllocator on the VMR7 presenter.
parent
cf44bec5
Hide whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
68 additions
and
0 deletions
+68
-0
vmr7_presenter.c
dlls/quartz/vmr7_presenter.c
+68
-0
No files found.
dlls/quartz/vmr7_presenter.c
View file @
7b751a9f
...
...
@@ -27,6 +27,7 @@ WINE_DEFAULT_DEBUG_CHANNEL(quartz);
struct
vmr7_presenter
{
IVMRImagePresenter
IVMRImagePresenter_iface
;
IVMRSurfaceAllocator
IVMRSurfaceAllocator_iface
;
LONG
refcount
;
};
...
...
@@ -43,6 +44,8 @@ static HRESULT WINAPI image_presenter_QueryInterface(IVMRImagePresenter *iface,
if
(
IsEqualGUID
(
iid
,
&
IID_IUnknown
)
||
IsEqualGUID
(
iid
,
&
IID_IVMRImagePresenter
))
*
out
=
iface
;
else
if
(
IsEqualGUID
(
iid
,
&
IID_IVMRSurfaceAllocator
))
*
out
=
&
presenter
->
IVMRSurfaceAllocator_iface
;
else
{
*
out
=
NULL
;
...
...
@@ -103,6 +106,70 @@ static const IVMRImagePresenterVtbl image_presenter_vtbl =
image_presenter_PresentImage
,
};
static
struct
vmr7_presenter
*
impl_from_IVMRSurfaceAllocator
(
IVMRSurfaceAllocator
*
iface
)
{
return
CONTAINING_RECORD
(
iface
,
struct
vmr7_presenter
,
IVMRSurfaceAllocator_iface
);
}
static
HRESULT
WINAPI
surface_allocator_QueryInterface
(
IVMRSurfaceAllocator
*
iface
,
REFIID
iid
,
void
**
out
)
{
struct
vmr7_presenter
*
presenter
=
impl_from_IVMRSurfaceAllocator
(
iface
);
return
IVMRImagePresenter_QueryInterface
(
&
presenter
->
IVMRImagePresenter_iface
,
iid
,
out
);
}
static
ULONG
WINAPI
surface_allocator_AddRef
(
IVMRSurfaceAllocator
*
iface
)
{
struct
vmr7_presenter
*
presenter
=
impl_from_IVMRSurfaceAllocator
(
iface
);
return
IVMRImagePresenter_AddRef
(
&
presenter
->
IVMRImagePresenter_iface
);
}
static
ULONG
WINAPI
surface_allocator_Release
(
IVMRSurfaceAllocator
*
iface
)
{
struct
vmr7_presenter
*
presenter
=
impl_from_IVMRSurfaceAllocator
(
iface
);
return
IVMRImagePresenter_Release
(
&
presenter
->
IVMRImagePresenter_iface
);
}
static
HRESULT
WINAPI
surface_allocator_AllocateSurface
(
IVMRSurfaceAllocator
*
iface
,
DWORD_PTR
id
,
VMRALLOCATIONINFO
*
info
,
DWORD
*
count
,
IDirectDrawSurface7
**
surfaces
)
{
FIXME
(
"iface %p, id %#Ix, info %p, count %p, surfaces %p, stub!
\n
"
,
iface
,
id
,
info
,
count
,
surfaces
);
return
E_NOTIMPL
;
}
static
HRESULT
WINAPI
surface_allocator_FreeSurface
(
IVMRSurfaceAllocator
*
iface
,
DWORD_PTR
id
)
{
FIXME
(
"iface %p, id %#Ix, stub!
\n
"
,
iface
,
id
);
return
E_NOTIMPL
;
}
static
HRESULT
WINAPI
surface_allocator_PrepareSurface
(
IVMRSurfaceAllocator
*
iface
,
DWORD_PTR
id
,
IDirectDrawSurface7
*
surface
,
DWORD
flags
)
{
FIXME
(
"iface %p, id %#Ix, surface %p, flags %#lx, stub!
\n
"
,
iface
,
id
,
surface
,
flags
);
return
E_NOTIMPL
;
}
static
HRESULT
WINAPI
surface_allocator_AdviseNotify
(
IVMRSurfaceAllocator
*
iface
,
IVMRSurfaceAllocatorNotify
*
notify
)
{
FIXME
(
"iface %p, notify %p, stub!
\n
"
,
iface
,
notify
);
return
S_OK
;
}
static
const
IVMRSurfaceAllocatorVtbl
surface_allocator_vtbl
=
{
surface_allocator_QueryInterface
,
surface_allocator_AddRef
,
surface_allocator_Release
,
surface_allocator_AllocateSurface
,
surface_allocator_FreeSurface
,
surface_allocator_PrepareSurface
,
surface_allocator_AdviseNotify
,
};
HRESULT
vmr7_presenter_create
(
IUnknown
*
outer
,
IUnknown
**
out
)
{
struct
vmr7_presenter
*
object
;
...
...
@@ -115,6 +182,7 @@ HRESULT vmr7_presenter_create(IUnknown *outer, IUnknown **out)
if
(
!
(
object
=
calloc
(
1
,
sizeof
(
*
object
))))
return
E_OUTOFMEMORY
;
object
->
IVMRImagePresenter_iface
.
lpVtbl
=
&
image_presenter_vtbl
;
object
->
IVMRSurfaceAllocator_iface
.
lpVtbl
=
&
surface_allocator_vtbl
;
object
->
refcount
=
1
;
TRACE
(
"Created VMR7 default presenter %p.
\n
"
,
object
);
...
...
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