vrclient: Fix x64 thunks for C API.

* Clean up the stack properly.
* Do not push parameters after shadow register space.
This commit is contained in:
Józef Kucia 2018-07-26 17:02:25 +02:00 committed by Andrew Eikum
parent 5c4e0ab079
commit 23ffdc5ec8
20 changed files with 2438 additions and 2382 deletions

View File

@ -1,6 +1,5 @@
/* asm thunks for the flat (FnTable) API */
extern void call_flat_method(void);
#ifdef __i386__
#include "pshpack1.h"
struct thunk
@ -15,7 +14,9 @@ struct thunk
};
#include "poppack.h"
static inline void init_thunk( struct thunk *thunk, void *this, void *proc )
extern void call_flat_method(void);
static inline void init_thunk( struct thunk *thunk, void *this, void *proc, int param_count )
{
thunk->mov_ecx = 0xb9;
thunk->this = this;
@ -48,12 +49,27 @@ static const struct thunk thunk_template =
{ 0xff, 0xe0 } /* jmp *%rax */
};
static inline void init_thunk( struct thunk *thunk, void *this, void *proc )
typedef void (*pfn_call_flat_method)(void);
extern void call_flat_method3(void);
extern void call_flat_method4(void);
extern void call_flat_method9(void);
static inline pfn_call_flat_method get_call_flat_method_pfn( int param_count )
{
if (param_count <= 3)
return call_flat_method3;
if (param_count <= 4)
return call_flat_method4;
return call_flat_method9;
}
static inline void init_thunk( struct thunk *thunk, void *this, void *proc, int param_count )
{
*thunk = thunk_template;
thunk->this = this;
thunk->proc = proc;
thunk->call_flat = call_flat_method;
thunk->call_flat = get_call_flat_method_pfn(param_count);
}
#endif

View File

@ -125,6 +125,9 @@ print_sizes = []
class_versions = {}
def get_param_count(f):
return len([p for p in f.get_children() if p.kind == clang.cindex.CursorKind.PARM_DECL])
def ivrclientcore_init(cppname, method):
if "002" in cppname:
return "ivrclientcore_002_init"
@ -137,7 +140,7 @@ def ivrclientcore_cleanup(cppname, method):
return "ivrclientcore_cleanup"
def ivrsystem_get_dxgi_output_info(cppname, method):
param_count = len([p for p in method.get_children() if p.kind == clang.cindex.CursorKind.PARM_DECL])
param_count = get_param_count(method)
return {
1: "get_dxgi_output_info",
2: "get_dxgi_output_info2"
@ -461,9 +464,11 @@ WINE_DEFAULT_DEBUG_CHANNEL(vrclient);
break
cfile.write("} %s;\n\n" % winclassname)
methods = []
methods_param_count = []
for child in children:
if child.kind == clang.cindex.CursorKind.CXX_METHOD:
methods.append(handle_method(cfile, classnode.spelling, winclassname, cppname, child, cpp, cpp_h, methods, iface_version))
methods_param_count.append(get_param_count(child))
cfile.write("extern vtable_ptr %s_vtable;\n\n" % winclassname)
cfile.write("#ifndef __GNUC__\n")
@ -499,7 +504,11 @@ WINE_DEFAULT_DEBUG_CHANNEL(vrclient);
cfile.write(" int i;\n\n")
cfile.write(" TRACE(\"-> %p, vtable %p, thunks %p\\n\", r, vtable, thunks);\n")
for i in range(len(methods)):
cfile.write(" init_thunk(&thunks[%d], r, %s_%s);\n" %(i, winclassname, methods[i]))
param_count = methods_param_count[i]
if param_count > 9:
# Additional call_flat_method() variants are needed to handle more parameters.
sys.exit("Unhandled parameter count %s for method %s" % (param_count, methods[i]))
cfile.write(" init_thunk(&thunks[%d], r, %s_%s, %s);\n" % (i, winclassname, methods[i], param_count))
cfile.write(" for (i = 0; i < %d; i++)\n" % len(methods))
cfile.write(" vtable[i] = &thunks[i];\n")
cfile.write(" r->linux_side = linux_side;\n")

View File

@ -919,13 +919,44 @@ __ASM_GLOBAL_FUNC(call_flat_method,
"pushl %eax\n\t"
"jmp *%edx");
#else
__ASM_GLOBAL_FUNC(call_flat_method,
"popq %rax\n\t" // return address
"pushq %r9\n\t"
"pushq %rax\n\t"
// handles "this" and up to 3 parameters
__ASM_GLOBAL_FUNC(call_flat_method3,
"movq %r8, %r9\n\t" // shift over arguments
"movq %rdx, %r8\n\t"
"movq %rcx, %rdx\n\t"
"movq %r10, %rcx\n\t" // add This pointer
"jmp *%r11");
__ASM_GLOBAL_FUNC(call_flat_method4,
"subq $0x28, %rsp\n\t" // shadow register space and 1 parameter
"movq %r9, 0x20(%rsp)\n\t"
"movq %r8, %r9\n\t" // shift over arguments
"movq %rdx, %r8\n\t"
"movq %rcx, %rdx\n\t"
"movq %r10, %rcx\n\t" // add This pointer
"call *%r11\n\t"
"addq $0x28, %rsp\n\t"
"ret");
// handles "this" and up to 9 parameters
__ASM_GLOBAL_FUNC(call_flat_method9,
"subq $0x58, %rsp\n\t" // shadow register space and 6 parameters
"movq %r9, 0x20(%rsp)\n\t"
"movq 0x80(%rsp), %rax\n\t" // copy parameters
"movq %rax, 0x28(%rsp)\n\t"
"movq 0x88(%rsp), %rax\n\t"
"movq %rax, 0x30(%rsp)\n\t"
"movq 0x90(%rsp), %rax\n\t"
"movq %rax, 0x38(%rsp)\n\t"
"movq 0x98(%rsp), %rax\n\t"
"movq %rax, 0x40(%rsp)\n\t"
"movq 0xa0(%rsp), %rax\n\t"
"movq %rax, 0x48(%rsp)\n\t"
"movq %r8, %r9\n\t" // shift over arguments
"movq %rdx, %r8\n\t"
"movq %rcx, %rdx\n\t"
"movq %r10, %rcx\n\t" // add This pointer
"call *%r11\n\t"
"addq $0x58, %rsp\n\t"
"ret");
#endif

View File

@ -307,37 +307,37 @@ winIVRApplications_IVRApplications_006 *create_winIVRApplications_IVRApplication
int i;
TRACE("-> %p, vtable %p, thunks %p\n", r, vtable, thunks);
init_thunk(&thunks[0], r, winIVRApplications_IVRApplications_006_AddApplicationManifest);
init_thunk(&thunks[1], r, winIVRApplications_IVRApplications_006_RemoveApplicationManifest);
init_thunk(&thunks[2], r, winIVRApplications_IVRApplications_006_IsApplicationInstalled);
init_thunk(&thunks[3], r, winIVRApplications_IVRApplications_006_GetApplicationCount);
init_thunk(&thunks[4], r, winIVRApplications_IVRApplications_006_GetApplicationKeyByIndex);
init_thunk(&thunks[5], r, winIVRApplications_IVRApplications_006_GetApplicationKeyByProcessId);
init_thunk(&thunks[6], r, winIVRApplications_IVRApplications_006_LaunchApplication);
init_thunk(&thunks[7], r, winIVRApplications_IVRApplications_006_LaunchTemplateApplication);
init_thunk(&thunks[8], r, winIVRApplications_IVRApplications_006_LaunchApplicationFromMimeType);
init_thunk(&thunks[9], r, winIVRApplications_IVRApplications_006_LaunchDashboardOverlay);
init_thunk(&thunks[10], r, winIVRApplications_IVRApplications_006_CancelApplicationLaunch);
init_thunk(&thunks[11], r, winIVRApplications_IVRApplications_006_IdentifyApplication);
init_thunk(&thunks[12], r, winIVRApplications_IVRApplications_006_GetApplicationProcessId);
init_thunk(&thunks[13], r, winIVRApplications_IVRApplications_006_GetApplicationsErrorNameFromEnum);
init_thunk(&thunks[14], r, winIVRApplications_IVRApplications_006_GetApplicationPropertyString);
init_thunk(&thunks[15], r, winIVRApplications_IVRApplications_006_GetApplicationPropertyBool);
init_thunk(&thunks[16], r, winIVRApplications_IVRApplications_006_GetApplicationPropertyUint64);
init_thunk(&thunks[17], r, winIVRApplications_IVRApplications_006_SetApplicationAutoLaunch);
init_thunk(&thunks[18], r, winIVRApplications_IVRApplications_006_GetApplicationAutoLaunch);
init_thunk(&thunks[19], r, winIVRApplications_IVRApplications_006_SetDefaultApplicationForMimeType);
init_thunk(&thunks[20], r, winIVRApplications_IVRApplications_006_GetDefaultApplicationForMimeType);
init_thunk(&thunks[21], r, winIVRApplications_IVRApplications_006_GetApplicationSupportedMimeTypes);
init_thunk(&thunks[22], r, winIVRApplications_IVRApplications_006_GetApplicationsThatSupportMimeType);
init_thunk(&thunks[23], r, winIVRApplications_IVRApplications_006_GetApplicationLaunchArguments);
init_thunk(&thunks[24], r, winIVRApplications_IVRApplications_006_GetStartingApplication);
init_thunk(&thunks[25], r, winIVRApplications_IVRApplications_006_GetTransitionState);
init_thunk(&thunks[26], r, winIVRApplications_IVRApplications_006_PerformApplicationPrelaunchCheck);
init_thunk(&thunks[27], r, winIVRApplications_IVRApplications_006_GetApplicationsTransitionStateNameFromEnum);
init_thunk(&thunks[28], r, winIVRApplications_IVRApplications_006_IsQuitUserPromptRequested);
init_thunk(&thunks[29], r, winIVRApplications_IVRApplications_006_LaunchInternalProcess);
init_thunk(&thunks[30], r, winIVRApplications_IVRApplications_006_GetCurrentSceneProcessId);
init_thunk(&thunks[0], r, winIVRApplications_IVRApplications_006_AddApplicationManifest, 2);
init_thunk(&thunks[1], r, winIVRApplications_IVRApplications_006_RemoveApplicationManifest, 1);
init_thunk(&thunks[2], r, winIVRApplications_IVRApplications_006_IsApplicationInstalled, 1);
init_thunk(&thunks[3], r, winIVRApplications_IVRApplications_006_GetApplicationCount, 0);
init_thunk(&thunks[4], r, winIVRApplications_IVRApplications_006_GetApplicationKeyByIndex, 3);
init_thunk(&thunks[5], r, winIVRApplications_IVRApplications_006_GetApplicationKeyByProcessId, 3);
init_thunk(&thunks[6], r, winIVRApplications_IVRApplications_006_LaunchApplication, 1);
init_thunk(&thunks[7], r, winIVRApplications_IVRApplications_006_LaunchTemplateApplication, 4);
init_thunk(&thunks[8], r, winIVRApplications_IVRApplications_006_LaunchApplicationFromMimeType, 2);
init_thunk(&thunks[9], r, winIVRApplications_IVRApplications_006_LaunchDashboardOverlay, 1);
init_thunk(&thunks[10], r, winIVRApplications_IVRApplications_006_CancelApplicationLaunch, 1);
init_thunk(&thunks[11], r, winIVRApplications_IVRApplications_006_IdentifyApplication, 2);
init_thunk(&thunks[12], r, winIVRApplications_IVRApplications_006_GetApplicationProcessId, 1);
init_thunk(&thunks[13], r, winIVRApplications_IVRApplications_006_GetApplicationsErrorNameFromEnum, 1);
init_thunk(&thunks[14], r, winIVRApplications_IVRApplications_006_GetApplicationPropertyString, 5);
init_thunk(&thunks[15], r, winIVRApplications_IVRApplications_006_GetApplicationPropertyBool, 3);
init_thunk(&thunks[16], r, winIVRApplications_IVRApplications_006_GetApplicationPropertyUint64, 3);
init_thunk(&thunks[17], r, winIVRApplications_IVRApplications_006_SetApplicationAutoLaunch, 2);
init_thunk(&thunks[18], r, winIVRApplications_IVRApplications_006_GetApplicationAutoLaunch, 1);
init_thunk(&thunks[19], r, winIVRApplications_IVRApplications_006_SetDefaultApplicationForMimeType, 2);
init_thunk(&thunks[20], r, winIVRApplications_IVRApplications_006_GetDefaultApplicationForMimeType, 3);
init_thunk(&thunks[21], r, winIVRApplications_IVRApplications_006_GetApplicationSupportedMimeTypes, 3);
init_thunk(&thunks[22], r, winIVRApplications_IVRApplications_006_GetApplicationsThatSupportMimeType, 3);
init_thunk(&thunks[23], r, winIVRApplications_IVRApplications_006_GetApplicationLaunchArguments, 3);
init_thunk(&thunks[24], r, winIVRApplications_IVRApplications_006_GetStartingApplication, 2);
init_thunk(&thunks[25], r, winIVRApplications_IVRApplications_006_GetTransitionState, 0);
init_thunk(&thunks[26], r, winIVRApplications_IVRApplications_006_PerformApplicationPrelaunchCheck, 1);
init_thunk(&thunks[27], r, winIVRApplications_IVRApplications_006_GetApplicationsTransitionStateNameFromEnum, 1);
init_thunk(&thunks[28], r, winIVRApplications_IVRApplications_006_IsQuitUserPromptRequested, 0);
init_thunk(&thunks[29], r, winIVRApplications_IVRApplications_006_LaunchInternalProcess, 3);
init_thunk(&thunks[30], r, winIVRApplications_IVRApplications_006_GetCurrentSceneProcessId, 0);
for (i = 0; i < 31; i++)
vtable[i] = &thunks[i];
r->linux_side = linux_side;
@ -587,30 +587,30 @@ winIVRApplications_IVRApplications_005 *create_winIVRApplications_IVRApplication
int i;
TRACE("-> %p, vtable %p, thunks %p\n", r, vtable, thunks);
init_thunk(&thunks[0], r, winIVRApplications_IVRApplications_005_AddApplicationManifest);
init_thunk(&thunks[1], r, winIVRApplications_IVRApplications_005_RemoveApplicationManifest);
init_thunk(&thunks[2], r, winIVRApplications_IVRApplications_005_IsApplicationInstalled);
init_thunk(&thunks[3], r, winIVRApplications_IVRApplications_005_GetApplicationCount);
init_thunk(&thunks[4], r, winIVRApplications_IVRApplications_005_GetApplicationKeyByIndex);
init_thunk(&thunks[5], r, winIVRApplications_IVRApplications_005_GetApplicationKeyByProcessId);
init_thunk(&thunks[6], r, winIVRApplications_IVRApplications_005_LaunchApplication);
init_thunk(&thunks[7], r, winIVRApplications_IVRApplications_005_LaunchTemplateApplication);
init_thunk(&thunks[8], r, winIVRApplications_IVRApplications_005_LaunchDashboardOverlay);
init_thunk(&thunks[9], r, winIVRApplications_IVRApplications_005_CancelApplicationLaunch);
init_thunk(&thunks[10], r, winIVRApplications_IVRApplications_005_IdentifyApplication);
init_thunk(&thunks[11], r, winIVRApplications_IVRApplications_005_GetApplicationProcessId);
init_thunk(&thunks[12], r, winIVRApplications_IVRApplications_005_GetApplicationsErrorNameFromEnum);
init_thunk(&thunks[13], r, winIVRApplications_IVRApplications_005_GetApplicationPropertyString);
init_thunk(&thunks[14], r, winIVRApplications_IVRApplications_005_GetApplicationPropertyBool);
init_thunk(&thunks[15], r, winIVRApplications_IVRApplications_005_GetApplicationPropertyUint64);
init_thunk(&thunks[16], r, winIVRApplications_IVRApplications_005_SetApplicationAutoLaunch);
init_thunk(&thunks[17], r, winIVRApplications_IVRApplications_005_GetApplicationAutoLaunch);
init_thunk(&thunks[18], r, winIVRApplications_IVRApplications_005_GetStartingApplication);
init_thunk(&thunks[19], r, winIVRApplications_IVRApplications_005_GetTransitionState);
init_thunk(&thunks[20], r, winIVRApplications_IVRApplications_005_PerformApplicationPrelaunchCheck);
init_thunk(&thunks[21], r, winIVRApplications_IVRApplications_005_GetApplicationsTransitionStateNameFromEnum);
init_thunk(&thunks[22], r, winIVRApplications_IVRApplications_005_IsQuitUserPromptRequested);
init_thunk(&thunks[23], r, winIVRApplications_IVRApplications_005_LaunchInternalProcess);
init_thunk(&thunks[0], r, winIVRApplications_IVRApplications_005_AddApplicationManifest, 2);
init_thunk(&thunks[1], r, winIVRApplications_IVRApplications_005_RemoveApplicationManifest, 1);
init_thunk(&thunks[2], r, winIVRApplications_IVRApplications_005_IsApplicationInstalled, 1);
init_thunk(&thunks[3], r, winIVRApplications_IVRApplications_005_GetApplicationCount, 0);
init_thunk(&thunks[4], r, winIVRApplications_IVRApplications_005_GetApplicationKeyByIndex, 3);
init_thunk(&thunks[5], r, winIVRApplications_IVRApplications_005_GetApplicationKeyByProcessId, 3);
init_thunk(&thunks[6], r, winIVRApplications_IVRApplications_005_LaunchApplication, 1);
init_thunk(&thunks[7], r, winIVRApplications_IVRApplications_005_LaunchTemplateApplication, 4);
init_thunk(&thunks[8], r, winIVRApplications_IVRApplications_005_LaunchDashboardOverlay, 1);
init_thunk(&thunks[9], r, winIVRApplications_IVRApplications_005_CancelApplicationLaunch, 1);
init_thunk(&thunks[10], r, winIVRApplications_IVRApplications_005_IdentifyApplication, 2);
init_thunk(&thunks[11], r, winIVRApplications_IVRApplications_005_GetApplicationProcessId, 1);
init_thunk(&thunks[12], r, winIVRApplications_IVRApplications_005_GetApplicationsErrorNameFromEnum, 1);
init_thunk(&thunks[13], r, winIVRApplications_IVRApplications_005_GetApplicationPropertyString, 5);
init_thunk(&thunks[14], r, winIVRApplications_IVRApplications_005_GetApplicationPropertyBool, 3);
init_thunk(&thunks[15], r, winIVRApplications_IVRApplications_005_GetApplicationPropertyUint64, 3);
init_thunk(&thunks[16], r, winIVRApplications_IVRApplications_005_SetApplicationAutoLaunch, 2);
init_thunk(&thunks[17], r, winIVRApplications_IVRApplications_005_GetApplicationAutoLaunch, 1);
init_thunk(&thunks[18], r, winIVRApplications_IVRApplications_005_GetStartingApplication, 2);
init_thunk(&thunks[19], r, winIVRApplications_IVRApplications_005_GetTransitionState, 0);
init_thunk(&thunks[20], r, winIVRApplications_IVRApplications_005_PerformApplicationPrelaunchCheck, 1);
init_thunk(&thunks[21], r, winIVRApplications_IVRApplications_005_GetApplicationsTransitionStateNameFromEnum, 1);
init_thunk(&thunks[22], r, winIVRApplications_IVRApplications_005_IsQuitUserPromptRequested, 0);
init_thunk(&thunks[23], r, winIVRApplications_IVRApplications_005_LaunchInternalProcess, 3);
for (i = 0; i < 24; i++)
vtable[i] = &thunks[i];
r->linux_side = linux_side;
@ -852,29 +852,29 @@ winIVRApplications_IVRApplications_004 *create_winIVRApplications_IVRApplication
int i;
TRACE("-> %p, vtable %p, thunks %p\n", r, vtable, thunks);
init_thunk(&thunks[0], r, winIVRApplications_IVRApplications_004_AddApplicationManifest);
init_thunk(&thunks[1], r, winIVRApplications_IVRApplications_004_RemoveApplicationManifest);
init_thunk(&thunks[2], r, winIVRApplications_IVRApplications_004_IsApplicationInstalled);
init_thunk(&thunks[3], r, winIVRApplications_IVRApplications_004_GetApplicationCount);
init_thunk(&thunks[4], r, winIVRApplications_IVRApplications_004_GetApplicationKeyByIndex);
init_thunk(&thunks[5], r, winIVRApplications_IVRApplications_004_GetApplicationKeyByProcessId);
init_thunk(&thunks[6], r, winIVRApplications_IVRApplications_004_LaunchApplication);
init_thunk(&thunks[7], r, winIVRApplications_IVRApplications_004_LaunchDashboardOverlay);
init_thunk(&thunks[8], r, winIVRApplications_IVRApplications_004_CancelApplicationLaunch);
init_thunk(&thunks[9], r, winIVRApplications_IVRApplications_004_IdentifyApplication);
init_thunk(&thunks[10], r, winIVRApplications_IVRApplications_004_GetApplicationProcessId);
init_thunk(&thunks[11], r, winIVRApplications_IVRApplications_004_GetApplicationsErrorNameFromEnum);
init_thunk(&thunks[12], r, winIVRApplications_IVRApplications_004_GetApplicationPropertyString);
init_thunk(&thunks[13], r, winIVRApplications_IVRApplications_004_GetApplicationPropertyBool);
init_thunk(&thunks[14], r, winIVRApplications_IVRApplications_004_GetApplicationPropertyUint64);
init_thunk(&thunks[15], r, winIVRApplications_IVRApplications_004_SetApplicationAutoLaunch);
init_thunk(&thunks[16], r, winIVRApplications_IVRApplications_004_GetApplicationAutoLaunch);
init_thunk(&thunks[17], r, winIVRApplications_IVRApplications_004_GetStartingApplication);
init_thunk(&thunks[18], r, winIVRApplications_IVRApplications_004_GetTransitionState);
init_thunk(&thunks[19], r, winIVRApplications_IVRApplications_004_PerformApplicationPrelaunchCheck);
init_thunk(&thunks[20], r, winIVRApplications_IVRApplications_004_GetApplicationsTransitionStateNameFromEnum);
init_thunk(&thunks[21], r, winIVRApplications_IVRApplications_004_IsQuitUserPromptRequested);
init_thunk(&thunks[22], r, winIVRApplications_IVRApplications_004_LaunchInternalProcess);
init_thunk(&thunks[0], r, winIVRApplications_IVRApplications_004_AddApplicationManifest, 2);
init_thunk(&thunks[1], r, winIVRApplications_IVRApplications_004_RemoveApplicationManifest, 1);
init_thunk(&thunks[2], r, winIVRApplications_IVRApplications_004_IsApplicationInstalled, 1);
init_thunk(&thunks[3], r, winIVRApplications_IVRApplications_004_GetApplicationCount, 0);
init_thunk(&thunks[4], r, winIVRApplications_IVRApplications_004_GetApplicationKeyByIndex, 3);
init_thunk(&thunks[5], r, winIVRApplications_IVRApplications_004_GetApplicationKeyByProcessId, 3);
init_thunk(&thunks[6], r, winIVRApplications_IVRApplications_004_LaunchApplication, 1);
init_thunk(&thunks[7], r, winIVRApplications_IVRApplications_004_LaunchDashboardOverlay, 1);
init_thunk(&thunks[8], r, winIVRApplications_IVRApplications_004_CancelApplicationLaunch, 1);
init_thunk(&thunks[9], r, winIVRApplications_IVRApplications_004_IdentifyApplication, 2);
init_thunk(&thunks[10], r, winIVRApplications_IVRApplications_004_GetApplicationProcessId, 1);
init_thunk(&thunks[11], r, winIVRApplications_IVRApplications_004_GetApplicationsErrorNameFromEnum, 1);
init_thunk(&thunks[12], r, winIVRApplications_IVRApplications_004_GetApplicationPropertyString, 5);
init_thunk(&thunks[13], r, winIVRApplications_IVRApplications_004_GetApplicationPropertyBool, 3);
init_thunk(&thunks[14], r, winIVRApplications_IVRApplications_004_GetApplicationPropertyUint64, 3);
init_thunk(&thunks[15], r, winIVRApplications_IVRApplications_004_SetApplicationAutoLaunch, 2);
init_thunk(&thunks[16], r, winIVRApplications_IVRApplications_004_GetApplicationAutoLaunch, 1);
init_thunk(&thunks[17], r, winIVRApplications_IVRApplications_004_GetStartingApplication, 2);
init_thunk(&thunks[18], r, winIVRApplications_IVRApplications_004_GetTransitionState, 0);
init_thunk(&thunks[19], r, winIVRApplications_IVRApplications_004_PerformApplicationPrelaunchCheck, 1);
init_thunk(&thunks[20], r, winIVRApplications_IVRApplications_004_GetApplicationsTransitionStateNameFromEnum, 1);
init_thunk(&thunks[21], r, winIVRApplications_IVRApplications_004_IsQuitUserPromptRequested, 0);
init_thunk(&thunks[22], r, winIVRApplications_IVRApplications_004_LaunchInternalProcess, 3);
for (i = 0; i < 23; i++)
vtable[i] = &thunks[i];
r->linux_side = linux_side;
@ -1100,27 +1100,27 @@ winIVRApplications_IVRApplications_003 *create_winIVRApplications_IVRApplication
int i;
TRACE("-> %p, vtable %p, thunks %p\n", r, vtable, thunks);
init_thunk(&thunks[0], r, winIVRApplications_IVRApplications_003_AddApplicationManifest);
init_thunk(&thunks[1], r, winIVRApplications_IVRApplications_003_RemoveApplicationManifest);
init_thunk(&thunks[2], r, winIVRApplications_IVRApplications_003_IsApplicationInstalled);
init_thunk(&thunks[3], r, winIVRApplications_IVRApplications_003_GetApplicationCount);
init_thunk(&thunks[4], r, winIVRApplications_IVRApplications_003_GetApplicationKeyByIndex);
init_thunk(&thunks[5], r, winIVRApplications_IVRApplications_003_GetApplicationKeyByProcessId);
init_thunk(&thunks[6], r, winIVRApplications_IVRApplications_003_LaunchApplication);
init_thunk(&thunks[7], r, winIVRApplications_IVRApplications_003_LaunchDashboardOverlay);
init_thunk(&thunks[8], r, winIVRApplications_IVRApplications_003_IdentifyApplication);
init_thunk(&thunks[9], r, winIVRApplications_IVRApplications_003_GetApplicationProcessId);
init_thunk(&thunks[10], r, winIVRApplications_IVRApplications_003_GetApplicationsErrorNameFromEnum);
init_thunk(&thunks[11], r, winIVRApplications_IVRApplications_003_GetApplicationPropertyString);
init_thunk(&thunks[12], r, winIVRApplications_IVRApplications_003_GetApplicationPropertyBool);
init_thunk(&thunks[13], r, winIVRApplications_IVRApplications_003_GetApplicationPropertyUint64);
init_thunk(&thunks[14], r, winIVRApplications_IVRApplications_003_SetApplicationAutoLaunch);
init_thunk(&thunks[15], r, winIVRApplications_IVRApplications_003_GetApplicationAutoLaunch);
init_thunk(&thunks[16], r, winIVRApplications_IVRApplications_003_GetStartingApplication);
init_thunk(&thunks[17], r, winIVRApplications_IVRApplications_003_GetTransitionState);
init_thunk(&thunks[18], r, winIVRApplications_IVRApplications_003_PerformApplicationPrelaunchCheck);
init_thunk(&thunks[19], r, winIVRApplications_IVRApplications_003_GetApplicationsTransitionStateNameFromEnum);
init_thunk(&thunks[20], r, winIVRApplications_IVRApplications_003_IsQuitUserPromptRequested);
init_thunk(&thunks[0], r, winIVRApplications_IVRApplications_003_AddApplicationManifest, 2);
init_thunk(&thunks[1], r, winIVRApplications_IVRApplications_003_RemoveApplicationManifest, 1);
init_thunk(&thunks[2], r, winIVRApplications_IVRApplications_003_IsApplicationInstalled, 1);
init_thunk(&thunks[3], r, winIVRApplications_IVRApplications_003_GetApplicationCount, 0);
init_thunk(&thunks[4], r, winIVRApplications_IVRApplications_003_GetApplicationKeyByIndex, 3);
init_thunk(&thunks[5], r, winIVRApplications_IVRApplications_003_GetApplicationKeyByProcessId, 3);
init_thunk(&thunks[6], r, winIVRApplications_IVRApplications_003_LaunchApplication, 1);
init_thunk(&thunks[7], r, winIVRApplications_IVRApplications_003_LaunchDashboardOverlay, 1);
init_thunk(&thunks[8], r, winIVRApplications_IVRApplications_003_IdentifyApplication, 2);
init_thunk(&thunks[9], r, winIVRApplications_IVRApplications_003_GetApplicationProcessId, 1);
init_thunk(&thunks[10], r, winIVRApplications_IVRApplications_003_GetApplicationsErrorNameFromEnum, 1);
init_thunk(&thunks[11], r, winIVRApplications_IVRApplications_003_GetApplicationPropertyString, 5);
init_thunk(&thunks[12], r, winIVRApplications_IVRApplications_003_GetApplicationPropertyBool, 3);
init_thunk(&thunks[13], r, winIVRApplications_IVRApplications_003_GetApplicationPropertyUint64, 3);
init_thunk(&thunks[14], r, winIVRApplications_IVRApplications_003_SetApplicationAutoLaunch, 2);
init_thunk(&thunks[15], r, winIVRApplications_IVRApplications_003_GetApplicationAutoLaunch, 1);
init_thunk(&thunks[16], r, winIVRApplications_IVRApplications_003_GetStartingApplication, 2);
init_thunk(&thunks[17], r, winIVRApplications_IVRApplications_003_GetTransitionState, 0);
init_thunk(&thunks[18], r, winIVRApplications_IVRApplications_003_PerformApplicationPrelaunchCheck, 1);
init_thunk(&thunks[19], r, winIVRApplications_IVRApplications_003_GetApplicationsTransitionStateNameFromEnum, 1);
init_thunk(&thunks[20], r, winIVRApplications_IVRApplications_003_IsQuitUserPromptRequested, 0);
for (i = 0; i < 21; i++)
vtable[i] = &thunks[i];
r->linux_side = linux_side;
@ -1338,26 +1338,26 @@ winIVRApplications_IVRApplications_002 *create_winIVRApplications_IVRApplication
int i;
TRACE("-> %p, vtable %p, thunks %p\n", r, vtable, thunks);
init_thunk(&thunks[0], r, winIVRApplications_IVRApplications_002_AddApplicationManifest);
init_thunk(&thunks[1], r, winIVRApplications_IVRApplications_002_RemoveApplicationManifest);
init_thunk(&thunks[2], r, winIVRApplications_IVRApplications_002_IsApplicationInstalled);
init_thunk(&thunks[3], r, winIVRApplications_IVRApplications_002_GetApplicationCount);
init_thunk(&thunks[4], r, winIVRApplications_IVRApplications_002_GetApplicationKeyByIndex);
init_thunk(&thunks[5], r, winIVRApplications_IVRApplications_002_GetApplicationKeyByProcessId);
init_thunk(&thunks[6], r, winIVRApplications_IVRApplications_002_LaunchApplication);
init_thunk(&thunks[7], r, winIVRApplications_IVRApplications_002_LaunchDashboardOverlay);
init_thunk(&thunks[8], r, winIVRApplications_IVRApplications_002_IdentifyApplication);
init_thunk(&thunks[9], r, winIVRApplications_IVRApplications_002_GetApplicationProcessId);
init_thunk(&thunks[10], r, winIVRApplications_IVRApplications_002_GetApplicationsErrorNameFromEnum);
init_thunk(&thunks[11], r, winIVRApplications_IVRApplications_002_GetApplicationPropertyString);
init_thunk(&thunks[12], r, winIVRApplications_IVRApplications_002_GetApplicationPropertyBool);
init_thunk(&thunks[13], r, winIVRApplications_IVRApplications_002_SetApplicationAutoLaunch);
init_thunk(&thunks[14], r, winIVRApplications_IVRApplications_002_GetApplicationAutoLaunch);
init_thunk(&thunks[15], r, winIVRApplications_IVRApplications_002_GetStartingApplication);
init_thunk(&thunks[16], r, winIVRApplications_IVRApplications_002_GetTransitionState);
init_thunk(&thunks[17], r, winIVRApplications_IVRApplications_002_PerformApplicationPrelaunchCheck);
init_thunk(&thunks[18], r, winIVRApplications_IVRApplications_002_GetApplicationsTransitionStateNameFromEnum);
init_thunk(&thunks[19], r, winIVRApplications_IVRApplications_002_IsQuitUserPromptRequested);
init_thunk(&thunks[0], r, winIVRApplications_IVRApplications_002_AddApplicationManifest, 2);
init_thunk(&thunks[1], r, winIVRApplications_IVRApplications_002_RemoveApplicationManifest, 1);
init_thunk(&thunks[2], r, winIVRApplications_IVRApplications_002_IsApplicationInstalled, 1);
init_thunk(&thunks[3], r, winIVRApplications_IVRApplications_002_GetApplicationCount, 0);
init_thunk(&thunks[4], r, winIVRApplications_IVRApplications_002_GetApplicationKeyByIndex, 3);
init_thunk(&thunks[5], r, winIVRApplications_IVRApplications_002_GetApplicationKeyByProcessId, 3);
init_thunk(&thunks[6], r, winIVRApplications_IVRApplications_002_LaunchApplication, 1);
init_thunk(&thunks[7], r, winIVRApplications_IVRApplications_002_LaunchDashboardOverlay, 1);
init_thunk(&thunks[8], r, winIVRApplications_IVRApplications_002_IdentifyApplication, 2);
init_thunk(&thunks[9], r, winIVRApplications_IVRApplications_002_GetApplicationProcessId, 1);
init_thunk(&thunks[10], r, winIVRApplications_IVRApplications_002_GetApplicationsErrorNameFromEnum, 1);
init_thunk(&thunks[11], r, winIVRApplications_IVRApplications_002_GetApplicationPropertyString, 5);
init_thunk(&thunks[12], r, winIVRApplications_IVRApplications_002_GetApplicationPropertyBool, 3);
init_thunk(&thunks[13], r, winIVRApplications_IVRApplications_002_SetApplicationAutoLaunch, 2);
init_thunk(&thunks[14], r, winIVRApplications_IVRApplications_002_GetApplicationAutoLaunch, 1);
init_thunk(&thunks[15], r, winIVRApplications_IVRApplications_002_GetStartingApplication, 2);
init_thunk(&thunks[16], r, winIVRApplications_IVRApplications_002_GetTransitionState, 0);
init_thunk(&thunks[17], r, winIVRApplications_IVRApplications_002_PerformApplicationPrelaunchCheck, 1);
init_thunk(&thunks[18], r, winIVRApplications_IVRApplications_002_GetApplicationsTransitionStateNameFromEnum, 1);
init_thunk(&thunks[19], r, winIVRApplications_IVRApplications_002_IsQuitUserPromptRequested, 0);
for (i = 0; i < 20; i++)
vtable[i] = &thunks[i];
r->linux_side = linux_side;
@ -1583,27 +1583,27 @@ winIVRApplications_IVRApplications_001 *create_winIVRApplications_IVRApplication
int i;
TRACE("-> %p, vtable %p, thunks %p\n", r, vtable, thunks);
init_thunk(&thunks[0], r, winIVRApplications_IVRApplications_001_AddApplicationManifest);
init_thunk(&thunks[1], r, winIVRApplications_IVRApplications_001_RemoveApplicationManifest);
init_thunk(&thunks[2], r, winIVRApplications_IVRApplications_001_IsApplicationInstalled);
init_thunk(&thunks[3], r, winIVRApplications_IVRApplications_001_GetApplicationCount);
init_thunk(&thunks[4], r, winIVRApplications_IVRApplications_001_GetApplicationKeyByIndex);
init_thunk(&thunks[5], r, winIVRApplications_IVRApplications_001_GetApplicationKeyByProcessId);
init_thunk(&thunks[6], r, winIVRApplications_IVRApplications_001_LaunchApplication);
init_thunk(&thunks[7], r, winIVRApplications_IVRApplications_001_LaunchDashboardOverlay);
init_thunk(&thunks[8], r, winIVRApplications_IVRApplications_001_IdentifyApplication);
init_thunk(&thunks[9], r, winIVRApplications_IVRApplications_001_GetApplicationProcessId);
init_thunk(&thunks[10], r, winIVRApplications_IVRApplications_001_GetApplicationsErrorNameFromEnum);
init_thunk(&thunks[11], r, winIVRApplications_IVRApplications_001_GetApplicationPropertyString);
init_thunk(&thunks[12], r, winIVRApplications_IVRApplications_001_GetApplicationPropertyBool);
init_thunk(&thunks[13], r, winIVRApplications_IVRApplications_001_GetHomeApplication);
init_thunk(&thunks[14], r, winIVRApplications_IVRApplications_001_SetHomeApplication);
init_thunk(&thunks[15], r, winIVRApplications_IVRApplications_001_SetApplicationAutoLaunch);
init_thunk(&thunks[16], r, winIVRApplications_IVRApplications_001_GetApplicationAutoLaunch);
init_thunk(&thunks[17], r, winIVRApplications_IVRApplications_001_GetStartingApplication);
init_thunk(&thunks[18], r, winIVRApplications_IVRApplications_001_GetTransitionState);
init_thunk(&thunks[19], r, winIVRApplications_IVRApplications_001_PerformApplicationPrelaunchCheck);
init_thunk(&thunks[20], r, winIVRApplications_IVRApplications_001_GetApplicationsTransitionStateNameFromEnum);
init_thunk(&thunks[0], r, winIVRApplications_IVRApplications_001_AddApplicationManifest, 2);
init_thunk(&thunks[1], r, winIVRApplications_IVRApplications_001_RemoveApplicationManifest, 1);
init_thunk(&thunks[2], r, winIVRApplications_IVRApplications_001_IsApplicationInstalled, 1);
init_thunk(&thunks[3], r, winIVRApplications_IVRApplications_001_GetApplicationCount, 0);
init_thunk(&thunks[4], r, winIVRApplications_IVRApplications_001_GetApplicationKeyByIndex, 3);
init_thunk(&thunks[5], r, winIVRApplications_IVRApplications_001_GetApplicationKeyByProcessId, 3);
init_thunk(&thunks[6], r, winIVRApplications_IVRApplications_001_LaunchApplication, 1);
init_thunk(&thunks[7], r, winIVRApplications_IVRApplications_001_LaunchDashboardOverlay, 1);
init_thunk(&thunks[8], r, winIVRApplications_IVRApplications_001_IdentifyApplication, 2);
init_thunk(&thunks[9], r, winIVRApplications_IVRApplications_001_GetApplicationProcessId, 1);
init_thunk(&thunks[10], r, winIVRApplications_IVRApplications_001_GetApplicationsErrorNameFromEnum, 1);
init_thunk(&thunks[11], r, winIVRApplications_IVRApplications_001_GetApplicationPropertyString, 5);
init_thunk(&thunks[12], r, winIVRApplications_IVRApplications_001_GetApplicationPropertyBool, 3);
init_thunk(&thunks[13], r, winIVRApplications_IVRApplications_001_GetHomeApplication, 2);
init_thunk(&thunks[14], r, winIVRApplications_IVRApplications_001_SetHomeApplication, 1);
init_thunk(&thunks[15], r, winIVRApplications_IVRApplications_001_SetApplicationAutoLaunch, 2);
init_thunk(&thunks[16], r, winIVRApplications_IVRApplications_001_GetApplicationAutoLaunch, 1);
init_thunk(&thunks[17], r, winIVRApplications_IVRApplications_001_GetStartingApplication, 2);
init_thunk(&thunks[18], r, winIVRApplications_IVRApplications_001_GetTransitionState, 0);
init_thunk(&thunks[19], r, winIVRApplications_IVRApplications_001_PerformApplicationPrelaunchCheck, 1);
init_thunk(&thunks[20], r, winIVRApplications_IVRApplications_001_GetApplicationsTransitionStateNameFromEnum, 1);
for (i = 0; i < 21; i++)
vtable[i] = &thunks[i];
r->linux_side = linux_side;

View File

@ -123,14 +123,14 @@ winIVRChaperone_IVRChaperone_003 *create_winIVRChaperone_IVRChaperone_003_FnTabl
int i;
TRACE("-> %p, vtable %p, thunks %p\n", r, vtable, thunks);
init_thunk(&thunks[0], r, winIVRChaperone_IVRChaperone_003_GetCalibrationState);
init_thunk(&thunks[1], r, winIVRChaperone_IVRChaperone_003_GetPlayAreaSize);
init_thunk(&thunks[2], r, winIVRChaperone_IVRChaperone_003_GetPlayAreaRect);
init_thunk(&thunks[3], r, winIVRChaperone_IVRChaperone_003_ReloadInfo);
init_thunk(&thunks[4], r, winIVRChaperone_IVRChaperone_003_SetSceneColor);
init_thunk(&thunks[5], r, winIVRChaperone_IVRChaperone_003_GetBoundsColor);
init_thunk(&thunks[6], r, winIVRChaperone_IVRChaperone_003_AreBoundsVisible);
init_thunk(&thunks[7], r, winIVRChaperone_IVRChaperone_003_ForceBoundsVisible);
init_thunk(&thunks[0], r, winIVRChaperone_IVRChaperone_003_GetCalibrationState, 0);
init_thunk(&thunks[1], r, winIVRChaperone_IVRChaperone_003_GetPlayAreaSize, 2);
init_thunk(&thunks[2], r, winIVRChaperone_IVRChaperone_003_GetPlayAreaRect, 1);
init_thunk(&thunks[3], r, winIVRChaperone_IVRChaperone_003_ReloadInfo, 0);
init_thunk(&thunks[4], r, winIVRChaperone_IVRChaperone_003_SetSceneColor, 1);
init_thunk(&thunks[5], r, winIVRChaperone_IVRChaperone_003_GetBoundsColor, 4);
init_thunk(&thunks[6], r, winIVRChaperone_IVRChaperone_003_AreBoundsVisible, 0);
init_thunk(&thunks[7], r, winIVRChaperone_IVRChaperone_003_ForceBoundsVisible, 1);
for (i = 0; i < 8; i++)
vtable[i] = &thunks[i];
r->linux_side = linux_side;
@ -260,15 +260,15 @@ winIVRChaperone_IVRChaperone_002 *create_winIVRChaperone_IVRChaperone_002_FnTabl
int i;
TRACE("-> %p, vtable %p, thunks %p\n", r, vtable, thunks);
init_thunk(&thunks[0], r, winIVRChaperone_IVRChaperone_002_GetCalibrationState);
init_thunk(&thunks[1], r, winIVRChaperone_IVRChaperone_002_GetSoftBoundsInfo);
init_thunk(&thunks[2], r, winIVRChaperone_IVRChaperone_002_GetHardBoundsInfo);
init_thunk(&thunks[3], r, winIVRChaperone_IVRChaperone_002_GetSeatedBoundsInfo);
init_thunk(&thunks[4], r, winIVRChaperone_IVRChaperone_002_ReloadInfo);
init_thunk(&thunks[5], r, winIVRChaperone_IVRChaperone_002_SetSceneColor);
init_thunk(&thunks[6], r, winIVRChaperone_IVRChaperone_002_GetBoundsColor);
init_thunk(&thunks[7], r, winIVRChaperone_IVRChaperone_002_AreBoundsVisible);
init_thunk(&thunks[8], r, winIVRChaperone_IVRChaperone_002_ForceBoundsVisible);
init_thunk(&thunks[0], r, winIVRChaperone_IVRChaperone_002_GetCalibrationState, 0);
init_thunk(&thunks[1], r, winIVRChaperone_IVRChaperone_002_GetSoftBoundsInfo, 1);
init_thunk(&thunks[2], r, winIVRChaperone_IVRChaperone_002_GetHardBoundsInfo, 2);
init_thunk(&thunks[3], r, winIVRChaperone_IVRChaperone_002_GetSeatedBoundsInfo, 1);
init_thunk(&thunks[4], r, winIVRChaperone_IVRChaperone_002_ReloadInfo, 0);
init_thunk(&thunks[5], r, winIVRChaperone_IVRChaperone_002_SetSceneColor, 1);
init_thunk(&thunks[6], r, winIVRChaperone_IVRChaperone_002_GetBoundsColor, 2);
init_thunk(&thunks[7], r, winIVRChaperone_IVRChaperone_002_AreBoundsVisible, 0);
init_thunk(&thunks[8], r, winIVRChaperone_IVRChaperone_002_ForceBoundsVisible, 1);
for (i = 0; i < 9; i++)
vtable[i] = &thunks[i];
r->linux_side = linux_side;

View File

@ -219,26 +219,26 @@ winIVRChaperoneSetup_IVRChaperoneSetup_005 *create_winIVRChaperoneSetup_IVRChape
int i;
TRACE("-> %p, vtable %p, thunks %p\n", r, vtable, thunks);
init_thunk(&thunks[0], r, winIVRChaperoneSetup_IVRChaperoneSetup_005_CommitWorkingCopy);
init_thunk(&thunks[1], r, winIVRChaperoneSetup_IVRChaperoneSetup_005_RevertWorkingCopy);
init_thunk(&thunks[2], r, winIVRChaperoneSetup_IVRChaperoneSetup_005_GetWorkingPlayAreaSize);
init_thunk(&thunks[3], r, winIVRChaperoneSetup_IVRChaperoneSetup_005_GetWorkingPlayAreaRect);
init_thunk(&thunks[4], r, winIVRChaperoneSetup_IVRChaperoneSetup_005_GetWorkingCollisionBoundsInfo);
init_thunk(&thunks[5], r, winIVRChaperoneSetup_IVRChaperoneSetup_005_GetLiveCollisionBoundsInfo);
init_thunk(&thunks[6], r, winIVRChaperoneSetup_IVRChaperoneSetup_005_GetWorkingSeatedZeroPoseToRawTrackingPose);
init_thunk(&thunks[7], r, winIVRChaperoneSetup_IVRChaperoneSetup_005_GetWorkingStandingZeroPoseToRawTrackingPose);
init_thunk(&thunks[8], r, winIVRChaperoneSetup_IVRChaperoneSetup_005_SetWorkingPlayAreaSize);
init_thunk(&thunks[9], r, winIVRChaperoneSetup_IVRChaperoneSetup_005_SetWorkingCollisionBoundsInfo);
init_thunk(&thunks[10], r, winIVRChaperoneSetup_IVRChaperoneSetup_005_SetWorkingSeatedZeroPoseToRawTrackingPose);
init_thunk(&thunks[11], r, winIVRChaperoneSetup_IVRChaperoneSetup_005_SetWorkingStandingZeroPoseToRawTrackingPose);
init_thunk(&thunks[12], r, winIVRChaperoneSetup_IVRChaperoneSetup_005_ReloadFromDisk);
init_thunk(&thunks[13], r, winIVRChaperoneSetup_IVRChaperoneSetup_005_GetLiveSeatedZeroPoseToRawTrackingPose);
init_thunk(&thunks[14], r, winIVRChaperoneSetup_IVRChaperoneSetup_005_SetWorkingCollisionBoundsTagsInfo);
init_thunk(&thunks[15], r, winIVRChaperoneSetup_IVRChaperoneSetup_005_GetLiveCollisionBoundsTagsInfo);
init_thunk(&thunks[16], r, winIVRChaperoneSetup_IVRChaperoneSetup_005_SetWorkingPhysicalBoundsInfo);
init_thunk(&thunks[17], r, winIVRChaperoneSetup_IVRChaperoneSetup_005_GetLivePhysicalBoundsInfo);
init_thunk(&thunks[18], r, winIVRChaperoneSetup_IVRChaperoneSetup_005_ExportLiveToBuffer);
init_thunk(&thunks[19], r, winIVRChaperoneSetup_IVRChaperoneSetup_005_ImportFromBufferToWorking);
init_thunk(&thunks[0], r, winIVRChaperoneSetup_IVRChaperoneSetup_005_CommitWorkingCopy, 1);
init_thunk(&thunks[1], r, winIVRChaperoneSetup_IVRChaperoneSetup_005_RevertWorkingCopy, 0);
init_thunk(&thunks[2], r, winIVRChaperoneSetup_IVRChaperoneSetup_005_GetWorkingPlayAreaSize, 2);
init_thunk(&thunks[3], r, winIVRChaperoneSetup_IVRChaperoneSetup_005_GetWorkingPlayAreaRect, 1);
init_thunk(&thunks[4], r, winIVRChaperoneSetup_IVRChaperoneSetup_005_GetWorkingCollisionBoundsInfo, 2);
init_thunk(&thunks[5], r, winIVRChaperoneSetup_IVRChaperoneSetup_005_GetLiveCollisionBoundsInfo, 2);
init_thunk(&thunks[6], r, winIVRChaperoneSetup_IVRChaperoneSetup_005_GetWorkingSeatedZeroPoseToRawTrackingPose, 1);
init_thunk(&thunks[7], r, winIVRChaperoneSetup_IVRChaperoneSetup_005_GetWorkingStandingZeroPoseToRawTrackingPose, 1);
init_thunk(&thunks[8], r, winIVRChaperoneSetup_IVRChaperoneSetup_005_SetWorkingPlayAreaSize, 2);
init_thunk(&thunks[9], r, winIVRChaperoneSetup_IVRChaperoneSetup_005_SetWorkingCollisionBoundsInfo, 2);
init_thunk(&thunks[10], r, winIVRChaperoneSetup_IVRChaperoneSetup_005_SetWorkingSeatedZeroPoseToRawTrackingPose, 1);
init_thunk(&thunks[11], r, winIVRChaperoneSetup_IVRChaperoneSetup_005_SetWorkingStandingZeroPoseToRawTrackingPose, 1);
init_thunk(&thunks[12], r, winIVRChaperoneSetup_IVRChaperoneSetup_005_ReloadFromDisk, 1);
init_thunk(&thunks[13], r, winIVRChaperoneSetup_IVRChaperoneSetup_005_GetLiveSeatedZeroPoseToRawTrackingPose, 1);
init_thunk(&thunks[14], r, winIVRChaperoneSetup_IVRChaperoneSetup_005_SetWorkingCollisionBoundsTagsInfo, 2);
init_thunk(&thunks[15], r, winIVRChaperoneSetup_IVRChaperoneSetup_005_GetLiveCollisionBoundsTagsInfo, 2);
init_thunk(&thunks[16], r, winIVRChaperoneSetup_IVRChaperoneSetup_005_SetWorkingPhysicalBoundsInfo, 2);
init_thunk(&thunks[17], r, winIVRChaperoneSetup_IVRChaperoneSetup_005_GetLivePhysicalBoundsInfo, 2);
init_thunk(&thunks[18], r, winIVRChaperoneSetup_IVRChaperoneSetup_005_ExportLiveToBuffer, 2);
init_thunk(&thunks[19], r, winIVRChaperoneSetup_IVRChaperoneSetup_005_ImportFromBufferToWorking, 2);
for (i = 0; i < 20; i++)
vtable[i] = &thunks[i];
r->linux_side = linux_side;
@ -424,22 +424,22 @@ winIVRChaperoneSetup_IVRChaperoneSetup_004 *create_winIVRChaperoneSetup_IVRChape
int i;
TRACE("-> %p, vtable %p, thunks %p\n", r, vtable, thunks);
init_thunk(&thunks[0], r, winIVRChaperoneSetup_IVRChaperoneSetup_004_CommitWorkingCopy);
init_thunk(&thunks[1], r, winIVRChaperoneSetup_IVRChaperoneSetup_004_RevertWorkingCopy);
init_thunk(&thunks[2], r, winIVRChaperoneSetup_IVRChaperoneSetup_004_GetWorkingPlayAreaSize);
init_thunk(&thunks[3], r, winIVRChaperoneSetup_IVRChaperoneSetup_004_GetWorkingPlayAreaRect);
init_thunk(&thunks[4], r, winIVRChaperoneSetup_IVRChaperoneSetup_004_GetWorkingCollisionBoundsInfo);
init_thunk(&thunks[5], r, winIVRChaperoneSetup_IVRChaperoneSetup_004_GetLiveCollisionBoundsInfo);
init_thunk(&thunks[6], r, winIVRChaperoneSetup_IVRChaperoneSetup_004_GetWorkingSeatedZeroPoseToRawTrackingPose);
init_thunk(&thunks[7], r, winIVRChaperoneSetup_IVRChaperoneSetup_004_GetWorkingStandingZeroPoseToRawTrackingPose);
init_thunk(&thunks[8], r, winIVRChaperoneSetup_IVRChaperoneSetup_004_SetWorkingPlayAreaSize);
init_thunk(&thunks[9], r, winIVRChaperoneSetup_IVRChaperoneSetup_004_SetWorkingCollisionBoundsInfo);
init_thunk(&thunks[10], r, winIVRChaperoneSetup_IVRChaperoneSetup_004_SetWorkingSeatedZeroPoseToRawTrackingPose);
init_thunk(&thunks[11], r, winIVRChaperoneSetup_IVRChaperoneSetup_004_SetWorkingStandingZeroPoseToRawTrackingPose);
init_thunk(&thunks[12], r, winIVRChaperoneSetup_IVRChaperoneSetup_004_ReloadFromDisk);
init_thunk(&thunks[13], r, winIVRChaperoneSetup_IVRChaperoneSetup_004_GetLiveSeatedZeroPoseToRawTrackingPose);
init_thunk(&thunks[14], r, winIVRChaperoneSetup_IVRChaperoneSetup_004_SetWorkingWallTagInfo);
init_thunk(&thunks[15], r, winIVRChaperoneSetup_IVRChaperoneSetup_004_GetLiveWallTagInfo);
init_thunk(&thunks[0], r, winIVRChaperoneSetup_IVRChaperoneSetup_004_CommitWorkingCopy, 1);
init_thunk(&thunks[1], r, winIVRChaperoneSetup_IVRChaperoneSetup_004_RevertWorkingCopy, 0);
init_thunk(&thunks[2], r, winIVRChaperoneSetup_IVRChaperoneSetup_004_GetWorkingPlayAreaSize, 2);
init_thunk(&thunks[3], r, winIVRChaperoneSetup_IVRChaperoneSetup_004_GetWorkingPlayAreaRect, 1);
init_thunk(&thunks[4], r, winIVRChaperoneSetup_IVRChaperoneSetup_004_GetWorkingCollisionBoundsInfo, 2);
init_thunk(&thunks[5], r, winIVRChaperoneSetup_IVRChaperoneSetup_004_GetLiveCollisionBoundsInfo, 2);
init_thunk(&thunks[6], r, winIVRChaperoneSetup_IVRChaperoneSetup_004_GetWorkingSeatedZeroPoseToRawTrackingPose, 1);
init_thunk(&thunks[7], r, winIVRChaperoneSetup_IVRChaperoneSetup_004_GetWorkingStandingZeroPoseToRawTrackingPose, 1);
init_thunk(&thunks[8], r, winIVRChaperoneSetup_IVRChaperoneSetup_004_SetWorkingPlayAreaSize, 2);
init_thunk(&thunks[9], r, winIVRChaperoneSetup_IVRChaperoneSetup_004_SetWorkingCollisionBoundsInfo, 2);
init_thunk(&thunks[10], r, winIVRChaperoneSetup_IVRChaperoneSetup_004_SetWorkingSeatedZeroPoseToRawTrackingPose, 1);
init_thunk(&thunks[11], r, winIVRChaperoneSetup_IVRChaperoneSetup_004_SetWorkingStandingZeroPoseToRawTrackingPose, 1);
init_thunk(&thunks[12], r, winIVRChaperoneSetup_IVRChaperoneSetup_004_ReloadFromDisk, 1);
init_thunk(&thunks[13], r, winIVRChaperoneSetup_IVRChaperoneSetup_004_GetLiveSeatedZeroPoseToRawTrackingPose, 1);
init_thunk(&thunks[14], r, winIVRChaperoneSetup_IVRChaperoneSetup_004_SetWorkingWallTagInfo, 2);
init_thunk(&thunks[15], r, winIVRChaperoneSetup_IVRChaperoneSetup_004_GetLiveWallTagInfo, 2);
for (i = 0; i < 16; i++)
vtable[i] = &thunks[i];
r->linux_side = linux_side;

View File

@ -116,13 +116,13 @@ winIVRClientCore_IVRClientCore_003 *create_winIVRClientCore_IVRClientCore_003_Fn
int i;
TRACE("-> %p, vtable %p, thunks %p\n", r, vtable, thunks);
init_thunk(&thunks[0], r, winIVRClientCore_IVRClientCore_003_Init);
init_thunk(&thunks[1], r, winIVRClientCore_IVRClientCore_003_Cleanup);
init_thunk(&thunks[2], r, winIVRClientCore_IVRClientCore_003_IsInterfaceVersionValid);
init_thunk(&thunks[3], r, winIVRClientCore_IVRClientCore_003_GetGenericInterface);
init_thunk(&thunks[4], r, winIVRClientCore_IVRClientCore_003_BIsHmdPresent);
init_thunk(&thunks[5], r, winIVRClientCore_IVRClientCore_003_GetEnglishStringForHmdError);
init_thunk(&thunks[6], r, winIVRClientCore_IVRClientCore_003_GetIDForVRInitError);
init_thunk(&thunks[0], r, winIVRClientCore_IVRClientCore_003_Init, 2);
init_thunk(&thunks[1], r, winIVRClientCore_IVRClientCore_003_Cleanup, 0);
init_thunk(&thunks[2], r, winIVRClientCore_IVRClientCore_003_IsInterfaceVersionValid, 1);
init_thunk(&thunks[3], r, winIVRClientCore_IVRClientCore_003_GetGenericInterface, 2);
init_thunk(&thunks[4], r, winIVRClientCore_IVRClientCore_003_BIsHmdPresent, 0);
init_thunk(&thunks[5], r, winIVRClientCore_IVRClientCore_003_GetEnglishStringForHmdError, 1);
init_thunk(&thunks[6], r, winIVRClientCore_IVRClientCore_003_GetIDForVRInitError, 1);
for (i = 0; i < 7; i++)
vtable[i] = &thunks[i];
r->linux_side = linux_side;
@ -237,13 +237,13 @@ winIVRClientCore_IVRClientCore_002 *create_winIVRClientCore_IVRClientCore_002_Fn
int i;
TRACE("-> %p, vtable %p, thunks %p\n", r, vtable, thunks);
init_thunk(&thunks[0], r, winIVRClientCore_IVRClientCore_002_Init);
init_thunk(&thunks[1], r, winIVRClientCore_IVRClientCore_002_Cleanup);
init_thunk(&thunks[2], r, winIVRClientCore_IVRClientCore_002_IsInterfaceVersionValid);
init_thunk(&thunks[3], r, winIVRClientCore_IVRClientCore_002_GetGenericInterface);
init_thunk(&thunks[4], r, winIVRClientCore_IVRClientCore_002_BIsHmdPresent);
init_thunk(&thunks[5], r, winIVRClientCore_IVRClientCore_002_GetEnglishStringForHmdError);
init_thunk(&thunks[6], r, winIVRClientCore_IVRClientCore_002_GetIDForVRInitError);
init_thunk(&thunks[0], r, winIVRClientCore_IVRClientCore_002_Init, 1);
init_thunk(&thunks[1], r, winIVRClientCore_IVRClientCore_002_Cleanup, 0);
init_thunk(&thunks[2], r, winIVRClientCore_IVRClientCore_002_IsInterfaceVersionValid, 1);
init_thunk(&thunks[3], r, winIVRClientCore_IVRClientCore_002_GetGenericInterface, 2);
init_thunk(&thunks[4], r, winIVRClientCore_IVRClientCore_002_BIsHmdPresent, 0);
init_thunk(&thunks[5], r, winIVRClientCore_IVRClientCore_002_GetEnglishStringForHmdError, 1);
init_thunk(&thunks[6], r, winIVRClientCore_IVRClientCore_002_GetIDForVRInitError, 1);
for (i = 0; i < 7; i++)
vtable[i] = &thunks[i];
r->linux_side = linux_side;

File diff suppressed because it is too large Load Diff

View File

@ -83,9 +83,9 @@ winIVRDriverManager_IVRDriverManager_001 *create_winIVRDriverManager_IVRDriverMa
int i;
TRACE("-> %p, vtable %p, thunks %p\n", r, vtable, thunks);
init_thunk(&thunks[0], r, winIVRDriverManager_IVRDriverManager_001_GetDriverCount);
init_thunk(&thunks[1], r, winIVRDriverManager_IVRDriverManager_001_GetDriverName);
init_thunk(&thunks[2], r, winIVRDriverManager_IVRDriverManager_001_GetDriverHandle);
init_thunk(&thunks[0], r, winIVRDriverManager_IVRDriverManager_001_GetDriverCount, 0);
init_thunk(&thunks[1], r, winIVRDriverManager_IVRDriverManager_001_GetDriverName, 3);
init_thunk(&thunks[2], r, winIVRDriverManager_IVRDriverManager_001_GetDriverHandle, 1);
for (i = 0; i < 3; i++)
vtable[i] = &thunks[i];
r->linux_side = linux_side;

View File

@ -83,9 +83,9 @@ winIVRExtendedDisplay_IVRExtendedDisplay_001 *create_winIVRExtendedDisplay_IVREx
int i;
TRACE("-> %p, vtable %p, thunks %p\n", r, vtable, thunks);
init_thunk(&thunks[0], r, winIVRExtendedDisplay_IVRExtendedDisplay_001_GetWindowBounds);
init_thunk(&thunks[1], r, winIVRExtendedDisplay_IVRExtendedDisplay_001_GetEyeOutputViewport);
init_thunk(&thunks[2], r, winIVRExtendedDisplay_IVRExtendedDisplay_001_GetDXGIOutputInfo);
init_thunk(&thunks[0], r, winIVRExtendedDisplay_IVRExtendedDisplay_001_GetWindowBounds, 4);
init_thunk(&thunks[1], r, winIVRExtendedDisplay_IVRExtendedDisplay_001_GetEyeOutputViewport, 5);
init_thunk(&thunks[2], r, winIVRExtendedDisplay_IVRExtendedDisplay_001_GetDXGIOutputInfo, 2);
for (i = 0; i < 3; i++)
vtable[i] = &thunks[i];
r->linux_side = linux_side;

View File

@ -99,11 +99,11 @@ winIVRIOBuffer_IVRIOBuffer_001 *create_winIVRIOBuffer_IVRIOBuffer_001_FnTable(vo
int i;
TRACE("-> %p, vtable %p, thunks %p\n", r, vtable, thunks);
init_thunk(&thunks[0], r, winIVRIOBuffer_IVRIOBuffer_001_Open);
init_thunk(&thunks[1], r, winIVRIOBuffer_IVRIOBuffer_001_Close);
init_thunk(&thunks[2], r, winIVRIOBuffer_IVRIOBuffer_001_Read);
init_thunk(&thunks[3], r, winIVRIOBuffer_IVRIOBuffer_001_Write);
init_thunk(&thunks[4], r, winIVRIOBuffer_IVRIOBuffer_001_PropertyContainer);
init_thunk(&thunks[0], r, winIVRIOBuffer_IVRIOBuffer_001_Open, 5);
init_thunk(&thunks[1], r, winIVRIOBuffer_IVRIOBuffer_001_Close, 1);
init_thunk(&thunks[2], r, winIVRIOBuffer_IVRIOBuffer_001_Read, 4);
init_thunk(&thunks[3], r, winIVRIOBuffer_IVRIOBuffer_001_Write, 3);
init_thunk(&thunks[4], r, winIVRIOBuffer_IVRIOBuffer_001_PropertyContainer, 1);
for (i = 0; i < 5; i++)
vtable[i] = &thunks[i];
r->linux_side = linux_side;

View File

@ -195,23 +195,23 @@ winIVRInput_IVRInput_003 *create_winIVRInput_IVRInput_003_FnTable(void *linux_si
int i;
TRACE("-> %p, vtable %p, thunks %p\n", r, vtable, thunks);
init_thunk(&thunks[0], r, winIVRInput_IVRInput_003_SetActionManifestPath);
init_thunk(&thunks[1], r, winIVRInput_IVRInput_003_GetActionSetHandle);
init_thunk(&thunks[2], r, winIVRInput_IVRInput_003_GetActionHandle);
init_thunk(&thunks[3], r, winIVRInput_IVRInput_003_GetInputSourceHandle);
init_thunk(&thunks[4], r, winIVRInput_IVRInput_003_UpdateActionState);
init_thunk(&thunks[5], r, winIVRInput_IVRInput_003_GetDigitalActionData);
init_thunk(&thunks[6], r, winIVRInput_IVRInput_003_GetAnalogActionData);
init_thunk(&thunks[7], r, winIVRInput_IVRInput_003_GetPoseActionData);
init_thunk(&thunks[8], r, winIVRInput_IVRInput_003_GetSkeletalActionData);
init_thunk(&thunks[9], r, winIVRInput_IVRInput_003_GetSkeletalActionDataCompressed);
init_thunk(&thunks[10], r, winIVRInput_IVRInput_003_UncompressSkeletalActionData);
init_thunk(&thunks[11], r, winIVRInput_IVRInput_003_TriggerHapticVibrationAction);
init_thunk(&thunks[12], r, winIVRInput_IVRInput_003_GetActionOrigins);
init_thunk(&thunks[13], r, winIVRInput_IVRInput_003_GetOriginLocalizedName);
init_thunk(&thunks[14], r, winIVRInput_IVRInput_003_GetOriginTrackedDeviceInfo);
init_thunk(&thunks[15], r, winIVRInput_IVRInput_003_ShowActionOrigins);
init_thunk(&thunks[16], r, winIVRInput_IVRInput_003_ShowBindingsForActionSet);
init_thunk(&thunks[0], r, winIVRInput_IVRInput_003_SetActionManifestPath, 1);
init_thunk(&thunks[1], r, winIVRInput_IVRInput_003_GetActionSetHandle, 2);
init_thunk(&thunks[2], r, winIVRInput_IVRInput_003_GetActionHandle, 2);
init_thunk(&thunks[3], r, winIVRInput_IVRInput_003_GetInputSourceHandle, 2);
init_thunk(&thunks[4], r, winIVRInput_IVRInput_003_UpdateActionState, 3);
init_thunk(&thunks[5], r, winIVRInput_IVRInput_003_GetDigitalActionData, 3);
init_thunk(&thunks[6], r, winIVRInput_IVRInput_003_GetAnalogActionData, 3);
init_thunk(&thunks[7], r, winIVRInput_IVRInput_003_GetPoseActionData, 5);
init_thunk(&thunks[8], r, winIVRInput_IVRInput_003_GetSkeletalActionData, 7);
init_thunk(&thunks[9], r, winIVRInput_IVRInput_003_GetSkeletalActionDataCompressed, 6);
init_thunk(&thunks[10], r, winIVRInput_IVRInput_003_UncompressSkeletalActionData, 5);
init_thunk(&thunks[11], r, winIVRInput_IVRInput_003_TriggerHapticVibrationAction, 5);
init_thunk(&thunks[12], r, winIVRInput_IVRInput_003_GetActionOrigins, 4);
init_thunk(&thunks[13], r, winIVRInput_IVRInput_003_GetOriginLocalizedName, 3);
init_thunk(&thunks[14], r, winIVRInput_IVRInput_003_GetOriginTrackedDeviceInfo, 3);
init_thunk(&thunks[15], r, winIVRInput_IVRInput_003_ShowActionOrigins, 2);
init_thunk(&thunks[16], r, winIVRInput_IVRInput_003_ShowBindingsForActionSet, 4);
for (i = 0; i < 17; i++)
vtable[i] = &thunks[i];
r->linux_side = linux_side;

View File

@ -75,8 +75,8 @@ winIVRNotifications_IVRNotifications_002 *create_winIVRNotifications_IVRNotifica
int i;
TRACE("-> %p, vtable %p, thunks %p\n", r, vtable, thunks);
init_thunk(&thunks[0], r, winIVRNotifications_IVRNotifications_002_CreateNotification);
init_thunk(&thunks[1], r, winIVRNotifications_IVRNotifications_002_RemoveNotification);
init_thunk(&thunks[0], r, winIVRNotifications_IVRNotifications_002_CreateNotification, 7);
init_thunk(&thunks[1], r, winIVRNotifications_IVRNotifications_002_RemoveNotification, 1);
for (i = 0; i < 2; i++)
vtable[i] = &thunks[i];
r->linux_side = linux_side;
@ -158,9 +158,9 @@ winIVRNotifications_IVRNotifications_001 *create_winIVRNotifications_IVRNotifica
int i;
TRACE("-> %p, vtable %p, thunks %p\n", r, vtable, thunks);
init_thunk(&thunks[0], r, winIVRNotifications_IVRNotifications_001_GetErrorString);
init_thunk(&thunks[1], r, winIVRNotifications_IVRNotifications_001_CreateNotification);
init_thunk(&thunks[2], r, winIVRNotifications_IVRNotifications_001_DismissNotification);
init_thunk(&thunks[0], r, winIVRNotifications_IVRNotifications_001_GetErrorString, 3);
init_thunk(&thunks[1], r, winIVRNotifications_IVRNotifications_001_CreateNotification, 7);
init_thunk(&thunks[2], r, winIVRNotifications_IVRNotifications_001_DismissNotification, 1);
for (i = 0; i < 3; i++)
vtable[i] = &thunks[i];
r->linux_side = linux_side;

File diff suppressed because it is too large Load Diff

View File

@ -203,24 +203,24 @@ winIVRRenderModels_IVRRenderModels_005 *create_winIVRRenderModels_IVRRenderModel
int i;
TRACE("-> %p, vtable %p, thunks %p\n", r, vtable, thunks);
init_thunk(&thunks[0], r, winIVRRenderModels_IVRRenderModels_005_LoadRenderModel_Async);
init_thunk(&thunks[1], r, winIVRRenderModels_IVRRenderModels_005_FreeRenderModel);
init_thunk(&thunks[2], r, winIVRRenderModels_IVRRenderModels_005_LoadTexture_Async);
init_thunk(&thunks[3], r, winIVRRenderModels_IVRRenderModels_005_FreeTexture);
init_thunk(&thunks[4], r, winIVRRenderModels_IVRRenderModels_005_LoadTextureD3D11_Async);
init_thunk(&thunks[5], r, winIVRRenderModels_IVRRenderModels_005_LoadIntoTextureD3D11_Async);
init_thunk(&thunks[6], r, winIVRRenderModels_IVRRenderModels_005_FreeTextureD3D11);
init_thunk(&thunks[7], r, winIVRRenderModels_IVRRenderModels_005_GetRenderModelName);
init_thunk(&thunks[8], r, winIVRRenderModels_IVRRenderModels_005_GetRenderModelCount);
init_thunk(&thunks[9], r, winIVRRenderModels_IVRRenderModels_005_GetComponentCount);
init_thunk(&thunks[10], r, winIVRRenderModels_IVRRenderModels_005_GetComponentName);
init_thunk(&thunks[11], r, winIVRRenderModels_IVRRenderModels_005_GetComponentButtonMask);
init_thunk(&thunks[12], r, winIVRRenderModels_IVRRenderModels_005_GetComponentRenderModelName);
init_thunk(&thunks[13], r, winIVRRenderModels_IVRRenderModels_005_GetComponentState);
init_thunk(&thunks[14], r, winIVRRenderModels_IVRRenderModels_005_RenderModelHasComponent);
init_thunk(&thunks[15], r, winIVRRenderModels_IVRRenderModels_005_GetRenderModelThumbnailURL);
init_thunk(&thunks[16], r, winIVRRenderModels_IVRRenderModels_005_GetRenderModelOriginalPath);
init_thunk(&thunks[17], r, winIVRRenderModels_IVRRenderModels_005_GetRenderModelErrorNameFromEnum);
init_thunk(&thunks[0], r, winIVRRenderModels_IVRRenderModels_005_LoadRenderModel_Async, 2);
init_thunk(&thunks[1], r, winIVRRenderModels_IVRRenderModels_005_FreeRenderModel, 1);
init_thunk(&thunks[2], r, winIVRRenderModels_IVRRenderModels_005_LoadTexture_Async, 2);
init_thunk(&thunks[3], r, winIVRRenderModels_IVRRenderModels_005_FreeTexture, 1);
init_thunk(&thunks[4], r, winIVRRenderModels_IVRRenderModels_005_LoadTextureD3D11_Async, 3);
init_thunk(&thunks[5], r, winIVRRenderModels_IVRRenderModels_005_LoadIntoTextureD3D11_Async, 2);
init_thunk(&thunks[6], r, winIVRRenderModels_IVRRenderModels_005_FreeTextureD3D11, 1);
init_thunk(&thunks[7], r, winIVRRenderModels_IVRRenderModels_005_GetRenderModelName, 3);
init_thunk(&thunks[8], r, winIVRRenderModels_IVRRenderModels_005_GetRenderModelCount, 0);
init_thunk(&thunks[9], r, winIVRRenderModels_IVRRenderModels_005_GetComponentCount, 1);
init_thunk(&thunks[10], r, winIVRRenderModels_IVRRenderModels_005_GetComponentName, 4);
init_thunk(&thunks[11], r, winIVRRenderModels_IVRRenderModels_005_GetComponentButtonMask, 2);
init_thunk(&thunks[12], r, winIVRRenderModels_IVRRenderModels_005_GetComponentRenderModelName, 4);
init_thunk(&thunks[13], r, winIVRRenderModels_IVRRenderModels_005_GetComponentState, 5);
init_thunk(&thunks[14], r, winIVRRenderModels_IVRRenderModels_005_RenderModelHasComponent, 2);
init_thunk(&thunks[15], r, winIVRRenderModels_IVRRenderModels_005_GetRenderModelThumbnailURL, 4);
init_thunk(&thunks[16], r, winIVRRenderModels_IVRRenderModels_005_GetRenderModelOriginalPath, 4);
init_thunk(&thunks[17], r, winIVRRenderModels_IVRRenderModels_005_GetRenderModelErrorNameFromEnum, 1);
for (i = 0; i < 18; i++)
vtable[i] = &thunks[i];
r->linux_side = linux_side;
@ -390,20 +390,20 @@ winIVRRenderModels_IVRRenderModels_004 *create_winIVRRenderModels_IVRRenderModel
int i;
TRACE("-> %p, vtable %p, thunks %p\n", r, vtable, thunks);
init_thunk(&thunks[0], r, winIVRRenderModels_IVRRenderModels_004_LoadRenderModel_Async);
init_thunk(&thunks[1], r, winIVRRenderModels_IVRRenderModels_004_FreeRenderModel);
init_thunk(&thunks[2], r, winIVRRenderModels_IVRRenderModels_004_LoadTexture_Async);
init_thunk(&thunks[3], r, winIVRRenderModels_IVRRenderModels_004_FreeTexture);
init_thunk(&thunks[4], r, winIVRRenderModels_IVRRenderModels_004_LoadTextureD3D11_Async);
init_thunk(&thunks[5], r, winIVRRenderModels_IVRRenderModels_004_FreeTextureD3D11);
init_thunk(&thunks[6], r, winIVRRenderModels_IVRRenderModels_004_GetRenderModelName);
init_thunk(&thunks[7], r, winIVRRenderModels_IVRRenderModels_004_GetRenderModelCount);
init_thunk(&thunks[8], r, winIVRRenderModels_IVRRenderModels_004_GetComponentCount);
init_thunk(&thunks[9], r, winIVRRenderModels_IVRRenderModels_004_GetComponentName);
init_thunk(&thunks[10], r, winIVRRenderModels_IVRRenderModels_004_GetComponentButtonMask);
init_thunk(&thunks[11], r, winIVRRenderModels_IVRRenderModels_004_GetComponentRenderModelName);
init_thunk(&thunks[12], r, winIVRRenderModels_IVRRenderModels_004_GetComponentState);
init_thunk(&thunks[13], r, winIVRRenderModels_IVRRenderModels_004_RenderModelHasComponent);
init_thunk(&thunks[0], r, winIVRRenderModels_IVRRenderModels_004_LoadRenderModel_Async, 2);
init_thunk(&thunks[1], r, winIVRRenderModels_IVRRenderModels_004_FreeRenderModel, 1);
init_thunk(&thunks[2], r, winIVRRenderModels_IVRRenderModels_004_LoadTexture_Async, 2);
init_thunk(&thunks[3], r, winIVRRenderModels_IVRRenderModels_004_FreeTexture, 1);
init_thunk(&thunks[4], r, winIVRRenderModels_IVRRenderModels_004_LoadTextureD3D11_Async, 3);
init_thunk(&thunks[5], r, winIVRRenderModels_IVRRenderModels_004_FreeTextureD3D11, 1);
init_thunk(&thunks[6], r, winIVRRenderModels_IVRRenderModels_004_GetRenderModelName, 3);
init_thunk(&thunks[7], r, winIVRRenderModels_IVRRenderModels_004_GetRenderModelCount, 0);
init_thunk(&thunks[8], r, winIVRRenderModels_IVRRenderModels_004_GetComponentCount, 1);
init_thunk(&thunks[9], r, winIVRRenderModels_IVRRenderModels_004_GetComponentName, 4);
init_thunk(&thunks[10], r, winIVRRenderModels_IVRRenderModels_004_GetComponentButtonMask, 2);
init_thunk(&thunks[11], r, winIVRRenderModels_IVRRenderModels_004_GetComponentRenderModelName, 4);
init_thunk(&thunks[12], r, winIVRRenderModels_IVRRenderModels_004_GetComponentState, 5);
init_thunk(&thunks[13], r, winIVRRenderModels_IVRRenderModels_004_RenderModelHasComponent, 2);
for (i = 0; i < 14; i++)
vtable[i] = &thunks[i];
r->linux_side = linux_side;
@ -557,18 +557,18 @@ winIVRRenderModels_IVRRenderModels_002 *create_winIVRRenderModels_IVRRenderModel
int i;
TRACE("-> %p, vtable %p, thunks %p\n", r, vtable, thunks);
init_thunk(&thunks[0], r, winIVRRenderModels_IVRRenderModels_002_LoadRenderModel);
init_thunk(&thunks[1], r, winIVRRenderModels_IVRRenderModels_002_FreeRenderModel);
init_thunk(&thunks[2], r, winIVRRenderModels_IVRRenderModels_002_LoadTexture);
init_thunk(&thunks[3], r, winIVRRenderModels_IVRRenderModels_002_FreeTexture);
init_thunk(&thunks[4], r, winIVRRenderModels_IVRRenderModels_002_GetRenderModelName);
init_thunk(&thunks[5], r, winIVRRenderModels_IVRRenderModels_002_GetRenderModelCount);
init_thunk(&thunks[6], r, winIVRRenderModels_IVRRenderModels_002_GetComponentCount);
init_thunk(&thunks[7], r, winIVRRenderModels_IVRRenderModels_002_GetComponentName);
init_thunk(&thunks[8], r, winIVRRenderModels_IVRRenderModels_002_GetComponentButtonMask);
init_thunk(&thunks[9], r, winIVRRenderModels_IVRRenderModels_002_GetComponentRenderModelName);
init_thunk(&thunks[10], r, winIVRRenderModels_IVRRenderModels_002_GetComponentState);
init_thunk(&thunks[11], r, winIVRRenderModels_IVRRenderModels_002_RenderModelHasComponent);
init_thunk(&thunks[0], r, winIVRRenderModels_IVRRenderModels_002_LoadRenderModel, 2);
init_thunk(&thunks[1], r, winIVRRenderModels_IVRRenderModels_002_FreeRenderModel, 1);
init_thunk(&thunks[2], r, winIVRRenderModels_IVRRenderModels_002_LoadTexture, 2);
init_thunk(&thunks[3], r, winIVRRenderModels_IVRRenderModels_002_FreeTexture, 1);
init_thunk(&thunks[4], r, winIVRRenderModels_IVRRenderModels_002_GetRenderModelName, 3);
init_thunk(&thunks[5], r, winIVRRenderModels_IVRRenderModels_002_GetRenderModelCount, 0);
init_thunk(&thunks[6], r, winIVRRenderModels_IVRRenderModels_002_GetComponentCount, 1);
init_thunk(&thunks[7], r, winIVRRenderModels_IVRRenderModels_002_GetComponentName, 4);
init_thunk(&thunks[8], r, winIVRRenderModels_IVRRenderModels_002_GetComponentButtonMask, 2);
init_thunk(&thunks[9], r, winIVRRenderModels_IVRRenderModels_002_GetComponentRenderModelName, 4);
init_thunk(&thunks[10], r, winIVRRenderModels_IVRRenderModels_002_GetComponentState, 4);
init_thunk(&thunks[11], r, winIVRRenderModels_IVRRenderModels_002_RenderModelHasComponent, 2);
for (i = 0; i < 12; i++)
vtable[i] = &thunks[i];
r->linux_side = linux_side;
@ -658,10 +658,10 @@ winIVRRenderModels_IVRRenderModels_001 *create_winIVRRenderModels_IVRRenderModel
int i;
TRACE("-> %p, vtable %p, thunks %p\n", r, vtable, thunks);
init_thunk(&thunks[0], r, winIVRRenderModels_IVRRenderModels_001_LoadRenderModel);
init_thunk(&thunks[1], r, winIVRRenderModels_IVRRenderModels_001_FreeRenderModel);
init_thunk(&thunks[2], r, winIVRRenderModels_IVRRenderModels_001_GetRenderModelName);
init_thunk(&thunks[3], r, winIVRRenderModels_IVRRenderModels_001_GetRenderModelCount);
init_thunk(&thunks[0], r, winIVRRenderModels_IVRRenderModels_001_LoadRenderModel, 2);
init_thunk(&thunks[1], r, winIVRRenderModels_IVRRenderModels_001_FreeRenderModel, 1);
init_thunk(&thunks[2], r, winIVRRenderModels_IVRRenderModels_001_GetRenderModelName, 3);
init_thunk(&thunks[3], r, winIVRRenderModels_IVRRenderModels_001_GetRenderModelCount, 0);
for (i = 0; i < 4; i++)
vtable[i] = &thunks[i];
r->linux_side = linux_side;

View File

@ -75,8 +75,8 @@ winIVRResources_IVRResources_001 *create_winIVRResources_IVRResources_001_FnTabl
int i;
TRACE("-> %p, vtable %p, thunks %p\n", r, vtable, thunks);
init_thunk(&thunks[0], r, winIVRResources_IVRResources_001_LoadSharedResource);
init_thunk(&thunks[1], r, winIVRResources_IVRResources_001_GetResourceFullPath);
init_thunk(&thunks[0], r, winIVRResources_IVRResources_001_LoadSharedResource, 3);
init_thunk(&thunks[1], r, winIVRResources_IVRResources_001_GetResourceFullPath, 4);
for (i = 0; i < 2; i++)
vtable[i] = &thunks[i];
r->linux_side = linux_side;

View File

@ -115,13 +115,13 @@ winIVRScreenshots_IVRScreenshots_001 *create_winIVRScreenshots_IVRScreenshots_00
int i;
TRACE("-> %p, vtable %p, thunks %p\n", r, vtable, thunks);
init_thunk(&thunks[0], r, winIVRScreenshots_IVRScreenshots_001_RequestScreenshot);
init_thunk(&thunks[1], r, winIVRScreenshots_IVRScreenshots_001_HookScreenshot);
init_thunk(&thunks[2], r, winIVRScreenshots_IVRScreenshots_001_GetScreenshotPropertyType);
init_thunk(&thunks[3], r, winIVRScreenshots_IVRScreenshots_001_GetScreenshotPropertyFilename);
init_thunk(&thunks[4], r, winIVRScreenshots_IVRScreenshots_001_UpdateScreenshotProgress);
init_thunk(&thunks[5], r, winIVRScreenshots_IVRScreenshots_001_TakeStereoScreenshot);
init_thunk(&thunks[6], r, winIVRScreenshots_IVRScreenshots_001_SubmitScreenshot);
init_thunk(&thunks[0], r, winIVRScreenshots_IVRScreenshots_001_RequestScreenshot, 4);
init_thunk(&thunks[1], r, winIVRScreenshots_IVRScreenshots_001_HookScreenshot, 2);
init_thunk(&thunks[2], r, winIVRScreenshots_IVRScreenshots_001_GetScreenshotPropertyType, 2);
init_thunk(&thunks[3], r, winIVRScreenshots_IVRScreenshots_001_GetScreenshotPropertyFilename, 5);
init_thunk(&thunks[4], r, winIVRScreenshots_IVRScreenshots_001_UpdateScreenshotProgress, 2);
init_thunk(&thunks[5], r, winIVRScreenshots_IVRScreenshots_001_TakeStereoScreenshot, 3);
init_thunk(&thunks[6], r, winIVRScreenshots_IVRScreenshots_001_SubmitScreenshot, 4);
for (i = 0; i < 7; i++)
vtable[i] = &thunks[i];
r->linux_side = linux_side;

View File

@ -155,18 +155,18 @@ winIVRSettings_IVRSettings_002 *create_winIVRSettings_IVRSettings_002_FnTable(vo
int i;
TRACE("-> %p, vtable %p, thunks %p\n", r, vtable, thunks);
init_thunk(&thunks[0], r, winIVRSettings_IVRSettings_002_GetSettingsErrorNameFromEnum);
init_thunk(&thunks[1], r, winIVRSettings_IVRSettings_002_Sync);
init_thunk(&thunks[2], r, winIVRSettings_IVRSettings_002_SetBool);
init_thunk(&thunks[3], r, winIVRSettings_IVRSettings_002_SetInt32);
init_thunk(&thunks[4], r, winIVRSettings_IVRSettings_002_SetFloat);
init_thunk(&thunks[5], r, winIVRSettings_IVRSettings_002_SetString);
init_thunk(&thunks[6], r, winIVRSettings_IVRSettings_002_GetBool);
init_thunk(&thunks[7], r, winIVRSettings_IVRSettings_002_GetInt32);
init_thunk(&thunks[8], r, winIVRSettings_IVRSettings_002_GetFloat);
init_thunk(&thunks[9], r, winIVRSettings_IVRSettings_002_GetString);
init_thunk(&thunks[10], r, winIVRSettings_IVRSettings_002_RemoveSection);
init_thunk(&thunks[11], r, winIVRSettings_IVRSettings_002_RemoveKeyInSection);
init_thunk(&thunks[0], r, winIVRSettings_IVRSettings_002_GetSettingsErrorNameFromEnum, 1);
init_thunk(&thunks[1], r, winIVRSettings_IVRSettings_002_Sync, 2);
init_thunk(&thunks[2], r, winIVRSettings_IVRSettings_002_SetBool, 4);
init_thunk(&thunks[3], r, winIVRSettings_IVRSettings_002_SetInt32, 4);
init_thunk(&thunks[4], r, winIVRSettings_IVRSettings_002_SetFloat, 4);
init_thunk(&thunks[5], r, winIVRSettings_IVRSettings_002_SetString, 4);
init_thunk(&thunks[6], r, winIVRSettings_IVRSettings_002_GetBool, 3);
init_thunk(&thunks[7], r, winIVRSettings_IVRSettings_002_GetInt32, 3);
init_thunk(&thunks[8], r, winIVRSettings_IVRSettings_002_GetFloat, 3);
init_thunk(&thunks[9], r, winIVRSettings_IVRSettings_002_GetString, 5);
init_thunk(&thunks[10], r, winIVRSettings_IVRSettings_002_RemoveSection, 2);
init_thunk(&thunks[11], r, winIVRSettings_IVRSettings_002_RemoveKeyInSection, 3);
for (i = 0; i < 12; i++)
vtable[i] = &thunks[i];
r->linux_side = linux_side;
@ -320,18 +320,18 @@ winIVRSettings_IVRSettings_001 *create_winIVRSettings_IVRSettings_001_FnTable(vo
int i;
TRACE("-> %p, vtable %p, thunks %p\n", r, vtable, thunks);
init_thunk(&thunks[0], r, winIVRSettings_IVRSettings_001_GetSettingsErrorNameFromEnum);
init_thunk(&thunks[1], r, winIVRSettings_IVRSettings_001_Sync);
init_thunk(&thunks[2], r, winIVRSettings_IVRSettings_001_GetBool);
init_thunk(&thunks[3], r, winIVRSettings_IVRSettings_001_SetBool);
init_thunk(&thunks[4], r, winIVRSettings_IVRSettings_001_GetInt32);
init_thunk(&thunks[5], r, winIVRSettings_IVRSettings_001_SetInt32);
init_thunk(&thunks[6], r, winIVRSettings_IVRSettings_001_GetFloat);
init_thunk(&thunks[7], r, winIVRSettings_IVRSettings_001_SetFloat);
init_thunk(&thunks[8], r, winIVRSettings_IVRSettings_001_GetString);
init_thunk(&thunks[9], r, winIVRSettings_IVRSettings_001_SetString);
init_thunk(&thunks[10], r, winIVRSettings_IVRSettings_001_RemoveSection);
init_thunk(&thunks[11], r, winIVRSettings_IVRSettings_001_RemoveKeyInSection);
init_thunk(&thunks[0], r, winIVRSettings_IVRSettings_001_GetSettingsErrorNameFromEnum, 1);
init_thunk(&thunks[1], r, winIVRSettings_IVRSettings_001_Sync, 2);
init_thunk(&thunks[2], r, winIVRSettings_IVRSettings_001_GetBool, 4);
init_thunk(&thunks[3], r, winIVRSettings_IVRSettings_001_SetBool, 4);
init_thunk(&thunks[4], r, winIVRSettings_IVRSettings_001_GetInt32, 4);
init_thunk(&thunks[5], r, winIVRSettings_IVRSettings_001_SetInt32, 4);
init_thunk(&thunks[6], r, winIVRSettings_IVRSettings_001_GetFloat, 4);
init_thunk(&thunks[7], r, winIVRSettings_IVRSettings_001_SetFloat, 4);
init_thunk(&thunks[8], r, winIVRSettings_IVRSettings_001_GetString, 6);
init_thunk(&thunks[9], r, winIVRSettings_IVRSettings_001_SetString, 4);
init_thunk(&thunks[10], r, winIVRSettings_IVRSettings_001_RemoveSection, 2);
init_thunk(&thunks[11], r, winIVRSettings_IVRSettings_001_RemoveKeyInSection, 3);
for (i = 0; i < 12; i++)
vtable[i] = &thunks[i];
r->linux_side = linux_side;

File diff suppressed because it is too large Load Diff

View File

@ -155,18 +155,18 @@ winIVRTrackedCamera_IVRTrackedCamera_003 *create_winIVRTrackedCamera_IVRTrackedC
int i;
TRACE("-> %p, vtable %p, thunks %p\n", r, vtable, thunks);
init_thunk(&thunks[0], r, winIVRTrackedCamera_IVRTrackedCamera_003_GetCameraErrorNameFromEnum);
init_thunk(&thunks[1], r, winIVRTrackedCamera_IVRTrackedCamera_003_HasCamera);
init_thunk(&thunks[2], r, winIVRTrackedCamera_IVRTrackedCamera_003_GetCameraFrameSize);
init_thunk(&thunks[3], r, winIVRTrackedCamera_IVRTrackedCamera_003_GetCameraIntrinsics);
init_thunk(&thunks[4], r, winIVRTrackedCamera_IVRTrackedCamera_003_GetCameraProjection);
init_thunk(&thunks[5], r, winIVRTrackedCamera_IVRTrackedCamera_003_AcquireVideoStreamingService);
init_thunk(&thunks[6], r, winIVRTrackedCamera_IVRTrackedCamera_003_ReleaseVideoStreamingService);
init_thunk(&thunks[7], r, winIVRTrackedCamera_IVRTrackedCamera_003_GetVideoStreamFrameBuffer);
init_thunk(&thunks[8], r, winIVRTrackedCamera_IVRTrackedCamera_003_GetVideoStreamTextureSize);
init_thunk(&thunks[9], r, winIVRTrackedCamera_IVRTrackedCamera_003_GetVideoStreamTextureD3D11);
init_thunk(&thunks[10], r, winIVRTrackedCamera_IVRTrackedCamera_003_GetVideoStreamTextureGL);
init_thunk(&thunks[11], r, winIVRTrackedCamera_IVRTrackedCamera_003_ReleaseVideoStreamTextureGL);
init_thunk(&thunks[0], r, winIVRTrackedCamera_IVRTrackedCamera_003_GetCameraErrorNameFromEnum, 1);
init_thunk(&thunks[1], r, winIVRTrackedCamera_IVRTrackedCamera_003_HasCamera, 2);
init_thunk(&thunks[2], r, winIVRTrackedCamera_IVRTrackedCamera_003_GetCameraFrameSize, 5);
init_thunk(&thunks[3], r, winIVRTrackedCamera_IVRTrackedCamera_003_GetCameraIntrinsics, 4);
init_thunk(&thunks[4], r, winIVRTrackedCamera_IVRTrackedCamera_003_GetCameraProjection, 5);
init_thunk(&thunks[5], r, winIVRTrackedCamera_IVRTrackedCamera_003_AcquireVideoStreamingService, 2);
init_thunk(&thunks[6], r, winIVRTrackedCamera_IVRTrackedCamera_003_ReleaseVideoStreamingService, 1);
init_thunk(&thunks[7], r, winIVRTrackedCamera_IVRTrackedCamera_003_GetVideoStreamFrameBuffer, 6);
init_thunk(&thunks[8], r, winIVRTrackedCamera_IVRTrackedCamera_003_GetVideoStreamTextureSize, 5);
init_thunk(&thunks[9], r, winIVRTrackedCamera_IVRTrackedCamera_003_GetVideoStreamTextureD3D11, 6);
init_thunk(&thunks[10], r, winIVRTrackedCamera_IVRTrackedCamera_003_GetVideoStreamTextureGL, 5);
init_thunk(&thunks[11], r, winIVRTrackedCamera_IVRTrackedCamera_003_ReleaseVideoStreamTextureGL, 2);
for (i = 0; i < 12; i++)
vtable[i] = &thunks[i];
r->linux_side = linux_side;
@ -288,14 +288,14 @@ winIVRTrackedCamera_IVRTrackedCamera_002 *create_winIVRTrackedCamera_IVRTrackedC
int i;
TRACE("-> %p, vtable %p, thunks %p\n", r, vtable, thunks);
init_thunk(&thunks[0], r, winIVRTrackedCamera_IVRTrackedCamera_002_GetCameraErrorNameFromEnum);
init_thunk(&thunks[1], r, winIVRTrackedCamera_IVRTrackedCamera_002_HasCamera);
init_thunk(&thunks[2], r, winIVRTrackedCamera_IVRTrackedCamera_002_GetCameraFrameSize);
init_thunk(&thunks[3], r, winIVRTrackedCamera_IVRTrackedCamera_002_GetCameraIntrinisics);
init_thunk(&thunks[4], r, winIVRTrackedCamera_IVRTrackedCamera_002_GetCameraProjection);
init_thunk(&thunks[5], r, winIVRTrackedCamera_IVRTrackedCamera_002_AcquireVideoStreamingService);
init_thunk(&thunks[6], r, winIVRTrackedCamera_IVRTrackedCamera_002_ReleaseVideoStreamingService);
init_thunk(&thunks[7], r, winIVRTrackedCamera_IVRTrackedCamera_002_GetVideoStreamFrameBuffer);
init_thunk(&thunks[0], r, winIVRTrackedCamera_IVRTrackedCamera_002_GetCameraErrorNameFromEnum, 1);
init_thunk(&thunks[1], r, winIVRTrackedCamera_IVRTrackedCamera_002_HasCamera, 2);
init_thunk(&thunks[2], r, winIVRTrackedCamera_IVRTrackedCamera_002_GetCameraFrameSize, 5);
init_thunk(&thunks[3], r, winIVRTrackedCamera_IVRTrackedCamera_002_GetCameraIntrinisics, 4);
init_thunk(&thunks[4], r, winIVRTrackedCamera_IVRTrackedCamera_002_GetCameraProjection, 5);
init_thunk(&thunks[5], r, winIVRTrackedCamera_IVRTrackedCamera_002_AcquireVideoStreamingService, 2);
init_thunk(&thunks[6], r, winIVRTrackedCamera_IVRTrackedCamera_002_ReleaseVideoStreamingService, 1);
init_thunk(&thunks[7], r, winIVRTrackedCamera_IVRTrackedCamera_002_GetVideoStreamFrameBuffer, 6);
for (i = 0; i < 8; i++)
vtable[i] = &thunks[i];
r->linux_side = linux_side;
@ -497,24 +497,24 @@ winIVRTrackedCamera_IVRTrackedCamera_001 *create_winIVRTrackedCamera_IVRTrackedC
int i;
TRACE("-> %p, vtable %p, thunks %p\n", r, vtable, thunks);
init_thunk(&thunks[0], r, winIVRTrackedCamera_IVRTrackedCamera_001_HasCamera);
init_thunk(&thunks[1], r, winIVRTrackedCamera_IVRTrackedCamera_001_GetCameraFirmwareDescription);
init_thunk(&thunks[2], r, winIVRTrackedCamera_IVRTrackedCamera_001_GetCameraFrameDimensions);
init_thunk(&thunks[3], r, winIVRTrackedCamera_IVRTrackedCamera_001_SetCameraVideoStreamFormat);
init_thunk(&thunks[4], r, winIVRTrackedCamera_IVRTrackedCamera_001_GetCameraVideoStreamFormat);
init_thunk(&thunks[5], r, winIVRTrackedCamera_IVRTrackedCamera_001_EnableCameraForStreaming);
init_thunk(&thunks[6], r, winIVRTrackedCamera_IVRTrackedCamera_001_StartVideoStream);
init_thunk(&thunks[7], r, winIVRTrackedCamera_IVRTrackedCamera_001_StopVideoStream);
init_thunk(&thunks[8], r, winIVRTrackedCamera_IVRTrackedCamera_001_IsVideoStreamActive);
init_thunk(&thunks[9], r, winIVRTrackedCamera_IVRTrackedCamera_001_GetVideoStreamElapsedTime);
init_thunk(&thunks[10], r, winIVRTrackedCamera_IVRTrackedCamera_001_GetVideoStreamFrame);
init_thunk(&thunks[11], r, winIVRTrackedCamera_IVRTrackedCamera_001_ReleaseVideoStreamFrame);
init_thunk(&thunks[12], r, winIVRTrackedCamera_IVRTrackedCamera_001_SetAutoExposure);
init_thunk(&thunks[13], r, winIVRTrackedCamera_IVRTrackedCamera_001_PauseVideoStream);
init_thunk(&thunks[14], r, winIVRTrackedCamera_IVRTrackedCamera_001_ResumeVideoStream);
init_thunk(&thunks[15], r, winIVRTrackedCamera_IVRTrackedCamera_001_IsVideoStreamPaused);
init_thunk(&thunks[16], r, winIVRTrackedCamera_IVRTrackedCamera_001_GetCameraDistortion);
init_thunk(&thunks[17], r, winIVRTrackedCamera_IVRTrackedCamera_001_GetCameraProjection);
init_thunk(&thunks[0], r, winIVRTrackedCamera_IVRTrackedCamera_001_HasCamera, 1);
init_thunk(&thunks[1], r, winIVRTrackedCamera_IVRTrackedCamera_001_GetCameraFirmwareDescription, 3);
init_thunk(&thunks[2], r, winIVRTrackedCamera_IVRTrackedCamera_001_GetCameraFrameDimensions, 4);
init_thunk(&thunks[3], r, winIVRTrackedCamera_IVRTrackedCamera_001_SetCameraVideoStreamFormat, 2);
init_thunk(&thunks[4], r, winIVRTrackedCamera_IVRTrackedCamera_001_GetCameraVideoStreamFormat, 1);
init_thunk(&thunks[5], r, winIVRTrackedCamera_IVRTrackedCamera_001_EnableCameraForStreaming, 2);
init_thunk(&thunks[6], r, winIVRTrackedCamera_IVRTrackedCamera_001_StartVideoStream, 1);
init_thunk(&thunks[7], r, winIVRTrackedCamera_IVRTrackedCamera_001_StopVideoStream, 1);
init_thunk(&thunks[8], r, winIVRTrackedCamera_IVRTrackedCamera_001_IsVideoStreamActive, 1);
init_thunk(&thunks[9], r, winIVRTrackedCamera_IVRTrackedCamera_001_GetVideoStreamElapsedTime, 1);
init_thunk(&thunks[10], r, winIVRTrackedCamera_IVRTrackedCamera_001_GetVideoStreamFrame, 1);
init_thunk(&thunks[11], r, winIVRTrackedCamera_IVRTrackedCamera_001_ReleaseVideoStreamFrame, 2);
init_thunk(&thunks[12], r, winIVRTrackedCamera_IVRTrackedCamera_001_SetAutoExposure, 2);
init_thunk(&thunks[13], r, winIVRTrackedCamera_IVRTrackedCamera_001_PauseVideoStream, 1);
init_thunk(&thunks[14], r, winIVRTrackedCamera_IVRTrackedCamera_001_ResumeVideoStream, 1);
init_thunk(&thunks[15], r, winIVRTrackedCamera_IVRTrackedCamera_001_IsVideoStreamPaused, 1);
init_thunk(&thunks[16], r, winIVRTrackedCamera_IVRTrackedCamera_001_GetCameraDistortion, 5);
init_thunk(&thunks[17], r, winIVRTrackedCamera_IVRTrackedCamera_001_GetCameraProjection, 6);
for (i = 0; i < 18; i++)
vtable[i] = &thunks[i];
r->linux_side = linux_side;