mirror of
https://github.com/bjornbytes/lovr.git
synced 2024-07-22 21:53:35 +00:00
lovr.headset.getHandles;
This commit is contained in:
parent
72539a6d53
commit
41da42b153
|
@ -61,6 +61,7 @@ dev
|
|||
- Add support for creating a `MeshShape` from a `ModelData`.
|
||||
- Add `Texture:getLabel` and `Shader:getLabel`.
|
||||
- Add `Shader:hasVariable`.
|
||||
- Add `lovr.headset.getHandles`.
|
||||
|
||||
### Change
|
||||
|
||||
|
|
|
@ -702,6 +702,16 @@ static int l_lovrHeadsetGetHands(lua_State* L) {
|
|||
return 1;
|
||||
}
|
||||
|
||||
static int l_lovrHeadsetGetHandles(lua_State* L) {
|
||||
if (lovrHeadsetInterface->driverType == DRIVER_OPENXR) {
|
||||
lua_pushlightuserdata(L, (void*) lovrHeadsetInterface->getOpenXRInstanceHandle());
|
||||
lua_pushlightuserdata(L, (void*) lovrHeadsetInterface->getOpenXRSessionHandle());
|
||||
return 2;
|
||||
} else {
|
||||
return 0;
|
||||
}
|
||||
}
|
||||
|
||||
static const luaL_Reg lovrHeadset[] = {
|
||||
{ "start", l_lovrHeadsetStart },
|
||||
{ "getDriver", l_lovrHeadsetGetDriver },
|
||||
|
@ -754,6 +764,7 @@ static const luaL_Reg lovrHeadset[] = {
|
|||
{ "getTime", l_lovrHeadsetGetTime },
|
||||
{ "getDeltaTime", l_lovrHeadsetGetDeltaTime },
|
||||
{ "getHands", l_lovrHeadsetGetHands },
|
||||
{ "getHandles", l_lovrHeadsetGetHandles },
|
||||
{ NULL, NULL }
|
||||
};
|
||||
|
||||
|
|
|
@ -148,6 +148,8 @@ typedef struct HeadsetInterface {
|
|||
void (*getVulkanPhysicalDevice)(void* instance, uintptr_t physicalDevice);
|
||||
uint32_t (*createVulkanInstance)(void* instanceCreateInfo, void* allocator, uintptr_t instance, void* getInstanceProcAddr);
|
||||
uint32_t (*createVulkanDevice)(void* instance, void* deviceCreateInfo, void* allocator, uintptr_t device, void* getInstanceProcAddr);
|
||||
uintptr_t (*getOpenXRInstanceHandle)(void);
|
||||
uintptr_t (*getOpenXRSessionHandle)(void);
|
||||
bool (*init)(HeadsetConfig* config);
|
||||
void (*start)(void);
|
||||
void (*stop)(void);
|
||||
|
|
|
@ -541,6 +541,14 @@ static uint32_t openxr_createVulkanDevice(void* instance, void* deviceCreateInfo
|
|||
return result;
|
||||
}
|
||||
|
||||
static uintptr_t openxr_getOpenXRInstanceHandle(void) {
|
||||
return (uintptr_t) state.instance;
|
||||
}
|
||||
|
||||
static uintptr_t openxr_getOpenXRSessionHandle(void) {
|
||||
return (uintptr_t) state.session;
|
||||
}
|
||||
|
||||
static void openxr_destroy();
|
||||
static void openxr_setClipDistance(float clipNear, float clipFar);
|
||||
|
||||
|
@ -2859,6 +2867,8 @@ HeadsetInterface lovrHeadsetOpenXRDriver = {
|
|||
.getVulkanPhysicalDevice = openxr_getVulkanPhysicalDevice,
|
||||
.createVulkanInstance = openxr_createVulkanInstance,
|
||||
.createVulkanDevice = openxr_createVulkanDevice,
|
||||
.getOpenXRInstanceHandle = openxr_getOpenXRInstanceHandle,
|
||||
.getOpenXRSessionHandle = openxr_getOpenXRSessionHandle,
|
||||
.init = openxr_init,
|
||||
.start = openxr_start,
|
||||
.stop = openxr_stop,
|
||||
|
|
Loading…
Reference in a new issue