static void AntialiasCallback ( void *usused ) { // int old = Cvar_VariableInteger("r_antialias"); int newVal = s_antialias_box.curvalue; float oldscale, newscale, ratio; oldscale = R_AntialiasGetScale(); Cvar_SetValue( "r_antialias", newVal); newscale = R_AntialiasGetScale(); if (Cvar_VariableInteger("vr_enabled")) return; ratio = newscale / oldscale; cursor.x *= ratio; cursor.y *= ratio; }
void OVR_FrameStart(int32_t changeBackBuffers) { if (vr_ovr_maxfov->modified) { int newValue = vr_ovr_maxfov->value ? 1 : 0; if (newValue != (int)vr_ovr_maxfov->value) Cvar_SetInteger("vr_ovr_maxfov",newValue); changeBackBuffers = 1; vr_ovr_maxfov->modified = (qboolean) false; } if (vr_ovr_supersample->modified) { if (vr_ovr_supersample->value < 1.0) Cvar_Set("vr_ovr_supersample", "1.0"); else if (vr_ovr_supersample->value > 2.0) Cvar_Set("vr_ovr_supersample", "2.0"); changeBackBuffers = 1; vr_ovr_supersample->modified = false; } if (useChroma != (qboolean) !!vr_chromatic->value) { useChroma = (qboolean) !!vr_chromatic->value; } if (vr_ovr_lumoverdrive->modified) { changeBackBuffers = 1; currentFrame = 0; vr_ovr_lumoverdrive->modified = false; } if (changeBackBuffers) { int i; float width, height; float ovrScale; OVR_CalculateState(¤tState); width = glConfig.render_width / (float) hmd->Resolution.w; height = glConfig.render_height / (float) hmd->Resolution.h; ovrScale = (width + height) / 2.0; ovrScale *= R_AntialiasGetScale() * vr_ovr_supersample->value; if (vr_ovr_debug->value) Com_Printf("VR_OVR: Set render target scale to %.2f\n",ovrScale); for (i = 0; i < 2; i++) { ovrRecti viewport = {{0,0}, {0,0}}; renderInfo[i].renderTarget = ovrHmd_GetFovTextureSize(hmd, (ovrEyeType) i, renderInfo[i].eyeFov, ovrScale); viewport.Size.w = renderInfo[i].renderTarget.w; viewport.Size.h = renderInfo[i].renderTarget.h; ovrHmd_GetRenderScaleAndOffset(renderInfo[i].eyeFov, renderInfo[i].renderTarget, viewport, (ovrVector2f*) renderInfo[i].UVScaleOffset); if (renderInfo[i].renderTarget.w != renderInfo[i].eyeFBO.width || renderInfo[i].renderTarget.h != renderInfo[i].eyeFBO.height) { if (vr_ovr_debug->value) Com_Printf("VR_OVR: Set buffer %i to size %i x %i\n",i,renderInfo[i].renderTarget.w, renderInfo[i].renderTarget.h); R_ResizeFBO(renderInfo[i].renderTarget.w, renderInfo[i].renderTarget.h, 1, GL_RGBA8, &renderInfo[i].eyeFBO); R_ClearFBO(&renderInfo[i].eyeFBO); } } } }