From 684ffd13b4940eb7a5d4228f850d903a72570242 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jan=20Ekstr=C3=B6m?= Date: Mon, 14 Oct 2019 20:01:11 +0300 Subject: vo_gpu/d3d11: fixup adapter selection by switching it all to bstr I did ponder if I should have done this right away, and it seems like not doing it at first was a mistake. --- video/out/d3d11/context.c | 2 +- video/out/gpu/d3d11_helpers.c | 16 ++++++---------- video/out/gpu/d3d11_helpers.h | 2 +- 3 files changed, 8 insertions(+), 12 deletions(-) diff --git a/video/out/d3d11/context.c b/video/out/d3d11/context.c index d2062a5619..be595eff3d 100644 --- a/video/out/d3d11/context.c +++ b/video/out/d3d11/context.c @@ -106,7 +106,7 @@ static int d3d11_validate_adapter(struct mp_log *log, } adapter_matched = mp_d3d11_list_or_verify_adapters(log, - help ? NULL : ¶m, + help ? bstr0(NULL) : param, help ? &listing : NULL); if (help) { diff --git a/video/out/gpu/d3d11_helpers.c b/video/out/gpu/d3d11_helpers.c index 9e05b7b878..6ea778a875 100644 --- a/video/out/gpu/d3d11_helpers.c +++ b/video/out/gpu/d3d11_helpers.c @@ -160,7 +160,7 @@ static int get_feature_levels(int max_fl, int min_fl, } static IDXGIAdapter1 *get_d3d11_adapter(struct mp_log *log, - char *requested_adapter_name, + struct bstr requested_adapter_name, struct bstr *listing) { HRESULT hr = S_OK; @@ -204,8 +204,8 @@ static IDXGIAdapter1 *get_d3d11_adapter(struct mp_log *log, adapter_description ? adapter_description : ""); } - if (requested_adapter_name && adapter_description && - !strcmp(requested_adapter_name, adapter_description)) + if (adapter_description && + bstr_equals0(requested_adapter_name, adapter_description)) { picked_adapter = adapter; break; @@ -239,7 +239,7 @@ static HRESULT create_device(struct mp_log *log, IDXGIAdapter1 *adapter, } bool mp_d3d11_list_or_verify_adapters(struct mp_log *log, - bstr *adapter_name, + bstr adapter_name, bstr *listing) { IDXGIAdapter1 *picked_adapter = NULL; @@ -248,11 +248,7 @@ bool mp_d3d11_list_or_verify_adapters(struct mp_log *log, return false; } - if ((picked_adapter = get_d3d11_adapter(log, - adapter_name ? - (char *)adapter_name->start : NULL, - listing))) - { + if ((picked_adapter = get_d3d11_adapter(log, adapter_name, listing))) { SAFE_RELEASE(picked_adapter); return true; } @@ -283,7 +279,7 @@ bool mp_d3d11_create_present_device(struct mp_log *log, goto done; } - adapter = get_d3d11_adapter(log, adapter_name, NULL); + adapter = get_d3d11_adapter(log, bstr0(adapter_name), NULL); if (adapter_name && !adapter) { mp_warn(log, "Adapter '%s' was not found in the system! " diff --git a/video/out/gpu/d3d11_helpers.h b/video/out/gpu/d3d11_helpers.h index cd22d4b145..2ffc4ec40d 100644 --- a/video/out/gpu/d3d11_helpers.h +++ b/video/out/gpu/d3d11_helpers.h @@ -60,7 +60,7 @@ struct d3d11_device_opts { }; bool mp_d3d11_list_or_verify_adapters(struct mp_log *log, - bstr *adapter_name, + bstr adapter_name, bstr *listing); bool mp_d3d11_create_present_device(struct mp_log *log, -- cgit v1.2.3