2018-01-18 13:29:49 -06:00
|
|
|
#include "vrclient_private.h"
|
|
|
|
#include "vrclient_defs.h"
|
|
|
|
#include "openvr_v0.9.18/openvr.h"
|
|
|
|
using namespace vr;
|
|
|
|
extern "C" {
|
|
|
|
#include "struct_converters.h"
|
|
|
|
}
|
|
|
|
#include "cppIVRRenderModels_IVRRenderModels_004.h"
|
|
|
|
#ifdef __cplusplus
|
|
|
|
extern "C" {
|
|
|
|
#endif
|
2023-09-28 10:22:41 +02:00
|
|
|
|
|
|
|
struct cppIVRRenderModels_IVRRenderModels_004
|
|
|
|
{
|
|
|
|
#ifdef __cplusplus
|
|
|
|
virtual uint32_t LoadRenderModel_Async( const char *, RenderModel_t ** ) = 0;
|
|
|
|
virtual void FreeRenderModel( RenderModel_t * ) = 0;
|
|
|
|
virtual uint32_t LoadTexture_Async( int32_t, RenderModel_TextureMap_t ** ) = 0;
|
|
|
|
virtual void FreeTexture( RenderModel_TextureMap_t * ) = 0;
|
|
|
|
virtual uint32_t LoadTextureD3D11_Async( int32_t, void *, void ** ) = 0;
|
|
|
|
virtual void FreeTextureD3D11( void * ) = 0;
|
|
|
|
virtual uint32_t GetRenderModelName( uint32_t, char *, uint32_t ) = 0;
|
|
|
|
virtual uint32_t GetRenderModelCount( ) = 0;
|
|
|
|
virtual uint32_t GetComponentCount( const char * ) = 0;
|
|
|
|
virtual uint32_t GetComponentName( const char *, uint32_t, char *, uint32_t ) = 0;
|
|
|
|
virtual uint64_t GetComponentButtonMask( const char *, const char * ) = 0;
|
|
|
|
virtual uint32_t GetComponentRenderModelName( const char *, const char *, char *, uint32_t ) = 0;
|
|
|
|
virtual bool GetComponentState( const char *, const char *, const VRControllerState_t *, const RenderModel_ControllerMode_State_t *, RenderModel_ComponentState_t * ) = 0;
|
|
|
|
virtual bool RenderModelHasComponent( const char *, const char * ) = 0;
|
|
|
|
#endif /* __cplusplus */
|
|
|
|
};
|
|
|
|
|
2023-09-27 11:05:52 +02:00
|
|
|
void cppIVRRenderModels_IVRRenderModels_004_LoadRenderModel_Async( struct cppIVRRenderModels_IVRRenderModels_004_LoadRenderModel_Async_params *params )
|
2018-01-18 13:29:49 -06:00
|
|
|
{
|
2023-09-28 10:22:41 +02:00
|
|
|
struct cppIVRRenderModels_IVRRenderModels_004 *iface = (struct cppIVRRenderModels_IVRRenderModels_004 *)params->linux_side;
|
2023-09-27 14:09:21 +02:00
|
|
|
RenderModel_t *lin_ppRenderModel;
|
2023-09-28 10:22:41 +02:00
|
|
|
params->_ret = iface->LoadRenderModel_Async( params->pchRenderModelName, params->ppRenderModel ? &lin_ppRenderModel : nullptr );
|
2023-09-27 11:05:52 +02:00
|
|
|
if (params->_ret == 0)
|
|
|
|
*params->ppRenderModel = struct_RenderModel_t_0918_wrap( lin_ppRenderModel );
|
2018-01-18 13:29:49 -06:00
|
|
|
}
|
|
|
|
|
2023-09-27 11:05:52 +02:00
|
|
|
void cppIVRRenderModels_IVRRenderModels_004_FreeRenderModel( struct cppIVRRenderModels_IVRRenderModels_004_FreeRenderModel_params *params )
|
2018-01-18 13:29:49 -06:00
|
|
|
{
|
2023-09-28 10:22:41 +02:00
|
|
|
struct cppIVRRenderModels_IVRRenderModels_004 *iface = (struct cppIVRRenderModels_IVRRenderModels_004 *)params->linux_side;
|
|
|
|
iface->FreeRenderModel( struct_RenderModel_t_0918_unwrap( params->pRenderModel ) );
|
2018-01-18 13:29:49 -06:00
|
|
|
}
|
|
|
|
|
2023-09-27 11:05:52 +02:00
|
|
|
void cppIVRRenderModels_IVRRenderModels_004_LoadTexture_Async( struct cppIVRRenderModels_IVRRenderModels_004_LoadTexture_Async_params *params )
|
2018-01-18 13:29:49 -06:00
|
|
|
{
|
2023-09-28 10:22:41 +02:00
|
|
|
struct cppIVRRenderModels_IVRRenderModels_004 *iface = (struct cppIVRRenderModels_IVRRenderModels_004 *)params->linux_side;
|
2023-09-27 14:09:21 +02:00
|
|
|
RenderModel_TextureMap_t *lin_ppTexture;
|
2023-09-28 10:22:41 +02:00
|
|
|
params->_ret = iface->LoadTexture_Async( params->textureId, params->ppTexture ? &lin_ppTexture : nullptr );
|
2023-09-27 11:05:52 +02:00
|
|
|
if (params->_ret == 0)
|
|
|
|
*params->ppTexture = struct_RenderModel_TextureMap_t_0918_wrap( lin_ppTexture );
|
2018-01-18 13:29:49 -06:00
|
|
|
}
|
|
|
|
|
2023-09-27 11:05:52 +02:00
|
|
|
void cppIVRRenderModels_IVRRenderModels_004_FreeTexture( struct cppIVRRenderModels_IVRRenderModels_004_FreeTexture_params *params )
|
2018-01-18 13:29:49 -06:00
|
|
|
{
|
2023-09-28 10:22:41 +02:00
|
|
|
struct cppIVRRenderModels_IVRRenderModels_004 *iface = (struct cppIVRRenderModels_IVRRenderModels_004 *)params->linux_side;
|
|
|
|
iface->FreeTexture( struct_RenderModel_TextureMap_t_0918_unwrap( params->pTexture ) );
|
2018-01-18 13:29:49 -06:00
|
|
|
}
|
|
|
|
|
2023-09-27 11:05:52 +02:00
|
|
|
void cppIVRRenderModels_IVRRenderModels_004_LoadTextureD3D11_Async( struct cppIVRRenderModels_IVRRenderModels_004_LoadTextureD3D11_Async_params *params )
|
2018-01-18 13:29:49 -06:00
|
|
|
{
|
2023-09-28 10:22:41 +02:00
|
|
|
struct cppIVRRenderModels_IVRRenderModels_004 *iface = (struct cppIVRRenderModels_IVRRenderModels_004 *)params->linux_side;
|
|
|
|
params->_ret = iface->LoadTextureD3D11_Async( params->textureId, params->pD3D11Device, params->ppD3D11Texture2D );
|
2018-01-18 13:29:49 -06:00
|
|
|
}
|
|
|
|
|
2023-09-27 11:05:52 +02:00
|
|
|
void cppIVRRenderModels_IVRRenderModels_004_FreeTextureD3D11( struct cppIVRRenderModels_IVRRenderModels_004_FreeTextureD3D11_params *params )
|
2018-01-18 13:29:49 -06:00
|
|
|
{
|
2023-09-28 10:22:41 +02:00
|
|
|
struct cppIVRRenderModels_IVRRenderModels_004 *iface = (struct cppIVRRenderModels_IVRRenderModels_004 *)params->linux_side;
|
|
|
|
iface->FreeTextureD3D11( params->pD3D11Texture2D );
|
2018-01-18 13:29:49 -06:00
|
|
|
}
|
|
|
|
|
2023-09-27 11:05:52 +02:00
|
|
|
void cppIVRRenderModels_IVRRenderModels_004_GetRenderModelName( struct cppIVRRenderModels_IVRRenderModels_004_GetRenderModelName_params *params )
|
2018-01-18 13:29:49 -06:00
|
|
|
{
|
2023-09-28 10:22:41 +02:00
|
|
|
struct cppIVRRenderModels_IVRRenderModels_004 *iface = (struct cppIVRRenderModels_IVRRenderModels_004 *)params->linux_side;
|
|
|
|
params->_ret = iface->GetRenderModelName( params->unRenderModelIndex, params->pchRenderModelName, params->unRenderModelNameLen );
|
2018-01-18 13:29:49 -06:00
|
|
|
}
|
|
|
|
|
2023-09-27 11:05:52 +02:00
|
|
|
void cppIVRRenderModels_IVRRenderModels_004_GetRenderModelCount( struct cppIVRRenderModels_IVRRenderModels_004_GetRenderModelCount_params *params )
|
2018-01-18 13:29:49 -06:00
|
|
|
{
|
2023-09-28 10:22:41 +02:00
|
|
|
struct cppIVRRenderModels_IVRRenderModels_004 *iface = (struct cppIVRRenderModels_IVRRenderModels_004 *)params->linux_side;
|
|
|
|
params->_ret = iface->GetRenderModelCount( );
|
2018-01-18 13:29:49 -06:00
|
|
|
}
|
|
|
|
|
2023-09-27 11:05:52 +02:00
|
|
|
void cppIVRRenderModels_IVRRenderModels_004_GetComponentCount( struct cppIVRRenderModels_IVRRenderModels_004_GetComponentCount_params *params )
|
2018-01-18 13:29:49 -06:00
|
|
|
{
|
2023-09-28 10:22:41 +02:00
|
|
|
struct cppIVRRenderModels_IVRRenderModels_004 *iface = (struct cppIVRRenderModels_IVRRenderModels_004 *)params->linux_side;
|
|
|
|
params->_ret = iface->GetComponentCount( params->pchRenderModelName );
|
2018-01-18 13:29:49 -06:00
|
|
|
}
|
|
|
|
|
2023-09-27 11:05:52 +02:00
|
|
|
void cppIVRRenderModels_IVRRenderModels_004_GetComponentName( struct cppIVRRenderModels_IVRRenderModels_004_GetComponentName_params *params )
|
2018-01-18 13:29:49 -06:00
|
|
|
{
|
2023-09-28 10:22:41 +02:00
|
|
|
struct cppIVRRenderModels_IVRRenderModels_004 *iface = (struct cppIVRRenderModels_IVRRenderModels_004 *)params->linux_side;
|
|
|
|
params->_ret = iface->GetComponentName( params->pchRenderModelName, params->unComponentIndex, params->pchComponentName, params->unComponentNameLen );
|
2018-01-18 13:29:49 -06:00
|
|
|
}
|
|
|
|
|
2023-09-27 11:05:52 +02:00
|
|
|
void cppIVRRenderModels_IVRRenderModels_004_GetComponentButtonMask( struct cppIVRRenderModels_IVRRenderModels_004_GetComponentButtonMask_params *params )
|
2018-01-18 13:29:49 -06:00
|
|
|
{
|
2023-09-28 10:22:41 +02:00
|
|
|
struct cppIVRRenderModels_IVRRenderModels_004 *iface = (struct cppIVRRenderModels_IVRRenderModels_004 *)params->linux_side;
|
|
|
|
params->_ret = iface->GetComponentButtonMask( params->pchRenderModelName, params->pchComponentName );
|
2018-01-18 13:29:49 -06:00
|
|
|
}
|
|
|
|
|
2023-09-27 11:05:52 +02:00
|
|
|
void cppIVRRenderModels_IVRRenderModels_004_GetComponentRenderModelName( struct cppIVRRenderModels_IVRRenderModels_004_GetComponentRenderModelName_params *params )
|
2018-01-18 13:29:49 -06:00
|
|
|
{
|
2023-09-28 10:22:41 +02:00
|
|
|
struct cppIVRRenderModels_IVRRenderModels_004 *iface = (struct cppIVRRenderModels_IVRRenderModels_004 *)params->linux_side;
|
|
|
|
params->_ret = iface->GetComponentRenderModelName( params->pchRenderModelName, params->pchComponentName, params->pchComponentRenderModelName, params->unComponentRenderModelNameLen );
|
2018-01-18 13:29:49 -06:00
|
|
|
}
|
|
|
|
|
2023-09-27 11:05:52 +02:00
|
|
|
void cppIVRRenderModels_IVRRenderModels_004_GetComponentState( struct cppIVRRenderModels_IVRRenderModels_004_GetComponentState_params *params )
|
2018-01-18 13:29:49 -06:00
|
|
|
{
|
2023-09-28 10:22:41 +02:00
|
|
|
struct cppIVRRenderModels_IVRRenderModels_004 *iface = (struct cppIVRRenderModels_IVRRenderModels_004 *)params->linux_side;
|
|
|
|
VRControllerState_t lin_pControllerState;
|
2023-09-27 11:05:52 +02:00
|
|
|
if (params->pControllerState)
|
|
|
|
struct_VRControllerState001_t_0918_win_to_lin( params->pControllerState, &lin_pControllerState );
|
2023-09-28 10:22:41 +02:00
|
|
|
params->_ret = iface->GetComponentState( params->pchRenderModelName, params->pchComponentName, params->pControllerState ? &lin_pControllerState : nullptr, params->pState, params->pComponentState );
|
2018-01-18 13:29:49 -06:00
|
|
|
}
|
|
|
|
|
2023-09-27 11:05:52 +02:00
|
|
|
void cppIVRRenderModels_IVRRenderModels_004_RenderModelHasComponent( struct cppIVRRenderModels_IVRRenderModels_004_RenderModelHasComponent_params *params )
|
2018-01-18 13:29:49 -06:00
|
|
|
{
|
2023-09-28 10:22:41 +02:00
|
|
|
struct cppIVRRenderModels_IVRRenderModels_004 *iface = (struct cppIVRRenderModels_IVRRenderModels_004 *)params->linux_side;
|
|
|
|
params->_ret = iface->RenderModelHasComponent( params->pchRenderModelName, params->pchComponentName );
|
2018-01-18 13:29:49 -06:00
|
|
|
}
|
|
|
|
|
|
|
|
#ifdef __cplusplus
|
|
|
|
}
|
|
|
|
#endif
|