diff --git a/.gitignore b/.gitignore index ed12efc..1afe502 100644 --- a/.gitignore +++ b/.gitignore @@ -25,7 +25,6 @@ $RECYCLE.BIN/ *.apk *.ap_ *.class -*.keystore projects/Android/build/* assets/oculussig* Projects/Android/.externalNativeBuild/ndkBuild/debug/arm64-v8a/android_gradle_build.json @@ -45,3 +44,4 @@ Projects/Android/.externalNativeBuild/ndkBuild/debug/armeabi-v7a/ndkBuild_build_ Projects/Android/.externalNativeBuild/ndkBuild/release/arm64-v8a/ndkBuild_build_output.txt Projects/Android/.gradle/4.6/fileHashes/fileHashes.lock Projects/Android/.gradle/vcsWorkingDirs/gc.properties +drbeef-release-key.keystore diff --git a/Projects/Android/AndroidManifest.xml b/Projects/Android/AndroidManifest.xml index 90bc8bf..288105f 100644 --- a/Projects/Android/AndroidManifest.xml +++ b/Projects/Android/AndroidManifest.xml @@ -1,8 +1,8 @@ + android:versionCode="9" + android:versionName="1.3.0" android:installLocation="auto" > diff --git a/Projects/Android/android.debug.keystore b/Projects/Android/android.debug.keystore new file mode 100644 index 0000000..cdc70bf Binary files /dev/null and b/Projects/Android/android.debug.keystore differ diff --git a/Projects/Android/jni/cl_screen.c b/Projects/Android/jni/cl_screen.c index 929d6de..ec5c76d 100644 --- a/Projects/Android/jni/cl_screen.c +++ b/Projects/Android/jni/cl_screen.c @@ -14,7 +14,7 @@ #include "snd_main.h" cvar_t scr_viewsize = {CVAR_SAVE, "viewsize","100", "how large the view should be, 110 disables inventory bar, 120 disables status bar"}; -cvar_t scr_fov = {CVAR_SAVE, "fov","110", "field of vision, 1-170 degrees, default 110, some players use 110-130"}; +cvar_t scr_fov = {CVAR_SAVE, "vr_fov","108", "field of vision for VR - defaulted to 108"}; cvar_t scr_conalpha = {CVAR_SAVE, "scr_conalpha", "0.85", "opacity of console background gfx/conback"}; cvar_t scr_conalphafactor = {CVAR_SAVE, "scr_conalphafactor", "1", "opacity of console background gfx/conback relative to scr_conalpha; when 0, gfx/conback is not drawn"}; cvar_t scr_conalpha2factor = {CVAR_SAVE, "scr_conalpha2factor", "0", "opacity of console background gfx/conback2 relative to scr_conalpha; when 0, gfx/conback2 is not drawn"}; diff --git a/Projects/Android/jni/menu.c b/Projects/Android/jni/menu.c index fe4f979..202b06b 100644 --- a/Projects/Android/jni/menu.c +++ b/Projects/Android/jni/menu.c @@ -3570,7 +3570,7 @@ static void M_Credits_Draw (void) " QQQQQQQQ QQQQQQQQ ", " QQQ QQQ ", " Q Q ", - " Q Q v1.2.1 "); + " Q Q v1.3.0 "); int i, l, linelength, firstline, lastline, lines; for (i = 0, linelength = 0, firstline = 9999, lastline = -1;m_credits_message[i];i++) diff --git a/Src/QuakeQuest_SurfaceView.c b/Src/QuakeQuest_SurfaceView.c index 92d4805..b8253e5 100644 --- a/Src/QuakeQuest_SurfaceView.c +++ b/Src/QuakeQuest_SurfaceView.c @@ -294,8 +294,9 @@ vec3_t hmdorientation; extern float gunangles[3]; float weaponOffset[3]; -float horizFOV; -float vertFOV; +float vrFOV; +float vrWidth; +float vrHeight; int bigScreen = 1; ovrMatrix4f modelScreen; @@ -719,8 +720,8 @@ static bool ovrFramebuffer_Create( ovrFramebuffer * frameBuffer, const GLenum co PFNGLFRAMEBUFFERTEXTUREMULTISAMPLEMULTIVIEWOVRPROC glFramebufferTextureMultisampleMultiviewOVR = (PFNGLFRAMEBUFFERTEXTUREMULTISAMPLEMULTIVIEWOVRPROC) eglGetProcAddress( "glFramebufferTextureMultisampleMultiviewOVR" ); - frameBuffer->Width = width * SS_MULTIPLIER; - frameBuffer->Height = height * SS_MULTIPLIER; + frameBuffer->Width = width; + frameBuffer->Height = height; frameBuffer->Multisamples = multisamples; frameBuffer->ColorTextureSwapChain = vrapi_CreateTextureSwapChain3( VRAPI_TEXTURE_TYPE_2D, colorFormat, frameBuffer->Width, frameBuffer->Height, 1, 3 ); @@ -1007,29 +1008,28 @@ static void ovrRenderer_Create( ovrRenderer * renderer, const ovrJava * java ) ovrMatrix4f translation = ovrMatrix4f_CreateTranslation( 0, 0, -1.5f ); modelScreen = ovrMatrix4f_Multiply( &modelScreen, &translation ); - horizFOV = vrapi_GetSystemPropertyInt( java, VRAPI_SYS_PROP_SUGGESTED_EYE_FOV_DEGREES_X); - vertFOV = vrapi_GetSystemPropertyInt( java, VRAPI_SYS_PROP_SUGGESTED_EYE_FOV_DEGREES_Y); + vrFOV = vrapi_GetSystemPropertyInt( java, VRAPI_SYS_PROP_SUGGESTED_EYE_FOV_DEGREES_X); // Create the render Textures. for ( int eye = 0; eye < VRAPI_FRAME_LAYER_EYE_MAX; eye++ ) { ovrFramebuffer_Create( &renderer->FrameBuffer[eye], GL_RGBA8, - vrapi_GetSystemPropertyInt( java, VRAPI_SYS_PROP_SUGGESTED_EYE_TEXTURE_WIDTH ), - vrapi_GetSystemPropertyInt( java, VRAPI_SYS_PROP_SUGGESTED_EYE_TEXTURE_HEIGHT ), + (int)vrWidth, + (int)vrHeight, NUM_MULTI_SAMPLES ); } ovrFramebuffer_Create( &renderer->QuakeFrameBuffer, GL_RGBA8, - vrapi_GetSystemPropertyInt( java, VRAPI_SYS_PROP_SUGGESTED_EYE_TEXTURE_WIDTH ), - vrapi_GetSystemPropertyInt( java, VRAPI_SYS_PROP_SUGGESTED_EYE_TEXTURE_HEIGHT ), + (int)vrWidth, + (int)vrHeight, NUM_MULTI_SAMPLES ); // Setup the projection matrix. renderer->ProjectionMatrix = ovrMatrix4f_CreateProjectionFov( - vrapi_GetSystemPropertyFloat( java, VRAPI_SYS_PROP_SUGGESTED_EYE_FOV_DEGREES_X ), - vrapi_GetSystemPropertyFloat( java, VRAPI_SYS_PROP_SUGGESTED_EYE_FOV_DEGREES_Y ), + vrFOV, + vrFOV, 0.0f, 0.0f, 1.0f, 0.0f ); } @@ -1208,35 +1208,19 @@ static ovrLayerProjection2 ovrRenderer_RenderFrame( ovrRenderer * renderer, cons QC_BeginFrame(/* true to stop time if needed in future */ false); - ovrMatrix4f eyeViewMatrixTransposed[2]; - eyeViewMatrixTransposed[0] = ovrMatrix4f_Transpose( &updatedTracking.Eye[0].ViewMatrix ); - eyeViewMatrixTransposed[1] = ovrMatrix4f_Transpose( &updatedTracking.Eye[1].ViewMatrix ); - - ovrMatrix4f projectionMatrixTransposed[2]; - projectionMatrixTransposed[0] = ovrMatrix4f_Transpose( &updatedTracking.Eye[0].ProjectionMatrix ); - projectionMatrixTransposed[1] = ovrMatrix4f_Transpose( &updatedTracking.Eye[1].ProjectionMatrix ); - - ovrLayerProjection2 layer = vrapi_DefaultLayerProjection2(); layer.HeadPose = updatedTracking.HeadPose; for ( int eye = 0; eye < VRAPI_FRAME_LAYER_EYE_MAX; eye++ ) { ovrFramebuffer * frameBuffer = &renderer->FrameBuffer[renderer->NumBuffers == 1 ? 0 : eye]; - layer.Textures[eye].ColorSwapChain = frameBuffer->ColorTextureSwapChain; - layer.Textures[eye].SwapChainIndex = frameBuffer->TextureSwapChainIndex; + layer.Textures[eye].ColorSwapChain = frameBuffer->ColorTextureSwapChain; + layer.Textures[eye].SwapChainIndex = frameBuffer->TextureSwapChainIndex; ovrMatrix4f projectionMatrix; - if (bigScreen) { - projectionMatrix = ovrMatrix4f_CreateProjectionFov(horizFOV, vertFOV, - 0.0f, 0.0f, 0.1f, - 0.0f); - } else{ - projectionMatrix = ovrMatrix4f_CreateProjectionFov(horizFOV, vertFOV+4.0f, - 0.0f, 0.0f, 0.1f, - 0.0f); - } - layer.Textures[eye].TexCoordsFromTanAngles = ovrMatrix4f_TanAngleMatrixFromProjection( - &projectionMatrix); + projectionMatrix = ovrMatrix4f_CreateProjectionFov(vrFOV, vrFOV, + 0.0f, 0.0f, 0.1f, 0.0f); + + layer.Textures[eye].TexCoordsFromTanAngles = ovrMatrix4f_TanAngleMatrixFromProjection(&projectionMatrix); layer.Textures[eye].TextureRect.x = 0; layer.Textures[eye].TextureRect.y = 0; @@ -2270,6 +2254,11 @@ void * AppThreadFunction( void * parm ) // This app will handle android gamepad events itself. vrapi_SetPropertyInt( &appState.Java, VRAPI_EAT_NATIVE_GAMEPAD_EVENTS, 0 ); + //Using a symmetrical render target + vrWidth=vrapi_GetSystemPropertyInt( &java, VRAPI_SYS_PROP_SUGGESTED_EYE_TEXTURE_WIDTH ) * SS_MULTIPLIER; + vrHeight=vrWidth; + + ovrEgl_CreateContext( &appState.Egl, NULL ); EglInitExtensions(); @@ -2306,24 +2295,17 @@ void * AppThreadFunction( void * parm ) { if (!quake_initialised) { - char *arg = (char*)ovrMessage_GetPointerParm( &message, 0 ); - ALOGV( " Initialising Quake Engine" ); - if (arg) - { - QC_SetResolution(vrapi_GetSystemPropertyInt( &java, VRAPI_SYS_PROP_SUGGESTED_EYE_TEXTURE_WIDTH ) * SS_MULTIPLIER, - vrapi_GetSystemPropertyInt( &java, VRAPI_SYS_PROP_SUGGESTED_EYE_TEXTURE_HEIGHT ) * SS_MULTIPLIER); + QC_SetResolution((int)vrWidth, (int)vrHeight); + if (argc != 0) + { main(argc, argv); } else { int argc = 1; char *argv[] = { "quake" }; - - QC_SetResolution(vrapi_GetSystemPropertyInt( &java, VRAPI_SYS_PROP_SUGGESTED_EYE_TEXTURE_WIDTH ) * SS_MULTIPLIER, - vrapi_GetSystemPropertyInt( &java, VRAPI_SYS_PROP_SUGGESTED_EYE_TEXTURE_HEIGHT ) * SS_MULTIPLIER); - main(argc, argv); } diff --git a/assets/commandline.txt b/assets/commandline.txt index 2fe2eff..378dd36 100644 --- a/assets/commandline.txt +++ b/assets/commandline.txt @@ -1 +1 @@ -quake --supersampling 1.3 \ No newline at end of file +quake --supersampling 1.35 \ No newline at end of file diff --git a/assets/config.cfg b/assets/config.cfg index 908c95e..0dbbdaa 100644 --- a/assets/config.cfg +++ b/assets/config.cfg @@ -53,7 +53,7 @@ bind MOUSE2 "+forward" bind MOUSE3 "+mlook" "cl_particles_quality" "2" "cl_stainmaps" "1" -"fov" "110" +"vr_fov" "108" "sensitivity" "4" "snd_speed" "44100" "cl_weapon_offset_ud" "0.1"