[PATCH v3 1/6] mfplat: Implement MFCreateDXGIDeviceManager().

Nikolay Sivov nsivov at codeweavers.com
Thu Aug 29 09:35:02 CDT 2019


On 8/29/19 4:46 PM, Jactry Zeng wrote:

> +HRESULT WINAPI MFCreateDXGIDeviceManager(UINT *token, IMFDXGIDeviceManager **manager)
> +{
> +    struct dxgi_device_manager *object;
> +
> +    TRACE("(%p, %p).\n", token, manager);
> +
> +    if (!token || !manager)
> +        return E_POINTER;
> +
> +    object = heap_alloc(sizeof(*object));
> +    if (!object)
> +        return E_OUTOFMEMORY;
> +
> +    object->IMFDXGIDeviceManager_iface.lpVtbl = &dxgi_device_manager_vtbl;
> +    object->refcount = 1;
> +    object->token = MFGetSystemTime() >> 16;
> +
> +    TRACE("Created device manager: %p, token: %u.\n", object, object->token);
> +
> +    *token = object->token;
> +    *manager = &object->IMFDXGIDeviceManager_iface;
> +
> +    return S_OK;
> +}

Why 16? I still think it'd be better to use something more predictable, 
like sequentially incremented global counter.

I'll take a look, maybe it's easy to get "right" pattern for it.




More information about the wine-devel mailing list