vrclient: support openvr v1.10.30

This commit is contained in:
Andrew Eikum
2020-03-18 13:50:21 -05:00
parent c7c3b3c8a7
commit bf3ca0fd4a
68 changed files with 15262 additions and 1462 deletions

View File

@ -14,6 +14,7 @@ import os
import re
sdk_versions = [
"v1.10.30",
"v1.9.16",
"v1.8.19",
"v1.7.15",
@ -72,11 +73,13 @@ files = [
"IVRChaperone",
"IVRChaperoneSetup",
"IVRCompositor",
"IVRControlPanel",
"IVRDriverManager",
"IVRExtendedDisplay",
"IVRNotifications",
"IVRInput",
"IVRIOBuffer",
"IVRMailbox",
"IVROverlay",
"IVRRenderModels",
"IVRResources",
@ -84,6 +87,8 @@ files = [
"IVRSettings",
"IVRSystem",
"IVRTrackedCamera",
"IVRHeadsetView",
"IVROverlayView",
], [ #vrclient-allocated structs
"RenderModel_t",
"RenderModel_TextureMap_t",
@ -186,6 +191,31 @@ path_conversions = [
"w2l_arrays": [],
"return_is_size": True
},
{
"parent_name": "undoc23",
"l2w_names":[],
"l2w_lens":[],
"w2l_names": ["a"],
"w2l_arrays": [False],
"return_is_size": False
},
{
"parent_name": "undoc27",
"l2w_names":[],
"l2w_lens":[],
"w2l_names": ["a"],
"w2l_arrays": [False],
"return_is_size": False
},
{
"parent_name": "SetStageOverride_Async",
"l2w_names":[],
"l2w_lens":[],
"w2l_names": ["pchRenderModelPath"],
"w2l_arrays": [False],
"return_is_size": False
},
# {#maybe?
# "parent_name": "GetRenderModelOriginalPath",
# "l2w_names":[pchOriginalPath],
@ -460,11 +490,13 @@ def handle_method(cfile, classname, winclassname, cppname, method, cpp, cpp_h, e
cpp.write(" %s lin;\n" % do_lin_to_win[0])
else:
cpp.write(" %s lin;\n" % do_win_to_lin[0])
cpp.write(" %s _ret;\n" % method.result_type.spelling)
if not method.result_type.kind == clang.cindex.TypeKind.VOID:
cpp.write(" %s _ret;\n" % method.result_type.spelling)
if do_wrap:
cpp.write(" %s *lin;\n" % do_wrap[0])
cpp.write(" %s _ret;\n" % method.result_type.spelling)
if not method.result_type.kind == clang.cindex.TypeKind.VOID:
cpp.write(" %s _ret;\n" % method.result_type.spelling)
cfile.write(" TRACE(\"%p\\n\", _this);\n")
@ -582,11 +614,12 @@ def handle_method(cfile, classname, winclassname, cppname, method, cpp, cpp_h, e
cpp.write(" if(%s)\n" % do_lin_to_win[1])
cpp.write(" struct_%s_%s_lin_to_win(&lin, %s%s);\n" % (strip_ns(do_lin_to_win[0]), display_sdkver(sdkver), do_lin_to_win[1], convert_size_param))
if do_lin_to_win or do_win_to_lin:
cpp.write(" return _ret;\n")
if do_wrap:
cpp.write(" if(_ret == 0)\n")
cpp.write(" *%s = struct_%s_%s_wrap(lin);\n" % (do_wrap[1], strip_ns(do_wrap[0]), display_sdkver(sdkver)))
cpp.write(" return _ret;\n")
if not method.result_type.kind == clang.cindex.TypeKind.VOID:
cpp.write(" return _ret;\n")
if do_wrap and not method.result_type.kind == clang.cindex.TypeKind.VOID:
cpp.write(" if(_ret == 0)\n")
cpp.write(" *%s = struct_%s_%s_wrap(lin);\n" % (do_wrap[1], strip_ns(do_wrap[0]), display_sdkver(sdkver)))
cpp.write(" return _ret;\n")
cfile.write("}\n\n")
cpp.write("}\n\n")