diff --git a/libs/vkd3d/command.c b/libs/vkd3d/command.c index 5def747f..29543c35 100644 --- a/libs/vkd3d/command.c +++ b/libs/vkd3d/command.c @@ -7112,7 +7112,7 @@ static void STDMETHODCALLTYPE d3d12_command_list_SetDescriptorHeaps(d3d12_comman for (i = 0; i < heap_count; i++) { - struct d3d12_descriptor_heap *heap = unsafe_impl_from_ID3D12DescriptorHeap(heaps[i]); + struct d3d12_descriptor_heap *heap = impl_from_ID3D12DescriptorHeap(heaps[i]); unsigned int set_index = 0; if (!heap) diff --git a/libs/vkd3d/resource.c b/libs/vkd3d/resource.c index 32db9f22..ce4614d2 100644 --- a/libs/vkd3d/resource.c +++ b/libs/vkd3d/resource.c @@ -4871,11 +4871,6 @@ void d3d12_rtv_desc_create_dsv(struct d3d12_rtv_desc *dsv_desc, struct d3d12_dev } /* ID3D12DescriptorHeap */ -static inline struct d3d12_descriptor_heap *impl_from_ID3D12DescriptorHeap(ID3D12DescriptorHeap *iface) -{ - return CONTAINING_RECORD(iface, struct d3d12_descriptor_heap, ID3D12DescriptorHeap_iface); -} - static HRESULT STDMETHODCALLTYPE d3d12_descriptor_heap_QueryInterface(ID3D12DescriptorHeap *iface, REFIID riid, void **object) { @@ -5005,7 +5000,7 @@ static D3D12_GPU_DESCRIPTOR_HANDLE * STDMETHODCALLTYPE d3d12_descriptor_heap_Get return descriptor; } -static CONST_VTBL struct ID3D12DescriptorHeapVtbl d3d12_descriptor_heap_vtbl = +CONST_VTBL struct ID3D12DescriptorHeapVtbl d3d12_descriptor_heap_vtbl = { /* IUnknown methods */ d3d12_descriptor_heap_QueryInterface, @@ -5024,14 +5019,6 @@ static CONST_VTBL struct ID3D12DescriptorHeapVtbl d3d12_descriptor_heap_vtbl = d3d12_descriptor_heap_GetGPUDescriptorHandleForHeapStart, }; -struct d3d12_descriptor_heap *unsafe_impl_from_ID3D12DescriptorHeap(ID3D12DescriptorHeap *iface) -{ - if (!iface) - return NULL; - assert(iface->lpVtbl == &d3d12_descriptor_heap_vtbl); - return impl_from_ID3D12DescriptorHeap(iface); -} - static HRESULT d3d12_descriptor_heap_create_descriptor_pool(struct d3d12_descriptor_heap *descriptor_heap, VkDescriptorPool *vk_descriptor_pool) { diff --git a/libs/vkd3d/vkd3d_private.h b/libs/vkd3d/vkd3d_private.h index 6c13997a..a2053053 100644 --- a/libs/vkd3d/vkd3d_private.h +++ b/libs/vkd3d/vkd3d_private.h @@ -1184,7 +1184,15 @@ struct d3d12_descriptor_heap HRESULT d3d12_descriptor_heap_create(struct d3d12_device *device, const D3D12_DESCRIPTOR_HEAP_DESC *desc, struct d3d12_descriptor_heap **descriptor_heap); void d3d12_descriptor_heap_cleanup(struct d3d12_descriptor_heap *descriptor_heap); -struct d3d12_descriptor_heap *unsafe_impl_from_ID3D12DescriptorHeap(ID3D12DescriptorHeap *iface); + +static inline struct d3d12_descriptor_heap *impl_from_ID3D12DescriptorHeap(ID3D12DescriptorHeap *iface) +{ + extern CONST_VTBL struct ID3D12DescriptorHeapVtbl d3d12_descriptor_heap_vtbl; + if (!iface) + return NULL; + assert(iface->lpVtbl == &d3d12_descriptor_heap_vtbl); + return CONTAINING_RECORD(iface, struct d3d12_descriptor_heap, ID3D12DescriptorHeap_iface); +} static inline uint32_t d3d12_desc_heap_offset(const struct d3d12_desc *dst) {