vrclient: Use manual methods for IVRCompositor overrides.

CW-Bug-Id: #22729
This commit is contained in:
Rémi Bernon
2023-09-27 08:43:42 +02:00
committed by Arkadiusz Hiler
parent 192dc52fcd
commit c3ccae9d23
4 changed files with 751 additions and 585 deletions

View File

@ -257,6 +257,11 @@ all_versions = {}
MANUAL_METHODS = {
"IVRSystem_GetDXGIOutputInfo": True,
"IVRSystem_GetOutputDevice": lambda ver, abi: ver > 16,
"IVRCompositor_Submit": lambda ver, abi: ver > 8,
"IVRCompositor_SetSkyboxOverride": lambda ver, abi: ver > 8,
"IVRCompositor_PostPresentHandoff": True,
"IVRCompositor_WaitGetPoses": lambda ver, abi: ver > 15 and ver < 27,
"IVRCompositor_GetVulkanDeviceExtensionsRequired": True,
"IVRRenderModels_LoadTextureD3D11_Async": True,
"IVRRenderModels_FreeTextureD3D11": True,
"IVRRenderModels_LoadIntoTextureD3D11_Async": True,
@ -290,34 +295,6 @@ def ivrclientcore_get_generic_interface(cppname, method):
def ivrclientcore_cleanup(cppname, method):
return "ivrclientcore_cleanup"
def ivrcompositor_submit(cppname, method):
if "005" in cppname:
return "ivrcompositor_005_submit"
if "006" in cppname:
return "ivrcompositor_006_submit"
if "007" in cppname:
return "ivrcompositor_007_submit"
if "008" in cppname:
return "ivrcompositor_008_submit"
return "ivrcompositor_submit"
def ivrcompositor_set_skybox_override(cppname, method):
if "008" in cppname:
return "ivrcompositor_008_set_skybox_override"
return "ivrcompositor_set_skybox_override"
def ivrcompositor_post_present_handoff(cppname, method):
return "ivrcompositor_post_present_handoff"
def ivrcompositor_wait_get_poses(cppname, method):
for version in ["016", "017", "018", "019", "020", "021", "022", "024", "026"]:
if version in cppname:
return "ivrcompositor_wait_get_poses"
return None
def ivrcompositor_get_vulkan_device_extensions_required(cppname, method):
return "ivrcompositor_get_vulkan_device_extensions_required"
def ivrmailbox_undoc3(cppname, method):
assert "001" in cppname
return "ivrmailbox_undoc3"
@ -354,11 +331,6 @@ method_overrides = [
("IVRClientCore", "Init", ivrclientcore_init),
("IVRClientCore", "GetGenericInterface", ivrclientcore_get_generic_interface),
("IVRClientCore", "Cleanup", ivrclientcore_cleanup),
("IVRCompositor", "Submit", ivrcompositor_submit),
("IVRCompositor", "SetSkyboxOverride", ivrcompositor_set_skybox_override),
("IVRCompositor", "PostPresentHandoff", ivrcompositor_post_present_handoff),
("IVRCompositor", "WaitGetPoses", ivrcompositor_wait_get_poses),
("IVRCompositor", "GetVulkanDeviceExtensionsRequired", ivrcompositor_get_vulkan_device_extensions_required),
("IVRMailbox", "undoc3", ivrmailbox_undoc3),
]
@ -694,6 +666,9 @@ def handle_method_c(klass, method, winclassname, cppname, out):
out(u' TRACE("%p\\n", _this);\n')
if 'eTextureType' in names:
out(u' if (eTextureType == API_DirectX) FIXME( "Not implemented Direct3D API!\\n" );\n')
if returns_record:
out(u' *_ret = ')
elif not returns_void: