[PATCH v4 1/4] gdi32: Implement D3DKMTOpenAdapterFromGdiDisplayName.
Alexandre Julliard
julliard at winehq.org
Wed Jun 5 09:59:59 CDT 2019
Zhiyi Zhang <zzhang at codeweavers.com> writes:
> +/******************************************************************************
> + * D3DKMTOpenAdapterFromGdiDisplayName [GDI32.@]
> + */
> +NTSTATUS WINAPI D3DKMTOpenAdapterFromGdiDisplayName( D3DKMT_OPENADAPTERFROMGDIDISPLAYNAME *desc )
> +{
> + static const WCHAR display1W[] = {'\\','\\','.','\\','D','I','S','P','L','A','Y','1',0};
> + static D3DKMT_HANDLE handle_start = 0;
> + struct d3dkmt_adapter *adapter;
> +
> + TRACE("(%p) semi-stub\n", desc);
> +
> + if (!desc)
> + return STATUS_UNSUCCESSFUL;
> +
> + /* FIXME: Support multiple monitors */
> + if (lstrcmpiW( desc->DeviceName, display1W ))
> + {
> + FIXME("%s is unsupported\n", wine_dbgstr_w( desc->DeviceName ));
> + return STATUS_UNSUCCESSFUL;
> + }
> +
> + adapter = heap_alloc( sizeof( *adapter ) );
> + if (!adapter)
> + return STATUS_NO_MEMORY;
> +
> + /* D3DKMT_HANDLE is UINT, so we can't use pointer as handle */
> + adapter->handle = ++handle_start;
You should use interlocked functions, or do that inside the critical
section.
--
Alexandre Julliard
julliard at winehq.org
More information about the wine-devel
mailing list