From eb93e6e0a83e1923d020d86dbcbd143b8680331f Mon Sep 17 00:00:00 2001 From: Steve Lhomme <robux4@ycbcr.xyz> Date: Fri, 10 May 2019 11:16:58 +0200 Subject: [PATCH] vout: direct3d: allow the setup callback to return a different opaque pointer --- modules/video_output/win32/d3d_render.h | 2 +- modules/video_output/win32/direct3d11.c | 6 +++--- modules/video_output/win32/direct3d9.c | 4 ++-- 3 files changed, 6 insertions(+), 6 deletions(-) diff --git a/modules/video_output/win32/d3d_render.h b/modules/video_output/win32/d3d_render.h index 062d1d7e5d64..790b9b9ced4f 100644 --- a/modules/video_output/win32/d3d_render.h +++ b/modules/video_output/win32/d3d_render.h @@ -49,7 +49,7 @@ struct output_cfg_t { video_transfer_func_t transfer; /** video transfer function */ }; -typedef bool (*d3d_device_setup_cb)(void* opaque, const struct device_cfg_t*, struct device_setup_t* ); +typedef bool (*d3d_device_setup_cb)(void** opaque, const struct device_cfg_t*, struct device_setup_t* ); typedef void (*d3d_device_cleanup_cb)(void* opaque); typedef bool (*d3d_update_output_cb)(void* opaque, const struct direct3d_cfg_t *cfg, struct output_cfg_t *out); typedef void (*d3d_swap_cb)(void* opaque); diff --git a/modules/video_output/win32/direct3d11.c b/modules/video_output/win32/direct3d11.c index df8cd6b4e7cf..4d5ab7a0d2f4 100644 --- a/modules/video_output/win32/direct3d11.c +++ b/modules/video_output/win32/direct3d11.c @@ -528,9 +528,9 @@ static bool UpdateSwapchain( struct d3d11_local_swapchain *display, const struct return true; } -static bool LocalSwapchainSetupDevice( void *opaque, const struct device_cfg_t *cfg, struct device_setup_t *out ) +static bool LocalSwapchainSetupDevice( void **opaque, const struct device_cfg_t *cfg, struct device_setup_t *out ) { - struct d3d11_local_swapchain *display = opaque; + struct d3d11_local_swapchain *display = *opaque; HRESULT hr; #if VLC_WINSTORE_APP ID3D11DeviceContext *legacy_ctx = var_InheritInteger( display->obj, "winrt-d3dcontext" ); /* LEGACY */ @@ -1328,7 +1328,7 @@ static int Direct3D11Open(vout_display_t *vd, video_format_t *fmtp) }; struct device_setup_t out; ID3D11DeviceContext *d3d11_ctx = NULL; - if ( sys->setupDeviceCb( sys->outside_opaque, &cfg, &out ) ) + if ( sys->setupDeviceCb( &sys->outside_opaque, &cfg, &out ) ) d3d11_ctx = out.device_context; if ( d3d11_ctx == NULL ) { diff --git a/modules/video_output/win32/direct3d9.c b/modules/video_output/win32/direct3d9.c index 554b206f78f1..ff571cf26ff4 100644 --- a/modules/video_output/win32/direct3d9.c +++ b/modules/video_output/win32/direct3d9.c @@ -1626,7 +1626,7 @@ static int FindShadersCallback(const char *name, char ***values, char ***descs) } -static bool LocalSwapchainSetupDevice( void *opaque, const struct device_cfg_t *cfg, struct device_setup_t *out ) +static bool LocalSwapchainSetupDevice( void **opaque, const struct device_cfg_t *cfg, struct device_setup_t *out ) { return false; /* don't use an "external" D3D9 device */ } @@ -1702,7 +1702,7 @@ static int Open(vout_display_t *vd, const vout_display_cfg_t *cfg, }; struct device_setup_t device_setup; IDirect3DDevice9 *d3d9_device = NULL; - if ( sys->setupDeviceCb( sys->outside_opaque, &surface_cfg, &device_setup ) ) + if ( sys->setupDeviceCb( &sys->outside_opaque, &surface_cfg, &device_setup ) ) d3d9_device = device_setup.device_context; if ( d3d9_device == NULL && sys->setupDeviceCb != LocalSwapchainSetupDevice ) { -- GitLab