Commit Graph

254 Commits

Author SHA1 Message Date
Rémi Bernon
f5944b9ae5 vrclient: Generate wtou / utow struct conversion helpers.
CW-Bug-Id: #22729
2024-02-15 15:53:26 +02:00
Rémi Bernon
f1f483a443 vrclient: Generate struct definitions for all abis.
CW-Bug-Id: #22729
2024-02-15 15:53:26 +02:00
Rémi Bernon
cafc3fb8e7 vrclient: Classify struct compatibility over SDK versions.
CW-Bug-Id: #22729
2024-02-15 15:53:26 +02:00
Rémi Bernon
ee98a08f4c vrclient: Use Struct and Field class for conversions.
CW-Bug-Id: #22729
2024-02-15 15:53:26 +02:00
Rémi Bernon
d4cefca096 vrclient: Introduce new Struct generator class.
CW-Bug-Id: #22729
2024-02-15 15:53:26 +02:00
Rémi Bernon
f8cb502eea vrclient: Generate function types with ABI attributes.
CW-Bug-Id: #22729
2024-02-15 15:53:26 +02:00
Rémi Bernon
468731b011 vrclient: Generate linux interface structs.
CW-Bug-Id: #22729
2024-02-15 15:53:26 +02:00
Rémi Bernon
4988734817 vrclient: Remove unnecessary typedefs.
CW-Bug-Id: #22729
2024-02-15 15:53:26 +02:00
Rémi Bernon
0a2a3c514f vrclient: Get rid of the remaining openvr typedefs.
CW-Bug-Id: #22729
2024-02-15 15:53:26 +02:00
Rémi Bernon
aaf9ba6e56 lsteamclient: Generate functions with calling convention.
CW-Bug-Id: #22729
2024-02-15 15:53:25 +02:00
Rémi Bernon
77d381cd1d vrclient: Use standard fixed size integer types.
CW-Bug-Id: #22729
2024-02-15 15:53:25 +02:00
Rémi Bernon
af68b26a9b vrclient: Use integer types instead of enums.
CW-Bug-Id: #22729
2024-02-15 15:53:25 +02:00
Rémi Bernon
5aefaf36d8 vrclient: Update the params nSubmitFlags instead of the local variable.
CW-Bug-Id: #23000
CW-Bug-Id: #22729
2024-02-15 15:53:25 +02:00
Rémi Bernon
92ac73e803 vrclient: Wrap compositor data cleanup with parameter struct.
CW-Bug-Id: #22729
2024-02-15 15:53:25 +02:00
Rémi Bernon
e8d83b6527 vrclient: Update the submit flags in load_compositor_texture_dxvk.
CW-Bug-Id: #22729
2024-02-15 15:53:25 +02:00
Rémi Bernon
750d2689a6 vrclient: Use SOURCES instead of C(XX)_SRCS. 2024-02-15 15:53:25 +02:00
Rémi Bernon
6d9762bfef vrclient: Fix IVRCompositor_WaitGetPoses calls after struct wrapping.
And call the right versions of the interfaces.

CW-Bug-Id: #22729
2024-02-15 15:53:25 +02:00
Rémi Bernon
4fee987bf6 vrclient: Correctly assign converted paths to params members.
CW-Bug-Id: #22729
2024-02-15 15:53:25 +02:00
Rémi Bernon
fc1f3d83ee vrclient: Wrap parameters in structures.
CW-Bug-Id: #22729
2024-02-15 15:53:25 +02:00
Rémi Bernon
e4d75b2fb0 vrclient: Simplify unix side parameter conversions.
CW-Bug-Id: #22729
2024-02-15 15:53:25 +02:00
Rémi Bernon
87a65c1993 vrclient: Allocate memory for every path conversion.
CW-Bug-Id: #22729
2024-02-15 15:53:25 +02:00
Rémi Bernon
c3495c7f25 vrclient: Simplify path convertion using separate dicts.
CW-Bug-Id: #22729
2024-02-15 15:53:25 +02:00
Rémi Bernon
c67298dda0 vrclient: Inline some IVRClientCore override code.
CW-Bug-Id: #22729
2024-02-15 15:53:25 +02:00
Rémi Bernon
e812ab48ee vrclient: Use manual methods instead of generated wrappers.
CW-Bug-Id: #22729
2024-02-15 15:53:25 +02:00
Rémi Bernon
eff166af7e vrclient: Inline some IVRCompositor override code.
CW-Bug-Id: #22729
2024-02-15 15:53:25 +02:00
Rémi Bernon
c3ccae9d23 vrclient: Use manual methods for IVRCompositor overrides.
CW-Bug-Id: #22729
2024-02-15 15:53:24 +02:00
Rémi Bernon
192dc52fcd vrclient: Split IVRCompositor helpers to vrcompositor_manual.c.
CW-Bug-Id: #22729
2024-02-15 15:53:24 +02:00
Rémi Bernon
b48a38b688 vrclient: Inline some IVRInput override code.
CW-Bug-Id: #22729
2024-02-15 15:53:24 +02:00
Rémi Bernon
d21441d3ef vrclient: Use manual methods for IVRInput overrides.
CW-Bug-Id: #22729
2024-02-15 15:53:24 +02:00
Rémi Bernon
d26ee86dcd vrclient: Split IVRInput helpers to vrinput_manual.c.
CW-Bug-Id: #22729
2024-02-15 15:53:24 +02:00
Rémi Bernon
51f76d68ab vrclient: Inline some IVROverlay override code.
CW-Bug-Id: #22729
2024-02-15 15:53:24 +02:00
Rémi Bernon
5f787ff524 vrclient: Use manual methods for IVROverlay overrides.
CW-Bug-Id: #22729
2024-02-15 15:53:24 +02:00
Rémi Bernon
09a92a1ce2 vrclient: Split IVROverlay helpers to vroverlay_manual.c.
CW-Bug-Id: #22729
2024-02-15 15:53:24 +02:00
Rémi Bernon
f0887911a3 vrclient: Use manual methods for IVRRenderModels overrides.
CW-Bug-Id: #22729
2024-02-15 15:53:24 +02:00
Rémi Bernon
ef849f4822 vrclient: Split IVRRenderModels helpers to vrrendermodels_manual.c.
CW-Bug-Id: #22729
2024-02-15 15:53:24 +02:00
Rémi Bernon
17644c7bbf vrclient: Use manual methods for IVRSystem overrides.
CW-Bug-Id: #22729
2024-02-15 15:53:24 +02:00
Rémi Bernon
6b50dd5920 vrclient: Split IVRSystem helpers to vrsystem_manual.c.
CW-Bug-Id: #22729
2024-02-15 15:53:24 +02:00
Rémi Bernon
d2ef33eb25 vrclient: Use a generic interface wrapper struct.
CW-Bug-Id: #22729
2024-02-15 15:53:24 +02:00
Rémi Bernon
eb531f7764 vrclient: Remove unused wrapper generation case.
CW-Bug-Id: #22729
2024-02-15 15:53:24 +02:00
Rémi Bernon
08fe99382f vrclient: Use with statement to generate the .c files.
CW-Bug-Id: #22729
2024-02-15 15:53:24 +02:00
Rémi Bernon
f0cbd25230 vrclient: Generate the .h and .cpp files separately.
CW-Bug-Id: #22729
2024-02-15 15:53:24 +02:00
Rémi Bernon
37853f8469 vrclient: Pass write function as parameter to handle_method*.
CW-Bug-Id: #22729
2024-02-15 15:53:24 +02:00
Rémi Bernon
358f8f5841 vrclient: Consistently use the computed return type.
CW-Bug-Id: #22729
2024-02-15 15:53:24 +02:00
Rémi Bernon
bf156c5161 vrclient: Fix inconsistent const qualifier handling.
CW-Bug-Id: #22729
2024-02-15 15:53:24 +02:00
Rémi Bernon
ef91c04a22 vrclient: Always use a return result variable.
CW-Bug-Id: #22729
2024-02-15 15:53:24 +02:00
Rémi Bernon
cc38f0c8c1 vrclient: Fix incorrect size paramter passed to lin_to_win.
CW-Bug-Id: #22729
2024-02-15 15:53:24 +02:00
Rémi Bernon
dcb11c0d4b vrclient: Fix some compilation warnings.
CW-Bug-Id: #22729
2024-02-15 15:53:24 +02:00
Rémi Bernon
dd34dad5a1 vrclient: Build using makedep rules.
CW-Bug-Id: #22729
2024-02-15 15:53:24 +02:00
Rémi Bernon
5e415e552c vrclient: Cleanup C method generator.
CW-Bug-Id: #22729
2024-02-15 15:53:23 +02:00
Rémi Bernon
87cdc4fcad vrclient: Generate thiscall wrappers separately.
CW-Bug-Id: #22729
2024-02-15 15:53:23 +02:00
Rémi Bernon
0ffeec686f vrclient: Introduce a new Method cursor wrapper.
CW-Bug-Id: #22729
2024-02-15 15:53:23 +02:00
Rémi Bernon
957ce193f9 vrclient: Introduce a new Class cursor wrapper.
CW-Bug-Id: #22729
2024-02-15 15:53:23 +02:00
Rémi Bernon
5990126dad vrclient: Use the generated names in the C++ method.
CW-Bug-Id: #22729
2024-02-15 15:53:23 +02:00
Rémi Bernon
1909c6d441 vrclient: Simplify next-is-size handling a bit.
CW-Bug-Id: #22729
2024-02-15 15:53:23 +02:00
Rémi Bernon
f8a14dfd27 vrclient: Use declspec to generate C++ method signature.
CW-Bug-Id: #22729
2024-02-15 15:53:23 +02:00
Rémi Bernon
992384b88f vrclient: Use method.get_arguments instead of get_params.
CW-Bug-Id: #22729
2024-02-15 15:53:23 +02:00
Rémi Bernon
5e89fb156a vrclient: Split C++/C method generation helpers.
CW-Bug-Id: #22729
2024-02-15 15:53:23 +02:00
Rémi Bernon
f3eb7b9491 vrclient: Split cpp_h generation to a dedicated method.
CW-Bug-Id: #22729
2024-02-15 15:53:23 +02:00
Rémi Bernon
30e873331c vrclient: Return all struct abis from find_struct.
CW-Bug-Id: #22729
2024-02-15 15:53:23 +02:00
Rémi Bernon
c5a4bc1729 vrclient: Filter structs and classes while parsing.
CW-Bug-Id: #22729
2024-02-15 15:53:23 +02:00
Rémi Bernon
6a59c1377a vrclient: Use the all_records dict to lookup structs.
CW-Bug-Id: #22729
2024-02-15 15:53:23 +02:00
Rémi Bernon
2aa6fac5cb vrclient: Introduce new canonical_typename helper.
CW-Bug-Id: #22729
2024-02-15 15:53:23 +02:00
Rémi Bernon
f82c90c71a vrclient: Sort classes by their version string.
CW-Bug-Id: #22729
2024-02-15 15:53:23 +02:00
Rémi Bernon
dd7031d547 vrclient: Filter classes by version before generating.
CW-Bug-Id: #22729
2024-02-15 15:53:23 +02:00
Rémi Bernon
e6cce9236c vrclient: Parse SDK versions and ABIs in parallel.
CW-Bug-Id: #22729
2024-02-15 15:53:23 +02:00
Rémi Bernon
60876a1cc6 vrclient: Split loading, parsing, and generating steps.
CW-Bug-Id: #22729
2024-02-15 15:53:23 +02:00
Rémi Bernon
d8bb8ba6a3 vrclient: Introduce a dedicated parsing function.
CW-Bug-Id: #22729
2024-02-15 15:53:22 +02:00
Rémi Bernon
73db1a9176 vrclient: Use a dict for SDK sources / class mapping.
CW-Bug-Id: #22729
2024-02-15 15:53:22 +02:00
Rémi Bernon
ff2999e563 lsteamclient: Use a dict for SDK sources / class mapping.
CW-Bug-Id: #22729
2024-02-15 15:53:22 +02:00
Rémi Bernon
67210df56b vrclient: Use upper-case global constants.
CW-Bug-Id: #22729
2024-02-15 15:53:22 +02:00
Rémi Bernon
34f52223fc vrclient: Remove unused imports and duplicate entries.
CW-Bug-Id: #22729
2024-02-15 15:53:22 +02:00
Paul Gofman
d229821fdf vrclient: Support v1.26.7.
CW-Bug-Id: #22757
2023-12-07 13:43:40 +02:00
Paul Gofman
2f851ecb82 vrclient: Support v1.23.7. 2023-06-05 17:55:10 +03:00
Paul Gofman
967b7878e5 vrclient: Update clang path in gen_wrapper.py to 15. 2023-06-05 17:55:10 +03:00
Paul Gofman
74ae018197 vrclient: Load unwrappers from winevulkan.so. 2023-02-14 16:07:43 +02:00
Paul Gofman
a62a80be58 vrclient: Use PROTON_VR_RUNTIME from registry if env var is not there.
CW-Bug-Id: #21036
2022-08-10 19:29:30 +03:00
Arkadiusz Hiler
9a07890d7e vrclient: Remove wined3d interop.
DXVK interop is still in place.
2022-01-24 22:53:20 +02:00
Paul Gofman
dd35b33d6c vrclient: Update clang path in gen_wrapper.py to 13.0.0. 2022-01-24 22:53:20 +02:00
Rémi Bernon
a7d8aabc0d vrclient: Parse all include files at once. 2022-01-19 11:29:54 +02:00
Rémi Bernon
db7e0e7a14 vrclient: Remove unnecessary includes. 2022-01-19 11:29:54 +02:00
Rémi Bernon
fc14f36b9d vrclient: Use dicts to lookup structs in gen_wrapper.py. 2022-01-19 11:29:54 +02:00
Rémi Bernon
e868aa6e1a vrclient: Import from clang.cindex instead of prefixing. 2022-01-19 11:29:54 +02:00
Paul Gofman
450f3e8025 vrclient: HACK: Fixup digital action 'bChange' parameter on 32 bit.
CW-Bug-Id: 19067
2021-08-12 10:54:19 -05:00
Paul Gofman
d46e6aaada vrclient: Fixup size for structs with matching field offsets but mismatched size.
CW-Bug-Id: 19067
2021-08-12 10:54:19 -05:00
Paul Gofman
7c30c77105 vrclient: Return stored BMD presence from BIsHmdPresent() if client core is not initialized.
CW-Bug-Id: 18901
2021-05-13 10:06:49 -05:00
Paul Gofman
5d57ef328f vrclient: Cleanup vrclient before native library unload if the app failed to do so.
Unloading native library without the cleanup hangs. If the native
library is not unloaded explicitly the Linux process then hangs on exit.

Fixes hang on exit from Doom VFR.

Signed-off-by: Paul Gofman <pgofman@codeweavers.com>
2021-03-31 14:08:11 -05:00
Paul Gofman
52415ddaa4 vrclient: Use Vulkan texture array for d3d11 texture arrays.
Signed-off-by: Paul Gofman <pgofman@codeweavers.com>
2021-03-31 14:08:10 -05:00
Paul Gofman
e0f82e30cb vrclient: Support v1.16.8.
Signed-off-by: Paul Gofman <pgofman@codeweavers.com>
2021-03-31 14:08:10 -05:00
Paul Gofman
92b8b209f2 vrclient_x64: Translate action manifest path in startup info. 2021-03-31 14:08:10 -05:00
Paul Gofman
d2948348b0 vrclient_x64: Use staging texture for the right eye in case of submitted d3d11 texture array. 2021-03-31 14:08:10 -05:00
Paul Gofman
4f51390dde vrclient_x64: Set explicit timing mode when d3d11 application uses PostPresentHandoff. 2021-03-31 14:08:10 -05:00
Paul Gofman
66ded86b3e vrclient_x64: Use static internal compositor data.
VRCompositor ought to be a singleton. Some applications (Gravity Sketch
VR) access VRCompositor multiple times, so we need to share data between
instances.
2021-03-31 14:08:10 -05:00
Paul Gofman
74313aa478 vrclient_x64: Perform skybox textures conversion for dxvk textures. 2021-03-31 14:08:10 -05:00
Paul Gofman
98f55bfdb1 vrclient_x64: Unload native vrclient shared library on process detach. 2021-03-31 14:08:10 -05:00
Paul Gofman
89c297da9d vrclient_x64: Resolve absolute path in vrclient_dos_path_to_unix_path(). 2021-03-31 14:08:10 -05:00
Andrew Eikum
8398ebded4 update wine to 6.3 2021-03-31 14:08:09 -05:00
Paul Gofman
f5a9a2a302 vrclient_x64: Do not change handle in in ivrcompositor_submit_vulkan().
No Man's Sky is giving us vulkan handle in that handle. It looks like
the depth texture is not used by openvr, putting anything to this handle
does not trigger any fault or Vulkan validation error.
2021-02-05 08:18:54 -06:00
Matt Coffin
a2ccc70f7b vrclient: Add FIXME for wined3d in IVROverlay::SetOverlayTexture 2020-10-14 15:05:38 -05:00
Matt Coffin
1625ed00c7 vrclient: Add support for Vulkan in IVROverlay::SetOverlayTexture 2020-10-14 15:05:34 -05:00
Matt Coffin
74b7f33e98 vrclient: Add support for DXVK in IVROverlay::SetOverlayTexture 2020-10-14 15:05:31 -05:00