2018-01-18 20:29:49 +01:00
|
|
|
#include "vrclient_private.h"
|
|
|
|
#include "vrclient_defs.h"
|
|
|
|
#include "openvr_v0.9.15/openvr.h"
|
|
|
|
using namespace vr;
|
|
|
|
extern "C" {
|
|
|
|
#include "struct_converters.h"
|
|
|
|
}
|
|
|
|
#include "cppIVRRenderModels_IVRRenderModels_002.h"
|
|
|
|
#ifdef __cplusplus
|
|
|
|
extern "C" {
|
|
|
|
#endif
|
2023-09-28 10:22:41 +02:00
|
|
|
|
|
|
|
struct cppIVRRenderModels_IVRRenderModels_002
|
|
|
|
{
|
|
|
|
#ifdef __cplusplus
|
|
|
|
virtual bool LoadRenderModel( const char *, RenderModel_t ** ) = 0;
|
|
|
|
virtual void FreeRenderModel( RenderModel_t * ) = 0;
|
|
|
|
virtual bool LoadTexture( int32_t, RenderModel_TextureMap_t ** ) = 0;
|
|
|
|
virtual void FreeTexture( RenderModel_TextureMap_t * ) = 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 *, 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_002_LoadRenderModel( struct cppIVRRenderModels_IVRRenderModels_002_LoadRenderModel_params *params )
|
2018-01-18 20:29:49 +01:00
|
|
|
{
|
2023-09-28 10:22:41 +02:00
|
|
|
struct cppIVRRenderModels_IVRRenderModels_002 *iface = (struct cppIVRRenderModels_IVRRenderModels_002 *)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( params->pchRenderModelName, params->ppRenderModel ? &lin_ppRenderModel : nullptr );
|
2023-09-27 11:05:52 +02:00
|
|
|
if (params->_ret == 0)
|
|
|
|
*params->ppRenderModel = struct_RenderModel_t_0915_wrap( lin_ppRenderModel );
|
2018-01-18 20:29:49 +01:00
|
|
|
}
|
|
|
|
|
2023-09-27 11:05:52 +02:00
|
|
|
void cppIVRRenderModels_IVRRenderModels_002_FreeRenderModel( struct cppIVRRenderModels_IVRRenderModels_002_FreeRenderModel_params *params )
|
2018-01-18 20:29:49 +01:00
|
|
|
{
|
2023-09-28 10:22:41 +02:00
|
|
|
struct cppIVRRenderModels_IVRRenderModels_002 *iface = (struct cppIVRRenderModels_IVRRenderModels_002 *)params->linux_side;
|
|
|
|
iface->FreeRenderModel( struct_RenderModel_t_0915_unwrap( params->pRenderModel ) );
|
2018-01-18 20:29:49 +01:00
|
|
|
}
|
|
|
|
|
2023-09-27 11:05:52 +02:00
|
|
|
void cppIVRRenderModels_IVRRenderModels_002_LoadTexture( struct cppIVRRenderModels_IVRRenderModels_002_LoadTexture_params *params )
|
2018-01-18 20:29:49 +01:00
|
|
|
{
|
2023-09-28 10:22:41 +02:00
|
|
|
struct cppIVRRenderModels_IVRRenderModels_002 *iface = (struct cppIVRRenderModels_IVRRenderModels_002 *)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( 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_0915_wrap( lin_ppTexture );
|
2018-01-18 20:29:49 +01:00
|
|
|
}
|
|
|
|
|
2023-09-27 11:05:52 +02:00
|
|
|
void cppIVRRenderModels_IVRRenderModels_002_FreeTexture( struct cppIVRRenderModels_IVRRenderModels_002_FreeTexture_params *params )
|
2018-01-18 20:29:49 +01:00
|
|
|
{
|
2023-09-28 10:22:41 +02:00
|
|
|
struct cppIVRRenderModels_IVRRenderModels_002 *iface = (struct cppIVRRenderModels_IVRRenderModels_002 *)params->linux_side;
|
|
|
|
iface->FreeTexture( struct_RenderModel_TextureMap_t_0915_unwrap( params->pTexture ) );
|
2018-01-18 20:29:49 +01:00
|
|
|
}
|
|
|
|
|
2023-09-27 11:05:52 +02:00
|
|
|
void cppIVRRenderModels_IVRRenderModels_002_GetRenderModelName( struct cppIVRRenderModels_IVRRenderModels_002_GetRenderModelName_params *params )
|
2018-01-18 20:29:49 +01:00
|
|
|
{
|
2023-09-28 10:22:41 +02:00
|
|
|
struct cppIVRRenderModels_IVRRenderModels_002 *iface = (struct cppIVRRenderModels_IVRRenderModels_002 *)params->linux_side;
|
|
|
|
params->_ret = iface->GetRenderModelName( params->unRenderModelIndex, params->pchRenderModelName, params->unRenderModelNameLen );
|
2018-01-18 20:29:49 +01:00
|
|
|
}
|
|
|
|
|
2023-09-27 11:05:52 +02:00
|
|
|
void cppIVRRenderModels_IVRRenderModels_002_GetRenderModelCount( struct cppIVRRenderModels_IVRRenderModels_002_GetRenderModelCount_params *params )
|
2018-01-18 20:29:49 +01:00
|
|
|
{
|
2023-09-28 10:22:41 +02:00
|
|
|
struct cppIVRRenderModels_IVRRenderModels_002 *iface = (struct cppIVRRenderModels_IVRRenderModels_002 *)params->linux_side;
|
|
|
|
params->_ret = iface->GetRenderModelCount( );
|
2018-01-18 20:29:49 +01:00
|
|
|
}
|
|
|
|
|
2023-09-27 11:05:52 +02:00
|
|
|
void cppIVRRenderModels_IVRRenderModels_002_GetComponentCount( struct cppIVRRenderModels_IVRRenderModels_002_GetComponentCount_params *params )
|
2018-01-18 20:29:49 +01:00
|
|
|
{
|
2023-09-28 10:22:41 +02:00
|
|
|
struct cppIVRRenderModels_IVRRenderModels_002 *iface = (struct cppIVRRenderModels_IVRRenderModels_002 *)params->linux_side;
|
|
|
|
params->_ret = iface->GetComponentCount( params->pchRenderModelName );
|
2018-01-18 20:29:49 +01:00
|
|
|
}
|
|
|
|
|
2023-09-27 11:05:52 +02:00
|
|
|
void cppIVRRenderModels_IVRRenderModels_002_GetComponentName( struct cppIVRRenderModels_IVRRenderModels_002_GetComponentName_params *params )
|
2018-01-18 20:29:49 +01:00
|
|
|
{
|
2023-09-28 10:22:41 +02:00
|
|
|
struct cppIVRRenderModels_IVRRenderModels_002 *iface = (struct cppIVRRenderModels_IVRRenderModels_002 *)params->linux_side;
|
|
|
|
params->_ret = iface->GetComponentName( params->pchRenderModelName, params->unComponentIndex, params->pchComponentName, params->unComponentNameLen );
|
2018-01-18 20:29:49 +01:00
|
|
|
}
|
|
|
|
|
2023-09-27 11:05:52 +02:00
|
|
|
void cppIVRRenderModels_IVRRenderModels_002_GetComponentButtonMask( struct cppIVRRenderModels_IVRRenderModels_002_GetComponentButtonMask_params *params )
|
2018-01-18 20:29:49 +01:00
|
|
|
{
|
2023-09-28 10:22:41 +02:00
|
|
|
struct cppIVRRenderModels_IVRRenderModels_002 *iface = (struct cppIVRRenderModels_IVRRenderModels_002 *)params->linux_side;
|
|
|
|
params->_ret = iface->GetComponentButtonMask( params->pchRenderModelName, params->pchComponentName );
|
2018-01-18 20:29:49 +01:00
|
|
|
}
|
|
|
|
|
2023-09-27 11:05:52 +02:00
|
|
|
void cppIVRRenderModels_IVRRenderModels_002_GetComponentRenderModelName( struct cppIVRRenderModels_IVRRenderModels_002_GetComponentRenderModelName_params *params )
|
2018-01-18 20:29:49 +01:00
|
|
|
{
|
2023-09-28 10:22:41 +02:00
|
|
|
struct cppIVRRenderModels_IVRRenderModels_002 *iface = (struct cppIVRRenderModels_IVRRenderModels_002 *)params->linux_side;
|
|
|
|
params->_ret = iface->GetComponentRenderModelName( params->pchRenderModelName, params->pchComponentName, params->pchComponentRenderModelName, params->unComponentRenderModelNameLen );
|
2018-01-18 20:29:49 +01:00
|
|
|
}
|
|
|
|
|
2023-09-27 11:05:52 +02:00
|
|
|
void cppIVRRenderModels_IVRRenderModels_002_GetComponentState( struct cppIVRRenderModels_IVRRenderModels_002_GetComponentState_params *params )
|
2018-01-18 20:29:49 +01:00
|
|
|
{
|
2023-09-28 10:22:41 +02:00
|
|
|
struct cppIVRRenderModels_IVRRenderModels_002 *iface = (struct cppIVRRenderModels_IVRRenderModels_002 *)params->linux_side;
|
|
|
|
VRControllerState_t lin_pControllerState;
|
2023-09-27 11:05:52 +02:00
|
|
|
if (params->pControllerState)
|
|
|
|
struct_VRControllerState001_t_0915_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->pComponentState );
|
2018-01-18 20:29:49 +01:00
|
|
|
}
|
|
|
|
|
2023-09-27 11:05:52 +02:00
|
|
|
void cppIVRRenderModels_IVRRenderModels_002_RenderModelHasComponent( struct cppIVRRenderModels_IVRRenderModels_002_RenderModelHasComponent_params *params )
|
2018-01-18 20:29:49 +01:00
|
|
|
{
|
2023-09-28 10:22:41 +02:00
|
|
|
struct cppIVRRenderModels_IVRRenderModels_002 *iface = (struct cppIVRRenderModels_IVRRenderModels_002 *)params->linux_side;
|
|
|
|
params->_ret = iface->RenderModelHasComponent( params->pchRenderModelName, params->pchComponentName );
|
2018-01-18 20:29:49 +01:00
|
|
|
}
|
|
|
|
|
|
|
|
#ifdef __cplusplus
|
|
|
|
}
|
|
|
|
#endif
|