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
830801d5
Commit
830801d5
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 IVMRWindowlessControl on the VMR7 presenter.
Rewrite needs this.
parent
7b751a9f
Hide whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
152 additions
and
0 deletions
+152
-0
vmr7_presenter.c
dlls/quartz/vmr7_presenter.c
+152
-0
No files found.
dlls/quartz/vmr7_presenter.c
View file @
830801d5
...
...
@@ -28,6 +28,7 @@ struct vmr7_presenter
{
IVMRImagePresenter
IVMRImagePresenter_iface
;
IVMRSurfaceAllocator
IVMRSurfaceAllocator_iface
;
IVMRWindowlessControl
IVMRWindowlessControl_iface
;
LONG
refcount
;
};
...
...
@@ -46,6 +47,8 @@ static HRESULT WINAPI image_presenter_QueryInterface(IVMRImagePresenter *iface,
*
out
=
iface
;
else
if
(
IsEqualGUID
(
iid
,
&
IID_IVMRSurfaceAllocator
))
*
out
=
&
presenter
->
IVMRSurfaceAllocator_iface
;
else
if
(
IsEqualGUID
(
iid
,
&
IID_IVMRWindowlessControl
))
*
out
=
&
presenter
->
IVMRWindowlessControl_iface
;
else
{
*
out
=
NULL
;
...
...
@@ -170,6 +173,154 @@ static const IVMRSurfaceAllocatorVtbl surface_allocator_vtbl =
surface_allocator_AdviseNotify
,
};
static
struct
vmr7_presenter
*
impl_from_IVMRWindowlessControl
(
IVMRWindowlessControl
*
iface
)
{
return
CONTAINING_RECORD
(
iface
,
struct
vmr7_presenter
,
IVMRWindowlessControl_iface
);
}
static
HRESULT
WINAPI
windowless_control_QueryInterface
(
IVMRWindowlessControl
*
iface
,
REFIID
iid
,
void
**
out
)
{
struct
vmr7_presenter
*
presenter
=
impl_from_IVMRWindowlessControl
(
iface
);
return
IVMRImagePresenter_QueryInterface
(
&
presenter
->
IVMRImagePresenter_iface
,
iid
,
out
);
}
static
ULONG
WINAPI
windowless_control_AddRef
(
IVMRWindowlessControl
*
iface
)
{
struct
vmr7_presenter
*
presenter
=
impl_from_IVMRWindowlessControl
(
iface
);
return
IVMRImagePresenter_AddRef
(
&
presenter
->
IVMRImagePresenter_iface
);
}
static
ULONG
WINAPI
windowless_control_Release
(
IVMRWindowlessControl
*
iface
)
{
struct
vmr7_presenter
*
presenter
=
impl_from_IVMRWindowlessControl
(
iface
);
return
IVMRImagePresenter_Release
(
&
presenter
->
IVMRImagePresenter_iface
);
}
static
HRESULT
WINAPI
windowless_control_GetNativeVideoSize
(
IVMRWindowlessControl
*
iface
,
LONG
*
width
,
LONG
*
height
,
LONG
*
aspect_width
,
LONG
*
aspect_height
)
{
FIXME
(
"iface %p, width %p, height %p, aspect_width %p, aspect_height %p.
\n
"
,
iface
,
width
,
height
,
aspect_width
,
aspect_height
);
return
E_NOTIMPL
;
}
static
HRESULT
WINAPI
windowless_control_GetMinIdealVideoSize
(
IVMRWindowlessControl
*
iface
,
LONG
*
width
,
LONG
*
height
)
{
FIXME
(
"iface %p, width %p, height %p, stub!
\n
"
,
iface
,
width
,
height
);
return
E_NOTIMPL
;
}
static
HRESULT
WINAPI
windowless_control_GetMaxIdealVideoSize
(
IVMRWindowlessControl
*
iface
,
LONG
*
width
,
LONG
*
height
)
{
FIXME
(
"iface %p, width %p, height %p, stub!
\n
"
,
iface
,
width
,
height
);
return
E_NOTIMPL
;
}
static
HRESULT
WINAPI
windowless_control_SetVideoPosition
(
IVMRWindowlessControl
*
iface
,
const
RECT
*
source
,
const
RECT
*
dest
)
{
FIXME
(
"iface %p, source %s, dest %s, stub!.
\n
"
,
iface
,
wine_dbgstr_rect
(
source
),
wine_dbgstr_rect
(
dest
));
return
E_NOTIMPL
;
}
static
HRESULT
WINAPI
windowless_control_GetVideoPosition
(
IVMRWindowlessControl
*
iface
,
RECT
*
source
,
RECT
*
dest
)
{
FIXME
(
"iface %p, source %p, dest %p.
\n
"
,
iface
,
source
,
dest
);
return
E_NOTIMPL
;
}
static
HRESULT
WINAPI
windowless_control_GetAspectRatioMode
(
IVMRWindowlessControl
*
iface
,
DWORD
*
mode
)
{
FIXME
(
"iface %p, mode %p, stub!
\n
"
,
iface
,
mode
);
return
E_NOTIMPL
;
}
static
HRESULT
WINAPI
windowless_control_SetAspectRatioMode
(
IVMRWindowlessControl
*
iface
,
DWORD
mode
)
{
FIXME
(
"iface %p, mode %#lx, stub!
\n
"
,
iface
,
mode
);
return
E_NOTIMPL
;
}
static
HRESULT
WINAPI
windowless_control_SetVideoClippingWindow
(
IVMRWindowlessControl
*
iface
,
HWND
window
)
{
FIXME
(
"iface %p, window %p, stub!.
\n
"
,
iface
,
window
);
return
E_NOTIMPL
;
}
static
HRESULT
WINAPI
windowless_control_RepaintVideo
(
IVMRWindowlessControl
*
iface
,
HWND
window
,
HDC
dc
)
{
FIXME
(
"iface %p, window %p, dc %p, stub!
\n
"
,
iface
,
window
,
dc
);
return
E_NOTIMPL
;
}
static
HRESULT
WINAPI
windowless_control_DisplayModeChanged
(
IVMRWindowlessControl
*
iface
)
{
FIXME
(
"iface %p, stub!
\n
"
,
iface
);
return
E_NOTIMPL
;
}
static
HRESULT
WINAPI
windowless_control_GetCurrentImage
(
IVMRWindowlessControl
*
iface
,
BYTE
**
image
)
{
FIXME
(
"iface %p, image %p, stub!
\n
"
,
iface
,
image
);
return
E_NOTIMPL
;
}
static
HRESULT
WINAPI
windowless_control_SetBorderColor
(
IVMRWindowlessControl
*
iface
,
COLORREF
color
)
{
FIXME
(
"iface %p, color %#08lx, stub!
\n
"
,
iface
,
color
);
return
E_NOTIMPL
;
}
static
HRESULT
WINAPI
windowless_control_GetBorderColor
(
IVMRWindowlessControl
*
iface
,
COLORREF
*
color
)
{
FIXME
(
"iface %p, color %p, stub!
\n
"
,
iface
,
color
);
return
E_NOTIMPL
;
}
static
HRESULT
WINAPI
windowless_control_SetColorKey
(
IVMRWindowlessControl
*
iface
,
COLORREF
color
)
{
FIXME
(
"iface %p, color %#08lx, stub!
\n
"
,
iface
,
color
);
return
E_NOTIMPL
;
}
static
HRESULT
WINAPI
windowless_control_GetColorKey
(
IVMRWindowlessControl
*
iface
,
COLORREF
*
color
)
{
FIXME
(
"iface %p, color %p, stub!
\n
"
,
iface
,
color
);
return
E_NOTIMPL
;
}
static
const
IVMRWindowlessControlVtbl
windowless_control_vtbl
=
{
windowless_control_QueryInterface
,
windowless_control_AddRef
,
windowless_control_Release
,
windowless_control_GetNativeVideoSize
,
windowless_control_GetMinIdealVideoSize
,
windowless_control_GetMaxIdealVideoSize
,
windowless_control_SetVideoPosition
,
windowless_control_GetVideoPosition
,
windowless_control_GetAspectRatioMode
,
windowless_control_SetAspectRatioMode
,
windowless_control_SetVideoClippingWindow
,
windowless_control_RepaintVideo
,
windowless_control_DisplayModeChanged
,
windowless_control_GetCurrentImage
,
windowless_control_SetBorderColor
,
windowless_control_GetBorderColor
,
windowless_control_SetColorKey
,
windowless_control_GetColorKey
,
};
HRESULT
vmr7_presenter_create
(
IUnknown
*
outer
,
IUnknown
**
out
)
{
struct
vmr7_presenter
*
object
;
...
...
@@ -183,6 +334,7 @@ HRESULT vmr7_presenter_create(IUnknown *outer, IUnknown **out)
return
E_OUTOFMEMORY
;
object
->
IVMRImagePresenter_iface
.
lpVtbl
=
&
image_presenter_vtbl
;
object
->
IVMRSurfaceAllocator_iface
.
lpVtbl
=
&
surface_allocator_vtbl
;
object
->
IVMRWindowlessControl_iface
.
lpVtbl
=
&
windowless_control_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