Commit Graph

176 Commits

Author SHA1 Message Date
Gijs Vermeulen a6d1ee860c quartz/vmr9: Don't expose IVMRMonitorConfig from the VMR9.
Signed-off-by: Gijs Vermeulen <gijsvrm@gmail.com>
Signed-off-by: Zebediah Figura <z.figura12@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-10-26 20:25:10 +01:00
Gijs Vermeulen 80fa0b93a6 quartz/vmr9: Don't expose IVMRFilterConfig from the VMR9.
Signed-off-by: Gijs Vermeulen <gijsvrm@gmail.com>
Signed-off-by: Zebediah Figura <z.figura12@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-10-26 20:25:08 +01:00
Gijs Vermeulen f708161a47 quartz/vmr9: Don't expose IVMRMonitorConfig9 in renderless mode.
Signed-off-by: Gijs Vermeulen <gijsvrm@gmail.com>
Signed-off-by: Zebediah Figura <z.figura12@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-10-26 20:25:06 +01:00
Gijs Vermeulen ef8acacaef quartz/vmr9: Don't expose IVMRMonitorConfig9 from the VMR7.
Signed-off-by: Gijs Vermeulen <gijsvrm@gmail.com>
Signed-off-by: Zebediah Figura <z.figura12@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-10-26 20:25:01 +01:00
Gijs Vermeulen 08166d7a2d quartz/vmr9: Don't expose IVMRFilterConfig9 from the VMR7.
Signed-off-by: Gijs Vermeulen <gijsvrm@gmail.com>
Signed-off-by: Zebediah Figura <z.figura12@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-10-26 20:24:59 +01:00
Zebediah Figura f4d66140ad quartz/vmr9: Avoid leaking the presenter's reference to the d3d9 device.
Signed-off-by: Zebediah Figura <z.figura12@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-08-31 22:07:31 +02:00
Zebediah Figura 1ce2cae3e9 quartz/vmr9: Allow AdviseSurfaceAllocator() to be called multiple times.
Wine-Bug: https://bugs.winehq.org/show_bug.cgi?id=47161
Signed-off-by: Zebediah Figura <z.figura12@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-07-24 18:26:18 +02:00
Zebediah Figura 7f0347bb04 quartz/vmr9: Return E_INVALIDARG if both texture and offscreen flags are passed to AllocateSurfaceHelper().
Signed-off-by: Zebediah Figura <z.figura12@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-07-22 12:11:31 +02:00
Zebediah Figura d3ef27f756 quartz/vmr9: Signal state change completion only after PresentImage() has been called.
Signed-off-by: Zebediah Figura <z.figura12@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-07-21 15:16:17 +02:00
Zebediah Figura b9063c4b7e quartz/vmr9: Render preroll samples.
The documentation specifies that preroll samples shouldn't be rendered, but
the VMR9 renders them anyway.

Signed-off-by: Zebediah Figura <z.figura12@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-07-20 20:17:17 +02:00
Zebediah Figura 44c0e69137 quartz/vmr9: Auto-show the window when pausing, not when running.
Signed-off-by: Zebediah Figura <z.figura12@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-07-14 09:39:30 +02:00
Zebediah Figura 4d580796bc quartz/vmr9: Show the window only if auto-show is enabled.
Signed-off-by: Zebediah Figura <z.figura12@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-07-14 09:39:28 +02:00
Zebediah Figura 90f8a1b876 quartz/vmr9: Set the destination rect to the whole client area when connecting.
Signed-off-by: Zebediah Figura <z.figura12@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-06-26 21:00:17 +02:00
Zebediah Figura 8fcdca9dd5 quartz/vmr9: Support YUV formats in the VMR7.
Signed-off-by: Zebediah Figura <z.figura12@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-06-25 09:51:04 +02:00
Zebediah Figura 7595461f77 quartz/vmr9: Return VFW_E_TYPE_NOT_ACCEPTED when connection fails.
Signed-off-by: Zebediah Figura <z.figura12@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-06-25 09:51:00 +02:00
Zebediah Figura 6e8b2dcc26 quartz/vmr9: Remove support for 16-bit RGB from the VMR7.
Signed-off-by: Zebediah Figura <z.figura12@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-06-23 10:11:51 +02:00
Zebediah Figura 530cb0da4d quartz/vmr9: Remove support for 15-bit RGB from the VMR7.
This was never correct; 15-bit RGB has a biBitCount of 16.

Signed-off-by: Zebediah Figura <z.figura12@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-06-23 10:11:48 +02:00
Zebediah Figura ceceba2ec2 quartz/vmr9: Remove support for 8-bit RGB from the VMR7.
This was never correct; 8-bit RGB is always palettized.

Signed-off-by: Zebediah Figura <z.figura12@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-06-23 10:11:45 +02:00
Zebediah Figura 339dbc586a quartz/vmr9: Allow connecting with YUV formats.
Signed-off-by: Zebediah Figura <z.figura12@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-06-20 14:40:57 +02:00
Zebediah Figura 4eb58312d6 quartz/vmr9: Avoid leaking the surface array on connection failure.
Signed-off-by: Zebediah Figura <z.figura12@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-06-20 14:40:57 +02:00
Zebediah Figura c4f92087af quartz/vmr9: Invert only RGB video.
Signed-off-by: Zebediah Figura <z.figura12@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-06-20 14:40:57 +02:00
Zebediah Figura 46a6dd0824 quartz/vmr9: The source pitch is the width of the Y plane for planar 4:2:0 formats.
Signed-off-by: Zebediah Figura <z.figura12@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-06-20 14:40:57 +02:00
Zebediah Figura d417802015 quartz/vmr9: Align the source pitch to a multiple of 4.
Signed-off-by: Zebediah Figura <z.figura12@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-06-20 14:40:57 +02:00
Zebediah Figura 717784efc9 quartz/vmr9: Merge VMR9_SendSampleData() into VMR9_DoRenderSample().
Signed-off-by: Zebediah Figura <z.figura12@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-06-20 14:40:57 +02:00
Zebediah Figura 5444ce2f0d quartz/vmr9: Get rid of VMR9_ImagePresenter_PresentOffscreenSurface().
Signed-off-by: Zebediah Figura <z.figura12@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-06-14 19:35:20 +02:00
Zebediah Figura 408a3074c4 quartz/vmr9: Implement IVMRWindowlessControl9::SetAspectRatioMode().
Wine-Bug: https://bugs.winehq.org/show_bug.cgi?id=35215
Signed-off-by: Zebediah Figura <z.figura12@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-06-14 19:35:20 +02:00
Zebediah Figura 8dcd253e06 quartz/vmr9: Trace the arguments to IVMRWindowlessControl9::SetVideoPosition().
Signed-off-by: Zebediah Figura <z.figura12@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-06-14 19:35:20 +02:00
Zebediah Figura e48fabff52 quartz/vmr9: Trace argument values instead of omitting them.
Signed-off-by: Zebediah Figura <z.figura12@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-05-27 22:06:11 +02:00
Zebediah Figura c6abb3b241 quartz/vmr9: Get rid of CreateRenderingWindow().
Signed-off-by: Zebediah Figura <z.figura12@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-05-27 22:06:07 +02:00
Zebediah Figura 6ccbc0579d quartz/vmr9: Remove the unused "allocator_mon" field.
Signed-off-by: Zebediah Figura <z.figura12@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-05-27 22:06:01 +02:00
Zebediah Figura aa44879a09 quartz/vmr9: Don't expose IVMRSurfaceAllocatorEx9 from the default presenter.
Signed-off-by: Zebediah Figura <z.figura12@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-05-27 22:05:55 +02:00
Zebediah Figura 39489e4d01 quartz/vmr9: Don't query for IVMRSurfaceAllocatorEx9.
Signed-off-by: Zebediah Figura <z.figura12@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-05-27 22:05:51 +02:00
Zebediah Figura f020fe051b quartz/vmr9: Use TRACE for some implemented methods.
Signed-off-by: Zebediah Figura <z.figura12@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-05-27 22:05:46 +02:00
Zebediah Figura dc93d5f856 quartz/vmr9: Fake success from IVMRMixerConrol9::SetMixingPrefs().
Signed-off-by: Zebediah Figura <z.figura12@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-05-27 22:05:39 +02:00
Zebediah Figura 040227e5b3 quartz/vmr9: Allocate the surface array in allocate_surfaces().
Avoid allocating it twice if we try multiple formats.

Signed-off-by: Zebediah Figura <z.figura12@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-05-13 08:50:15 +02:00
Zebediah Figura e15c13c592 quartz/vmr9: Set the stream count to 4 in IVMRWindowlessControl9::SetVideoClippingWindow().
Signed-off-by: Zebediah Figura <z.figura12@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-05-13 08:50:15 +02:00
Zebediah Figura 5dbede68f8 quartz/vmr9: Add IVMRMixerControl9.
Needed by Sniper Fury and Modern Combat 5.

Signed-off-by: Zebediah Figura <z.figura12@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-05-13 08:50:15 +02:00
Zebediah Figura 2d77107823 quartz/vmr9: Implement IVMRFilterConfig9::GetNumberOfStreams().
Signed-off-by: Zebediah Figura <z.figura12@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-05-13 08:50:15 +02:00
Zebediah Figura 14decee4ca quartz/vmr9: Partially implement IVMRFilterConfig9::SetNumberOfStreams().
Devil May Cry 3 expects this to succeed, although it only uses one stream.

Signed-off-by: Zebediah Figura <z.figura12@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-05-13 08:50:15 +02:00
Zebediah Figura 32be179a96 quartz/vmr9: Check for D3DDEVCAPS2_CAN_STRETCHRECT_FROM_TEXTURES.
Signed-off-by: Zebediah Figura <z.figura12@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-05-12 23:07:44 +02:00
Zebediah Figura fa32c8e36d quartz/vmr9: Destroy the window when set to windowless or renderless mode.
Signed-off-by: Zebediah Figura <z.figura12@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-05-12 23:07:44 +02:00
Zebediah Figura 3c0b0cc834 quartz/vmr9: Render to the clipping window in windowless mode.
Signed-off-by: Zebediah Figura <z.figura12@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-05-12 23:07:44 +02:00
Zebediah Figura 93913d3a44 quartz/vmr9: Rename hWndClippingWindow to clipping_window.
Signed-off-by: Zebediah Figura <z.figura12@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-05-12 23:07:44 +02:00
Zebediah Figura 6502ac993d quartz/vmr9: Remove a redundant check from VMR9_SurfaceAllocator_InitializeDevice().
This check is already made in allocate_surfaces().

Signed-off-by: Zebediah Figura <z.figura12@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-05-12 23:07:44 +02:00
Zebediah Figura 45789e00da quartz/vmr9: Allow the aspect ratio parameters to be NULL in IVMRWindowlessControl9::GetNativeVideoSize().
Signed-off-by: Zebediah Figura <z.figura12@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-05-12 23:07:44 +02:00
Zebediah Figura c7c91b93ad quartz/vmr9: Perform image stretching in Present() instead of StretchRect().
This fixes resizing the window after connection time, especially when using a
custom destination rect.

Signed-off-by: Zebediah Figura <z.figura12@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-05-11 22:07:52 +02:00
Zebediah Figura b0c2e524dc quartz/vmr9: Get rid of VMR9_SurfaceAllocator_UpdateDeviceReset().
It's not clear that this ever did something useful, but at least since
d6a70366e this had the effect of always resetting immediately after creating
the device.

Signed-off-by: Zebediah Figura <z.figura12@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-05-11 22:07:52 +02:00
Zebediah Figura 848b85b657 quartz: Get rid of the texture drawing path.
StretchRect() should be good enough for presenting both kinds of surfaces.

Signed-off-by: Zebediah Figura <z.figura12@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-05-11 22:07:52 +02:00
Zebediah Figura 5f602b46f3 quartz: Set VMR9AllocationInfo dimension members to the video dimensions.
These will be identical to the source rect at connection time, but not
necessarily if we ever need to recreate the surfaces (due to a lost device, for
example), and we still want to use the source image dimensions in that case.

Signed-off-by: Zebediah Figura <z.figura12@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-05-11 22:07:52 +02:00
Zebediah Figura 013c024b2b quartz: Get rid of the resize callback.
Signed-off-by: Zebediah Figura <z.figura12@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-05-08 13:34:07 +02:00