mirror of https://github.com/bjornbytes/lovr.git
Headset display dimensions;
This commit is contained in:
parent
769ded9c71
commit
9975e695dd
|
@ -19,6 +19,10 @@ const char* lovrHeadsetGetType() {
|
|||
return headset->interface->getType(headset);
|
||||
}
|
||||
|
||||
void lovrHeadsetGetDisplayDimensions(int* width, int* height) {
|
||||
headset->interface->getDisplayDimensions(headset, width, height);
|
||||
}
|
||||
|
||||
void lovrHeadsetGetClipDistance(float* near, float* far) {
|
||||
headset->interface->getClipDistance(headset, near, far);
|
||||
}
|
||||
|
|
|
@ -14,6 +14,7 @@ typedef struct {
|
|||
typedef struct {
|
||||
char (*isPresent)(void* headset);
|
||||
const char* (*getType)(void* headset);
|
||||
void (*getDisplayDimensions)(void* headset, int* width, int* height);
|
||||
void (*getClipDistance)(void* headset, float* near, float* far);
|
||||
void (*setClipDistance)(void* headset, float near, float far);
|
||||
void (*getTrackingSize)(void* headset, float* width, float* depth);
|
||||
|
@ -40,6 +41,7 @@ typedef struct {
|
|||
void lovrHeadsetInit();
|
||||
char lovrHeadsetIsPresent();
|
||||
const char* lovrHeadsetGetType();
|
||||
void lovrHeadsetGetDisplayDimensions(int* width, int* height);
|
||||
void lovrHeadsetGetClipDistance(float* near, float* far);
|
||||
void lovrHeadsetSetClipDistance(float near, float far);
|
||||
void lovrHeadsetGetTrackingSize(float* width, float* depth);
|
||||
|
|
|
@ -34,6 +34,7 @@ typedef struct {
|
|||
static HeadsetInterface interface = {
|
||||
.isPresent = viveIsPresent,
|
||||
.getType = viveGetType,
|
||||
.getDisplayDimensions = viveGetDisplayDimensions,
|
||||
.getClipDistance = viveGetClipDistance,
|
||||
.setClipDistance = viveSetClipDistance,
|
||||
.getTrackingSize = viveGetTrackingSize,
|
||||
|
@ -165,6 +166,13 @@ const char* viveGetType(void* headset) {
|
|||
return "Vive";
|
||||
}
|
||||
|
||||
void viveGetDisplayDimensions(void* headset, int* width, int* height) {
|
||||
Headset* this = (Headset*) headset;
|
||||
ViveState* state = this->state;
|
||||
*width = state->renderWidth;
|
||||
*height = state->renderHeight;
|
||||
}
|
||||
|
||||
void viveGetClipDistance(void* headset, float* near, float* far) {
|
||||
Headset* this = (Headset*) headset;
|
||||
ViveState* state = this->state;
|
||||
|
|
|
@ -4,6 +4,7 @@ Headset* viveInit();
|
|||
void viveDestroy();
|
||||
char viveIsPresent(void* headset);
|
||||
const char* viveGetType(void* headset);
|
||||
void viveGetDisplayDimensions(void* headset, int* width, int* height);
|
||||
void viveGetClipDistance(void* headset, float* near, float* far);
|
||||
void viveSetClipDistance(void* headset, float near, float far);
|
||||
void viveGetTrackingSize(void* headset, float* width, float* depth);
|
||||
|
|
|
@ -14,6 +14,9 @@ void renderHelper(int eyeIndex, void* userdata) {
|
|||
const luaL_Reg lovrHeadset[] = {
|
||||
{ "isPresent", l_lovrHeadsetIsPresent },
|
||||
{ "getType", l_lovrHeadsetGetType },
|
||||
{ "getDisplayWidth", l_lovrHeadsetGetDisplayWidth },
|
||||
{ "getDisplayHeight", l_lovrHeadsetGetDisplayHeight },
|
||||
{ "getDisplayDimensions", l_lovrHeadsetGetDisplayDimensions },
|
||||
{ "getClipDistance", l_lovrHeadsetGetClipDistance },
|
||||
{ "setClipDistance", l_lovrHeadsetSetClipDistance },
|
||||
{ "getTrackingSize", l_lovrHeadsetGetTrackingSize },
|
||||
|
@ -50,6 +53,28 @@ int l_lovrHeadsetGetType(lua_State* L) {
|
|||
return 1;
|
||||
}
|
||||
|
||||
int l_lovrHeadsetGetDisplayWidth(lua_State* L) {
|
||||
int width;
|
||||
lovrHeadsetGetDisplayDimensions(&width, NULL);
|
||||
lua_pushnumber(L, width);
|
||||
return 1;
|
||||
}
|
||||
|
||||
int l_lovrHeadsetGetDisplayHeight(lua_State* L) {
|
||||
int height;
|
||||
lovrHeadsetGetDisplayDimensions(NULL, &height);
|
||||
lua_pushnumber(L, height);
|
||||
return 1;
|
||||
}
|
||||
|
||||
int l_lovrHeadsetGetDisplayDimensions(lua_State* L) {
|
||||
int width, height;
|
||||
lovrHeadsetGetDisplayDimensions(&width, &height);
|
||||
lua_pushnumber(L, width);
|
||||
lua_pushnumber(L, height);
|
||||
return 2;
|
||||
}
|
||||
|
||||
int l_lovrHeadsetGetClipDistance(lua_State* L) {
|
||||
float near, far;
|
||||
lovrHeadsetGetClipDistance(&near, &far);
|
||||
|
|
|
@ -9,6 +9,9 @@ extern const luaL_Reg lovrHeadset[];
|
|||
int l_lovrHeadsetInit(lua_State* L);
|
||||
int l_lovrHeadsetIsPresent(lua_State* L);
|
||||
int l_lovrHeadsetGetType(lua_State* L);
|
||||
int l_lovrHeadsetGetDisplayWidth(lua_State* L);
|
||||
int l_lovrHeadsetGetDisplayHeight(lua_State* L);
|
||||
int l_lovrHeadsetGetDisplayDimensions(lua_State* L);
|
||||
int l_lovrHeadsetGetClipDistance(lua_State* L);
|
||||
int l_lovrHeadsetSetClipDistance(lua_State* L);
|
||||
int l_lovrHeadsetGetTrackingSize(lua_State* L);
|
||||
|
|
Loading…
Reference in New Issue