tests: Define WIDL macros in utils.h.

This way other headers including utils.h, like d3d12_test_utils.h,
are self-contained.
This commit is contained in:
Giovanni Mascellani 2024-07-10 12:30:10 +02:00 committed by Henri Verbeet
parent 9ebf779ef0
commit 85fe4c421b
Notes: Henri Verbeet 2024-07-11 00:42:06 +02:00
Approved-by: Giovanni Mascellani (@giomasce)
Approved-by: Henri Verbeet (@hverbeet)
Merge-Request: https://gitlab.winehq.org/wine/vkd3d/-/merge_requests/938

View File

@ -19,6 +19,25 @@
#ifndef __VKD3D_TEST_UTILS_H #ifndef __VKD3D_TEST_UTILS_H
#define __VKD3D_TEST_UTILS_H #define __VKD3D_TEST_UTILS_H
/* Hack for MinGW-w64 headers.
*
* We want to use WIDL C inline wrappers because some methods
* in D3D12 interfaces return aggregate objects. Unfortunately,
* WIDL C inline wrappers are broken when used with MinGW-w64
* headers because FORCEINLINE expands to extern inline
* which leads to the "multiple storage classes in declaration
* specifiers" compiler error.
*/
#ifdef __MINGW32__
# include <_mingw.h>
# ifdef __MINGW64_VERSION_MAJOR
# undef __forceinline
# define __forceinline __inline__ __attribute__((__always_inline__,__gnu_inline__))
# endif
#endif
#define COBJMACROS
#define WIDL_C_INLINE_WRAPPERS
#include <limits.h> #include <limits.h>
#include <stdbool.h> #include <stdbool.h>
#include <stdint.h> #include <stdint.h>