2023-09-29 12:28:17 +03:00
|
|
|
#include <stdarg.h>
|
|
|
|
#include <stddef.h>
|
2018-04-04 18:20:44 +03:00
|
|
|
#include <stdint.h>
|
2023-09-29 12:28:17 +03:00
|
|
|
|
2023-09-24 15:50:45 +03:00
|
|
|
#ifndef __cplusplus
|
2023-09-30 11:48:58 +03:00
|
|
|
#include "unixlib.h"
|
2023-09-29 12:28:17 +03:00
|
|
|
#include "wine/debug.h"
|
2023-09-24 15:50:45 +03:00
|
|
|
#include "cxx.h"
|
|
|
|
#else
|
|
|
|
typedef void (*vtable_ptr)(void);
|
|
|
|
#endif
|
|
|
|
|
2018-01-18 22:29:49 +03:00
|
|
|
void *create_LinuxMatchmakingServerListResponse(void *win);
|
2018-01-18 22:57:01 +03:00
|
|
|
|
2018-04-04 18:20:44 +03:00
|
|
|
#ifndef __cplusplus
|
2018-04-04 18:20:44 +03:00
|
|
|
typedef struct ID3D11Device ID3D11Device;
|
2018-05-11 03:18:06 +03:00
|
|
|
typedef struct IDXGIVkInteropDevice IDXGIVkInteropDevice;
|
2018-04-04 18:20:44 +03:00
|
|
|
|
2018-04-19 16:50:32 +03:00
|
|
|
struct client_core_data
|
|
|
|
{
|
|
|
|
CRITICAL_SECTION critical_section;
|
|
|
|
struct generic_interface *created_interfaces;
|
|
|
|
SIZE_T created_interface_count;
|
|
|
|
SIZE_T created_interfaces_size;
|
|
|
|
};
|
|
|
|
|
2023-09-27 00:56:43 +03:00
|
|
|
struct compositor_data
|
|
|
|
{
|
|
|
|
ID3D11Device *d3d11_device;
|
|
|
|
IDXGIVkInteropDevice *dxvk_device;
|
|
|
|
BOOL d3d11_explicit_handoff, handoff_called;
|
|
|
|
void *client_core_linux_side;
|
|
|
|
|
|
|
|
#ifndef __x86_64__
|
|
|
|
/* Digital action state change fixup hack. */
|
|
|
|
struct
|
|
|
|
{
|
2023-09-19 20:59:23 +03:00
|
|
|
uint64_t action;
|
|
|
|
uint64_t origin;
|
2023-09-27 00:56:43 +03:00
|
|
|
LARGE_INTEGER update_qpf_time;
|
|
|
|
BOOL previous_state;
|
|
|
|
} digital_actions_state[128];
|
|
|
|
unsigned int digital_action_count;
|
|
|
|
LARGE_INTEGER qpf_freq;
|
|
|
|
#endif
|
|
|
|
};
|
|
|
|
|
|
|
|
extern struct compositor_data compositor_data;
|
|
|
|
|
2023-09-24 15:50:45 +03:00
|
|
|
struct w_steam_iface
|
|
|
|
{
|
|
|
|
vtable_ptr *vtable;
|
|
|
|
void *u_iface;
|
|
|
|
union
|
|
|
|
{
|
|
|
|
struct client_core_data user_data; /* for IVRClientCore */
|
|
|
|
};
|
|
|
|
};
|
|
|
|
|
2023-09-30 13:02:30 +03:00
|
|
|
typedef struct w_steam_iface *(*iface_constructor)( void * );
|
2023-12-01 16:33:56 +03:00
|
|
|
extern iface_constructor find_iface_constructor( const char *iface_version );
|
2023-09-30 13:02:30 +03:00
|
|
|
typedef void (*iface_destructor)( struct w_steam_iface * );
|
2023-12-01 16:33:56 +03:00
|
|
|
extern iface_destructor find_iface_destructor( const char *iface_version );
|
2023-09-30 13:02:30 +03:00
|
|
|
|
2023-12-01 16:33:56 +03:00
|
|
|
extern void init_rtti( char *base );
|
2023-10-02 21:00:22 +03:00
|
|
|
|
2023-09-24 15:50:45 +03:00
|
|
|
struct w_steam_iface *create_win_interface(const char *name, void *linux_side);
|
|
|
|
|
|
|
|
struct generic_interface
|
|
|
|
{
|
|
|
|
struct w_steam_iface *object;
|
|
|
|
void (*dtor)(struct w_steam_iface *);
|
|
|
|
};
|
|
|
|
|
2023-09-27 00:56:43 +03:00
|
|
|
#ifdef __dxvk_interop_h__
|
2023-09-29 12:28:17 +03:00
|
|
|
extern w_Texture_t vrclient_translate_texture_dxvk( const w_Texture_t *texture, w_VRVulkanTextureData_t *vkdata,
|
|
|
|
IDXGIVkInteropSurface *dxvk_surface, IDXGIVkInteropDevice **p_dxvk_device,
|
|
|
|
VkImageLayout *image_layout, VkImageCreateInfo *image_info );
|
2023-09-27 00:56:43 +03:00
|
|
|
#endif /* __dxvk_interop_h__ */
|
|
|
|
|
2023-09-30 13:02:30 +03:00
|
|
|
#include "vrclient_generated.h"
|
|
|
|
|
2018-04-04 18:20:44 +03:00
|
|
|
#endif /* __cplusplus */
|