From 21919038031d6df21f567444ce093680e373925b Mon Sep 17 00:00:00 2001 From: Zach Pomerantz Date: Mon, 17 Oct 2016 10:48:51 -0700 Subject: [PATCH] avoid uninitialized oculus gl calls --- plugins/oculus/src/OculusDisplayPlugin.cpp | 9 ++++++++- plugins/oculus/src/OculusDisplayPlugin.h | 1 + 2 files changed, 9 insertions(+), 1 deletion(-) diff --git a/plugins/oculus/src/OculusDisplayPlugin.cpp b/plugins/oculus/src/OculusDisplayPlugin.cpp index b5f4d79042..4f12e71d13 100644 --- a/plugins/oculus/src/OculusDisplayPlugin.cpp +++ b/plugins/oculus/src/OculusDisplayPlugin.cpp @@ -60,12 +60,14 @@ void OculusDisplayPlugin::customizeContext() { ovrResult result = ovr_CreateTextureSwapChainGL(_session, &desc, &_textureSwapChain); if (!OVR_SUCCESS(result)) { logFatal("Failed to create swap textures"); + return; } int length = 0; result = ovr_GetTextureSwapChainLength(_session, _textureSwapChain, &length); if (!OVR_SUCCESS(result) || !length) { - qFatal("Unable to count swap chain textures"); + logFatal("Unable to count swap chain textures"); + return; } for (int i = 0; i < length; ++i) { GLuint chainTexId; @@ -83,6 +85,7 @@ void OculusDisplayPlugin::customizeContext() { _sceneLayer.ColorTexture[0] = _textureSwapChain; // not needed since the structure was zeroed on init, but explicit _sceneLayer.ColorTexture[1] = nullptr; + _customized = true; } void OculusDisplayPlugin::uncustomizeContext() { @@ -98,10 +101,14 @@ void OculusDisplayPlugin::uncustomizeContext() { ovr_DestroyTextureSwapChain(_session, _textureSwapChain); _textureSwapChain = nullptr; _outputFramebuffer.reset(); + _customized = false; Parent::uncustomizeContext(); } void OculusDisplayPlugin::hmdPresent() { + if (!_customized) { + return; + } PROFILE_RANGE_EX(__FUNCTION__, 0xff00ff00, (uint64_t)_currentFrame->frameIndex) diff --git a/plugins/oculus/src/OculusDisplayPlugin.h b/plugins/oculus/src/OculusDisplayPlugin.h index 4d10fd38a5..0c7d57c4f4 100644 --- a/plugins/oculus/src/OculusDisplayPlugin.h +++ b/plugins/oculus/src/OculusDisplayPlugin.h @@ -32,5 +32,6 @@ private: static const QString NAME; ovrTextureSwapChain _textureSwapChain; gpu::FramebufferPointer _outputFramebuffer; + bool _customized { false }; };