From b0f166987a55a0de21720b568ac3bd29991d22c7 Mon Sep 17 00:00:00 2001
From: Fabio Alessandrelli <fabio.alessandrelli@gmail.com>
Date: Tue, 25 Sep 2018 12:19:34 +0200
Subject: [PATCH] Server platform builds (dummy) mobile_vr module.

Protect GL functions in mobile_vr with ifdefs.
---
 modules/mobile_vr/mobile_vr_interface.cpp | 6 ++++++
 modules/mobile_vr/mobile_vr_interface.h   | 6 ++++++
 platform/server/detect.py                 | 4 +---
 3 files changed, 13 insertions(+), 3 deletions(-)

diff --git a/modules/mobile_vr/mobile_vr_interface.cpp b/modules/mobile_vr/mobile_vr_interface.cpp
index e2c630565f3..2cabc7bd599 100644
--- a/modules/mobile_vr/mobile_vr_interface.cpp
+++ b/modules/mobile_vr/mobile_vr_interface.cpp
@@ -297,6 +297,7 @@ bool MobileVRInterface::initialize() {
 		mag_current_min = Vector3(0, 0, 0);
 		mag_current_max = Vector3(0, 0, 0);
 
+#if !defined(SERVER_ENABLED)
 		// build our shader
 		if (lens_shader == NULL) {
 			///@TODO need to switch between GLES2 and GLES3 version, Reduz suggested moving this into our drivers and making this a core shader
@@ -337,6 +338,7 @@ bool MobileVRInterface::initialize() {
 			glBindVertexArray(0);
 			glBindBuffer(GL_ARRAY_BUFFER, 0); //unbind
 		}
+#endif
 
 		// reset our orientation
 		orientation = Basis();
@@ -360,6 +362,7 @@ void MobileVRInterface::uninitialize() {
 			arvr_server->clear_primary_interface_if(this);
 		}
 
+#if !defined(SERVER_ENABLED)
 		// cleanup our shader and buffers
 		if (lens_shader != NULL) {
 			glDeleteVertexArrays(1, &half_screen_array);
@@ -368,6 +371,7 @@ void MobileVRInterface::uninitialize() {
 			delete lens_shader;
 			lens_shader = NULL;
 		}
+#endif
 
 		initialized = false;
 	};
@@ -470,6 +474,7 @@ void MobileVRInterface::commit_for_eye(ARVRInterface::Eyes p_eye, RID p_render_t
 	// get our render target
 	RID eye_texture = VSG::storage->render_target_get_texture(p_render_target);
 	uint32_t texid = VS::get_singleton()->texture_get_texid(eye_texture);
+#if !defined(SERVER_ENABLED)
 	glActiveTexture(GL_TEXTURE0);
 	glBindTexture(GL_TEXTURE_2D, texid);
 
@@ -484,6 +489,7 @@ void MobileVRInterface::commit_for_eye(ARVRInterface::Eyes p_eye, RID p_render_t
 	glBindVertexArray(half_screen_array);
 	glDrawArrays(GL_TRIANGLE_FAN, 0, 4);
 	glBindVertexArray(0);
+#endif
 };
 
 void MobileVRInterface::process() {
diff --git a/modules/mobile_vr/mobile_vr_interface.h b/modules/mobile_vr/mobile_vr_interface.h
index cee0cca90e3..63cad4c7382 100644
--- a/modules/mobile_vr/mobile_vr_interface.h
+++ b/modules/mobile_vr/mobile_vr_interface.h
@@ -34,7 +34,9 @@
 #include "servers/arvr/arvr_interface.h"
 #include "servers/arvr/arvr_positional_tracker.h"
 
+#if !defined(SERVER_ENABLED)
 #include "shaders/lens_distorted.glsl.gen.h"
+#endif
 
 /**
 	@author Bastiaan Olij <mux213@gmail.com>
@@ -58,9 +60,13 @@ private:
 	float eye_height;
 	uint64_t last_ticks;
 
+#if !defined(SERVER_ENABLED)
 	LensDistortedShaderGLES3 *lens_shader;
 	GLuint half_screen_quad;
 	GLuint half_screen_array;
+#else
+	void *lens_shader;
+#endif
 
 	real_t intraocular_dist;
 	real_t display_width;
diff --git a/platform/server/detect.py b/platform/server/detect.py
index e921bf4a5f4..597a2ff6a06 100644
--- a/platform/server/detect.py
+++ b/platform/server/detect.py
@@ -29,9 +29,7 @@ def get_opts():
 
 def get_flags():
 
-    return [
-            ("module_mobile_vr_enabled", False),
-    ]
+    return []
 
 
 def configure(env):