mirror of
https://github.com/DrBeef/QuestZDoom.git
synced 2025-06-01 09:02:10 +00:00
- moved the set refresh rate execution on initialization instead of setting it on every frame (dynamic throttling should happen)
- check if passed refresh rate is supported by the device before set it - added public QzDoom_SetRefreshRate to change refresh rate in game
This commit is contained in:
parent
1dd0e88cff
commit
3b4e8ce848
2 changed files with 29 additions and 6 deletions
|
@ -701,7 +701,7 @@ void ovrRenderer_Create( int width, int height, ovrRenderer * renderer, const ov
|
||||||
renderer->NumBuffers = VRAPI_FRAME_LAYER_EYE_MAX;
|
renderer->NumBuffers = VRAPI_FRAME_LAYER_EYE_MAX;
|
||||||
|
|
||||||
//Now using a symmetrical render target, based on the horizontal FOV
|
//Now using a symmetrical render target, based on the horizontal FOV
|
||||||
QzDoom_GetFOV();
|
//QzDoom_GetFOV();
|
||||||
|
|
||||||
// Create the render Textures.
|
// Create the render Textures.
|
||||||
for ( int eye = 0; eye < VRAPI_FRAME_LAYER_EYE_MAX; eye++ )
|
for ( int eye = 0; eye < VRAPI_FRAME_LAYER_EYE_MAX; eye++ )
|
||||||
|
@ -1335,6 +1335,29 @@ int QzDoom_GetRefresh()
|
||||||
return vrapi_GetSystemPropertyInt(&gAppState.Java, VRAPI_SYS_PROP_DISPLAY_REFRESH_RATE);
|
return vrapi_GetSystemPropertyInt(&gAppState.Java, VRAPI_SYS_PROP_DISPLAY_REFRESH_RATE);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
int QzDoom_SetRefreshRate(int refreshRate)
|
||||||
|
{
|
||||||
|
return vrapi_SetDisplayRefreshRate(gAppState.Ovr, (float)refreshRate);
|
||||||
|
}
|
||||||
|
|
||||||
|
bool QzDoom_IsRefreshSupported(int refreshRate)
|
||||||
|
{
|
||||||
|
int size = vrapi_GetSystemPropertyInt(&gAppState.Java, VRAPI_SYS_PROP_NUM_SUPPORTED_DISPLAY_REFRESH_RATES);
|
||||||
|
float supported_rates[size];
|
||||||
|
int elements = vrapi_GetSystemPropertyFloatArray(&gAppState.Java,
|
||||||
|
VRAPI_SYS_PROP_SUPPORTED_DISPLAY_REFRESH_RATES,
|
||||||
|
supported_rates, size);
|
||||||
|
for (int i = 0; i < size; i++)
|
||||||
|
{
|
||||||
|
if (refreshRate == (int)supported_rates[i])
|
||||||
|
{
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
ALOGV("Refresh rate not supported: %dHz", refreshRate);
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
float QzDoom_GetFOV()
|
float QzDoom_GetFOV()
|
||||||
{
|
{
|
||||||
vrFOV = vrapi_GetSystemPropertyInt(&gAppState.Java, VRAPI_SYS_PROP_SUGGESTED_EYE_FOV_DEGREES_Y);
|
vrFOV = vrapi_GetSystemPropertyInt(&gAppState.Java, VRAPI_SYS_PROP_SUGGESTED_EYE_FOV_DEGREES_Y);
|
||||||
|
@ -1499,6 +1522,10 @@ void * AppThreadFunction(void * parm ) {
|
||||||
return NULL;
|
return NULL;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (QzDoom_IsRefreshSupported(DISPLAY_REFRESH)) {
|
||||||
|
QzDoom_SetRefreshRate(DISPLAY_REFRESH);
|
||||||
|
}
|
||||||
|
|
||||||
// Create the scene if not yet created.
|
// Create the scene if not yet created.
|
||||||
ovrScene_Create( m_width, m_height, &gAppState.Scene, &java );
|
ovrScene_Create( m_width, m_height, &gAppState.Scene, &java );
|
||||||
|
|
||||||
|
@ -1530,11 +1557,6 @@ void QzDoom_FrameSetup()
|
||||||
{
|
{
|
||||||
//Use floor based tracking space
|
//Use floor based tracking space
|
||||||
vrapi_SetTrackingSpace(gAppState.Ovr, VRAPI_TRACKING_SPACE_LOCAL_FLOOR);
|
vrapi_SetTrackingSpace(gAppState.Ovr, VRAPI_TRACKING_SPACE_LOCAL_FLOOR);
|
||||||
|
|
||||||
//Set the screen refresh - repeat this every frame so VrApi doesn't try changing it on us
|
|
||||||
if (DISPLAY_REFRESH != -1) {
|
|
||||||
vrapi_SetDisplayRefreshRate(gAppState.Ovr, DISPLAY_REFRESH);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
void QzDoom_processHaptics() {//Handle haptics
|
void QzDoom_processHaptics() {//Handle haptics
|
||||||
|
|
|
@ -92,6 +92,7 @@ void QzDoom_setUseScreenLayer(bool use);
|
||||||
void QzDoom_processHaptics();
|
void QzDoom_processHaptics();
|
||||||
void QzDoom_getHMDOrientation(ovrTracking2 *tracking);
|
void QzDoom_getHMDOrientation(ovrTracking2 *tracking);
|
||||||
void QzDoom_getTrackedRemotesOrientation(int vr_control_scheme);
|
void QzDoom_getTrackedRemotesOrientation(int vr_control_scheme);
|
||||||
|
int QzDoom_SetRefreshRate(int refreshRate);
|
||||||
|
|
||||||
void QzDoom_HapticEvent(const char* event, int position, int intensity, float angle, float yHeight );
|
void QzDoom_HapticEvent(const char* event, int position, int intensity, float angle, float yHeight );
|
||||||
void QzDoom_HapticEnable();
|
void QzDoom_HapticEnable();
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue