build: Make the default symbol visibility "hidden".

We tag far fewer symbols this way.

Signed-off-by: Zebediah Figura <zfigura@codeweavers.com>
Signed-off-by: Henri Verbeet <hverbeet@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
This commit is contained in:
Zebediah Figura
2021-08-09 01:11:49 -05:00
committed by Alexandre Julliard
parent 688cdb218e
commit d27fee64ab
15 changed files with 286 additions and 305 deletions

View File

@@ -22,6 +22,6 @@
#include "vkd3d_windows.h"
#include "vkd3d_d3dcommon.h"
HRESULT vkd3d_blob_create(void *buffer, SIZE_T size, ID3D10Blob **blob) DECLSPEC_HIDDEN;
HRESULT vkd3d_blob_create(void *buffer, SIZE_T size, ID3D10Blob **blob);
#endif /* __VKD3D_BLOB_H */

View File

@@ -209,6 +209,6 @@ static inline void vkd3d_parse_version(const char *version, int *major, int *min
*minor = atoi(version);
}
HRESULT hresult_from_vkd3d_result(int vkd3d_result) DECLSPEC_HIDDEN;
HRESULT hresult_from_vkd3d_result(int vkd3d_result);
#endif /* __VKD3D_COMMON_H */

View File

@@ -44,15 +44,14 @@ enum vkd3d_dbg_level
VKD3D_DBG_LEVEL_TRACE,
};
enum vkd3d_dbg_level vkd3d_dbg_get_level(void) DECLSPEC_HIDDEN;
enum vkd3d_dbg_level vkd3d_dbg_get_level(void);
void vkd3d_dbg_printf(enum vkd3d_dbg_level level, const char *function,
const char *fmt, ...) VKD3D_PRINTF_FUNC(3, 4) DECLSPEC_HIDDEN;
void vkd3d_dbg_printf(enum vkd3d_dbg_level level, const char *function, const char *fmt, ...) VKD3D_PRINTF_FUNC(3, 4);
const char *vkd3d_dbg_sprintf(const char *fmt, ...) VKD3D_PRINTF_FUNC(1, 2) DECLSPEC_HIDDEN;
const char *vkd3d_dbg_vsprintf(const char *fmt, va_list args) DECLSPEC_HIDDEN;
const char *debugstr_a(const char *str) DECLSPEC_HIDDEN;
const char *debugstr_w(const WCHAR *wstr, size_t wchar_size) DECLSPEC_HIDDEN;
const char *vkd3d_dbg_sprintf(const char *fmt, ...) VKD3D_PRINTF_FUNC(1, 2);
const char *vkd3d_dbg_vsprintf(const char *fmt, va_list args);
const char *debugstr_a(const char *str);
const char *debugstr_w(const WCHAR *wstr, size_t wchar_size);
#define VKD3D_DBG_LOG(level) \
do { \
@@ -103,7 +102,7 @@ static inline const char *debugstr_guid(const GUID *guid)
guid->Data4[5], guid->Data4[6], guid->Data4[7]);
}
unsigned int vkd3d_env_var_as_uint(const char *name, unsigned int default_value) DECLSPEC_HIDDEN;
unsigned int vkd3d_env_var_as_uint(const char *name, unsigned int default_value);
struct vkd3d_debug_option
{
@@ -111,8 +110,8 @@ struct vkd3d_debug_option
uint64_t flag;
};
bool vkd3d_debug_list_has_member(const char *string, const char *member) DECLSPEC_HIDDEN;
bool vkd3d_debug_list_has_member(const char *string, const char *member);
uint64_t vkd3d_parse_debug_options(const char *string,
const struct vkd3d_debug_option *options, unsigned int option_count) DECLSPEC_HIDDEN;
const struct vkd3d_debug_option *options, unsigned int option_count);
#endif /* __VKD3D_DEBUG_H */

View File

@@ -65,7 +65,6 @@ static inline char *vkd3d_strdup(const char *string)
return ptr;
}
bool vkd3d_array_reserve(void **elements, size_t *capacity,
size_t element_count, size_t element_size) DECLSPEC_HIDDEN;
bool vkd3d_array_reserve(void **elements, size_t *capacity, size_t element_count, size_t element_size);
#endif /* __VKD3D_MEMORY_H */

View File

@@ -21,6 +21,6 @@
#include "vkd3d_common.h"
char *vkd3d_strdup_w_utf8(const WCHAR *wstr, size_t wchar_size) DECLSPEC_HIDDEN;
char *vkd3d_strdup_w_utf8(const WCHAR *wstr, size_t wchar_size);
#endif /* __VKD3D_UTF8_H */

View File

@@ -153,44 +153,50 @@ struct vkd3d_image_resource_create_info
D3D12_RESOURCE_STATES present_state;
};
#if defined(__GNUC__) && !defined(__MINGW32__)
# define VKD3D_API __attribute__((visibility("default")))
#else
# define VKD3D_API
#endif
#ifndef VKD3D_NO_PROTOTYPES
HRESULT vkd3d_create_instance(const struct vkd3d_instance_create_info *create_info,
VKD3D_API HRESULT vkd3d_create_instance(const struct vkd3d_instance_create_info *create_info,
struct vkd3d_instance **instance);
ULONG vkd3d_instance_decref(struct vkd3d_instance *instance);
VkInstance vkd3d_instance_get_vk_instance(struct vkd3d_instance *instance);
ULONG vkd3d_instance_incref(struct vkd3d_instance *instance);
VKD3D_API ULONG vkd3d_instance_decref(struct vkd3d_instance *instance);
VKD3D_API VkInstance vkd3d_instance_get_vk_instance(struct vkd3d_instance *instance);
VKD3D_API ULONG vkd3d_instance_incref(struct vkd3d_instance *instance);
HRESULT vkd3d_create_device(const struct vkd3d_device_create_info *create_info,
VKD3D_API HRESULT vkd3d_create_device(const struct vkd3d_device_create_info *create_info,
REFIID iid, void **device);
IUnknown *vkd3d_get_device_parent(ID3D12Device *device);
VkDevice vkd3d_get_vk_device(ID3D12Device *device);
VkPhysicalDevice vkd3d_get_vk_physical_device(ID3D12Device *device);
struct vkd3d_instance *vkd3d_instance_from_device(ID3D12Device *device);
VKD3D_API IUnknown *vkd3d_get_device_parent(ID3D12Device *device);
VKD3D_API VkDevice vkd3d_get_vk_device(ID3D12Device *device);
VKD3D_API VkPhysicalDevice vkd3d_get_vk_physical_device(ID3D12Device *device);
VKD3D_API struct vkd3d_instance *vkd3d_instance_from_device(ID3D12Device *device);
uint32_t vkd3d_get_vk_queue_family_index(ID3D12CommandQueue *queue);
VkQueue vkd3d_acquire_vk_queue(ID3D12CommandQueue *queue);
void vkd3d_release_vk_queue(ID3D12CommandQueue *queue);
VKD3D_API uint32_t vkd3d_get_vk_queue_family_index(ID3D12CommandQueue *queue);
VKD3D_API VkQueue vkd3d_acquire_vk_queue(ID3D12CommandQueue *queue);
VKD3D_API void vkd3d_release_vk_queue(ID3D12CommandQueue *queue);
HRESULT vkd3d_create_image_resource(ID3D12Device *device,
VKD3D_API HRESULT vkd3d_create_image_resource(ID3D12Device *device,
const struct vkd3d_image_resource_create_info *create_info, ID3D12Resource **resource);
ULONG vkd3d_resource_decref(ID3D12Resource *resource);
ULONG vkd3d_resource_incref(ID3D12Resource *resource);
VKD3D_API ULONG vkd3d_resource_decref(ID3D12Resource *resource);
VKD3D_API ULONG vkd3d_resource_incref(ID3D12Resource *resource);
HRESULT vkd3d_serialize_root_signature(const D3D12_ROOT_SIGNATURE_DESC *desc,
VKD3D_API HRESULT vkd3d_serialize_root_signature(const D3D12_ROOT_SIGNATURE_DESC *desc,
D3D_ROOT_SIGNATURE_VERSION version, ID3DBlob **blob, ID3DBlob **error_blob);
HRESULT vkd3d_create_root_signature_deserializer(const void *data, SIZE_T data_size,
VKD3D_API HRESULT vkd3d_create_root_signature_deserializer(const void *data, SIZE_T data_size,
REFIID iid, void **deserializer);
VkFormat vkd3d_get_vk_format(DXGI_FORMAT format);
VKD3D_API VkFormat vkd3d_get_vk_format(DXGI_FORMAT format);
/* 1.1 */
DXGI_FORMAT vkd3d_get_dxgi_format(VkFormat format);
VKD3D_API DXGI_FORMAT vkd3d_get_dxgi_format(VkFormat format);
/* 1.2 */
HRESULT vkd3d_serialize_versioned_root_signature(const D3D12_VERSIONED_ROOT_SIGNATURE_DESC *desc,
VKD3D_API HRESULT vkd3d_serialize_versioned_root_signature(const D3D12_VERSIONED_ROOT_SIGNATURE_DESC *desc,
ID3DBlob **blob, ID3DBlob **error_blob);
HRESULT vkd3d_create_versioned_root_signature_deserializer(const void *data, SIZE_T data_size,
VKD3D_API HRESULT vkd3d_create_versioned_root_signature_deserializer(const void *data, SIZE_T data_size,
REFIID iid, void **deserializer);
#endif /* VKD3D_NO_PROTOTYPES */

View File

@@ -1340,6 +1340,12 @@ static inline uint32_t vkd3d_shader_create_swizzle(enum vkd3d_shader_swizzle_com
| ((w & VKD3D_SHADER_SWIZZLE_MASK) << VKD3D_SHADER_SWIZZLE_SHIFT(3));
}
#if defined(__GNUC__) && !defined(__MINGW32__)
# define VKD3D_SHADER_API __attribute__((visibility("default")))
#else
# define VKD3D_SHADER_API
#endif
#ifndef VKD3D_SHADER_NO_PROTOTYPES
/**
@@ -1353,7 +1359,7 @@ static inline uint32_t vkd3d_shader_create_swizzle(enum vkd3d_shader_swizzle_com
* string is null-terminated and UTF-8 encoded. This may be a pointer to static
* data in libvkd3d-shader; it should not be freed.
*/
const char *vkd3d_shader_get_version(unsigned int *major, unsigned int *minor);
VKD3D_SHADER_API const char *vkd3d_shader_get_version(unsigned int *major, unsigned int *minor);
/**
* Returns the source types supported, with any target type, by
* vkd3d_shader_compile().
@@ -1368,7 +1374,7 @@ const char *vkd3d_shader_get_version(unsigned int *major, unsigned int *minor);
* vkd3d-shader. This array may be a pointer to static data in libvkd3d-shader;
* it should not be freed.
*/
const enum vkd3d_shader_source_type *vkd3d_shader_get_supported_source_types(unsigned int *count);
VKD3D_SHADER_API const enum vkd3d_shader_source_type *vkd3d_shader_get_supported_source_types(unsigned int *count);
/**
* Returns the target types supported, with the given source type, by
* vkd3d_shader_compile().
@@ -1382,7 +1388,7 @@ const enum vkd3d_shader_source_type *vkd3d_shader_get_supported_source_types(uns
* vkd3d-shader. This array may be a pointer to static data in libvkd3d-shader;
* it should not be freed.
*/
const enum vkd3d_shader_target_type *vkd3d_shader_get_supported_target_types(
VKD3D_SHADER_API const enum vkd3d_shader_target_type *vkd3d_shader_get_supported_target_types(
enum vkd3d_shader_source_type source_type, unsigned int *count);
/**
@@ -1428,7 +1434,7 @@ const enum vkd3d_shader_target_type *vkd3d_shader_get_supported_target_types(
*
* \return A member of \ref vkd3d_result.
*/
int vkd3d_shader_compile(const struct vkd3d_shader_compile_info *compile_info,
VKD3D_SHADER_API int vkd3d_shader_compile(const struct vkd3d_shader_compile_info *compile_info,
struct vkd3d_shader_code *out, char **messages);
/**
* Free shader messages allocated by another vkd3d-shader function, such as
@@ -1437,7 +1443,7 @@ int vkd3d_shader_compile(const struct vkd3d_shader_compile_info *compile_info,
* \param messages Messages to free. This pointer is optional and may be NULL,
* in which case no action will be taken.
*/
void vkd3d_shader_free_messages(char *messages);
VKD3D_SHADER_API void vkd3d_shader_free_messages(char *messages);
/**
* Free shader code allocated by another vkd3d-shader function, such as
* vkd3d_shader_compile().
@@ -1447,7 +1453,7 @@ void vkd3d_shader_free_messages(char *messages);
*
* \param code Code to free.
*/
void vkd3d_shader_free_shader_code(struct vkd3d_shader_code *code);
VKD3D_SHADER_API void vkd3d_shader_free_shader_code(struct vkd3d_shader_code *code);
/**
* Convert a byte code description of a shader root signature to a structural
@@ -1479,7 +1485,7 @@ void vkd3d_shader_free_shader_code(struct vkd3d_shader_code *code);
*
* \return A member of \ref vkd3d_result.
*/
int vkd3d_shader_parse_root_signature(const struct vkd3d_shader_code *dxbc,
VKD3D_SHADER_API int vkd3d_shader_parse_root_signature(const struct vkd3d_shader_code *dxbc,
struct vkd3d_shader_versioned_root_signature_desc *root_signature, char **messages);
/**
* Free a structural representation of a shader root signature allocated by
@@ -1491,7 +1497,8 @@ int vkd3d_shader_parse_root_signature(const struct vkd3d_shader_code *dxbc,
*
* \param root_signature Signature description to free.
*/
void vkd3d_shader_free_root_signature(struct vkd3d_shader_versioned_root_signature_desc *root_signature);
VKD3D_SHADER_API void vkd3d_shader_free_root_signature(
struct vkd3d_shader_versioned_root_signature_desc *root_signature);
/**
* Convert a structural description of a shader root signature to a byte code
@@ -1516,7 +1523,8 @@ void vkd3d_shader_free_root_signature(struct vkd3d_shader_versioned_root_signatu
*
* \return A member of \ref vkd3d_result.
*/
int vkd3d_shader_serialize_root_signature(const struct vkd3d_shader_versioned_root_signature_desc *root_signature,
VKD3D_SHADER_API int vkd3d_shader_serialize_root_signature(
const struct vkd3d_shader_versioned_root_signature_desc *root_signature,
struct vkd3d_shader_code *dxbc, char **messages);
/**
* Convert a structural representation of a root signature to a different
@@ -1538,7 +1546,7 @@ int vkd3d_shader_serialize_root_signature(const struct vkd3d_shader_versioned_ro
*
* \return A member of \ref vkd3d_result.
*/
int vkd3d_shader_convert_root_signature(struct vkd3d_shader_versioned_root_signature_desc *dst,
VKD3D_SHADER_API int vkd3d_shader_convert_root_signature(struct vkd3d_shader_versioned_root_signature_desc *dst,
enum vkd3d_shader_root_signature_version version, const struct vkd3d_shader_versioned_root_signature_desc *src);
/**
@@ -1565,7 +1573,7 @@ int vkd3d_shader_convert_root_signature(struct vkd3d_shader_versioned_root_signa
*
* \return A member of \ref vkd3d_result.
*/
int vkd3d_shader_scan(const struct vkd3d_shader_compile_info *compile_info, char **messages);
VKD3D_SHADER_API int vkd3d_shader_scan(const struct vkd3d_shader_compile_info *compile_info, char **messages);
/**
* Free members of struct vkd3d_shader_scan_descriptor_info() allocated by
* vkd3d_shader_scan().
@@ -1575,7 +1583,8 @@ int vkd3d_shader_scan(const struct vkd3d_shader_compile_info *compile_info, char
*
* \param scan_descriptor_info Descriptor information to free.
*/
void vkd3d_shader_free_scan_descriptor_info(struct vkd3d_shader_scan_descriptor_info *scan_descriptor_info);
VKD3D_SHADER_API void vkd3d_shader_free_scan_descriptor_info(
struct vkd3d_shader_scan_descriptor_info *scan_descriptor_info);
/**
* Read the input signature of a compiled shader, returning a structural
@@ -1601,7 +1610,7 @@ void vkd3d_shader_free_scan_descriptor_info(struct vkd3d_shader_scan_descriptor_
*
* \return A member of \ref vkd3d_result.
*/
int vkd3d_shader_parse_input_signature(const struct vkd3d_shader_code *dxbc,
VKD3D_SHADER_API int vkd3d_shader_parse_input_signature(const struct vkd3d_shader_code *dxbc,
struct vkd3d_shader_signature *signature, char **messages);
/**
* Find a single element of a parsed input signature.
@@ -1622,7 +1631,7 @@ int vkd3d_shader_parse_input_signature(const struct vkd3d_shader_code *dxbc,
* NULL if no such element was found. If not NULL, the return value points into
* the \a signature parameter and should not be explicitly freed.
*/
struct vkd3d_shader_signature_element *vkd3d_shader_find_signature_element(
VKD3D_SHADER_API struct vkd3d_shader_signature_element *vkd3d_shader_find_signature_element(
const struct vkd3d_shader_signature *signature, const char *semantic_name,
unsigned int semantic_index, unsigned int stream_index);
/**
@@ -1634,7 +1643,7 @@ struct vkd3d_shader_signature_element *vkd3d_shader_find_signature_element(
*
* \param signature Signature description to free.
*/
void vkd3d_shader_free_shader_signature(struct vkd3d_shader_signature *signature);
VKD3D_SHADER_API void vkd3d_shader_free_shader_signature(struct vkd3d_shader_signature *signature);
/* 1.3 */
@@ -1662,7 +1671,7 @@ void vkd3d_shader_free_shader_signature(struct vkd3d_shader_signature *signature
*
* \since 1.3
*/
int vkd3d_shader_preprocess(const struct vkd3d_shader_compile_info *compile_info,
VKD3D_SHADER_API int vkd3d_shader_preprocess(const struct vkd3d_shader_compile_info *compile_info,
struct vkd3d_shader_code *out, char **messages);
#endif /* VKD3D_SHADER_NO_PROTOTYPES */

View File

@@ -34,37 +34,44 @@ extern "C" {
#define VKD3D_WAIT_FAILED (~0u)
#define VKD3D_INFINITE (~0u)
#if defined(__GNUC__) && !defined(__MINGW32__)
# define VKD3D_UTILS_API __attribute__((visibility("default")))
#else
# define VKD3D_UTILS_API
#endif
/* 1.0 */
HANDLE vkd3d_create_event(void);
HRESULT vkd3d_signal_event(HANDLE event);
unsigned int vkd3d_wait_event(HANDLE event, unsigned int milliseconds);
void vkd3d_destroy_event(HANDLE event);
VKD3D_UTILS_API HANDLE vkd3d_create_event(void);
VKD3D_UTILS_API HRESULT vkd3d_signal_event(HANDLE event);
VKD3D_UTILS_API unsigned int vkd3d_wait_event(HANDLE event, unsigned int milliseconds);
VKD3D_UTILS_API void vkd3d_destroy_event(HANDLE event);
#define D3D12CreateDevice(a, b, c, d) D3D12CreateDeviceVKD3D(a, b, c, d, VKD3D_UTILS_API_VERSION)
HRESULT WINAPI D3D12CreateRootSignatureDeserializer(const void *data, SIZE_T data_size, REFIID iid, void **deserializer);
HRESULT WINAPI D3D12GetDebugInterface(REFIID iid, void **debug);
HRESULT WINAPI D3D12SerializeRootSignature(const D3D12_ROOT_SIGNATURE_DESC *desc,
VKD3D_UTILS_API HRESULT WINAPI D3D12CreateRootSignatureDeserializer(
const void *data, SIZE_T data_size, REFIID iid, void **deserializer);
VKD3D_UTILS_API HRESULT WINAPI D3D12GetDebugInterface(REFIID iid, void **debug);
VKD3D_UTILS_API HRESULT WINAPI D3D12SerializeRootSignature(const D3D12_ROOT_SIGNATURE_DESC *desc,
D3D_ROOT_SIGNATURE_VERSION version, ID3DBlob **blob, ID3DBlob **error_blob);
/* 1.2 */
HRESULT WINAPI D3D12CreateDeviceVKD3D(IUnknown *adapter, D3D_FEATURE_LEVEL feature_level,
VKD3D_UTILS_API HRESULT WINAPI D3D12CreateDeviceVKD3D(IUnknown *adapter, D3D_FEATURE_LEVEL feature_level,
REFIID iid, void **device, enum vkd3d_api_version api_version);
HRESULT WINAPI D3D12CreateVersionedRootSignatureDeserializer(const void *data,
VKD3D_UTILS_API HRESULT WINAPI D3D12CreateVersionedRootSignatureDeserializer(const void *data,
SIZE_T data_size, REFIID iid, void **deserializer);
HRESULT WINAPI D3D12SerializeVersionedRootSignature(const D3D12_VERSIONED_ROOT_SIGNATURE_DESC *desc,
VKD3D_UTILS_API HRESULT WINAPI D3D12SerializeVersionedRootSignature(const D3D12_VERSIONED_ROOT_SIGNATURE_DESC *desc,
ID3DBlob **blob, ID3DBlob **error_blob);
/* 1.3 */
HRESULT WINAPI D3DCompile(const void *data, SIZE_T data_size, const char *filename,
VKD3D_UTILS_API HRESULT WINAPI D3DCompile(const void *data, SIZE_T data_size, const char *filename,
const D3D_SHADER_MACRO *defines, ID3DInclude *include, const char *entrypoint,
const char *target, UINT flags, UINT effect_flags, ID3DBlob **shader, ID3DBlob **error_messages);
HRESULT WINAPI D3DCompile2(const void *data, SIZE_T data_size, const char *filename,
VKD3D_UTILS_API HRESULT WINAPI D3DCompile2(const void *data, SIZE_T data_size, const char *filename,
const D3D_SHADER_MACRO *defines, ID3DInclude *include, const char *entrypoint,
const char *target, UINT flags, UINT effect_flags, UINT secondary_flags,
const void *secondary_data, SIZE_T secondary_data_size, ID3DBlob **shader,
ID3DBlob **error_messages);
HRESULT WINAPI D3DCreateBlob(SIZE_T data_size, ID3D10Blob **blob);
HRESULT WINAPI D3DPreprocess(const void *data, SIZE_T size, const char *filename,
VKD3D_UTILS_API HRESULT WINAPI D3DCreateBlob(SIZE_T data_size, ID3D10Blob **blob);
VKD3D_UTILS_API HRESULT WINAPI D3DPreprocess(const void *data, SIZE_T size, const char *filename,
const D3D_SHADER_MACRO *defines, ID3DInclude *include,
ID3DBlob **shader, ID3DBlob **error_messages);

View File

@@ -127,18 +127,18 @@ typedef GUID IID;
# ifdef INITGUID
# ifndef __cplusplus
# define DEFINE_GUID(name, l, w1, w2, b1, b2, b3, b4, b5, b6, b7, b8) \
const GUID name DECLSPEC_HIDDEN; \
const GUID name; \
const GUID name = \
{ l, w1, w2, { b1, b2, b3, b4, b5, b6, b7, b8 }}
# else
# define DEFINE_GUID(name, l, w1, w2, b1, b2, b3, b4, b5, b6, b7, b8) \
EXTERN_C const GUID name DECLSPEC_HIDDEN; \
EXTERN_C const GUID name; \
EXTERN_C const GUID name = \
{ l, w1, w2, { b1, b2, b3, b4, b5, b6, b7, b8 }}
# endif
# else
# define DEFINE_GUID(name, l, w1, w2, b1, b2, b3, b4, b5, b6, b7, b8) \
EXTERN_C const GUID name DECLSPEC_HIDDEN;
EXTERN_C const GUID name;
# endif /* INITGUID */
/* __uuidof emulation */
@@ -239,17 +239,6 @@ typedef struct SECURITY_ATTRIBUTES SECURITY_ATTRIBUTES;
#endif /* _WIN32 */
/* Define DECLSPEC_HIDDEN */
#ifndef DECLSPEC_HIDDEN
# if defined(__MINGW32__)
# define DECLSPEC_HIDDEN
# elif defined(__GNUC__)
# define DECLSPEC_HIDDEN __attribute__((visibility("hidden")))
# else
# define DECLSPEC_HIDDEN
# endif
#endif /* DECLSPEC_HIDDEN */
/* Define min() & max() macros */
#ifndef NOMINMAX
# ifndef min