diff --git a/openrct2.vcxproj b/openrct2.vcxproj
index 5f2f90147a..1ca09d060e 100644
--- a/openrct2.vcxproj
+++ b/openrct2.vcxproj
@@ -494,7 +494,7 @@
Level3
Disabled
true
- $(OpenRCT2_DEFINES);DEBUG;_CRT_SECURE_NO_WARNINGS;_USE_MATH_DEFINES;CURL_STATICLIB;SDL_MAIN_HANDLED;_WINSOCK_DEPRECATED_NO_WARNINGS;%(PreprocessorDefinitions)
+ $(OpenRCT2_DEFINES);DEBUG;OPENGL_NO_LINK;_CRT_SECURE_NO_WARNINGS;_USE_MATH_DEFINES;CURL_STATICLIB;SDL_MAIN_HANDLED;_WINSOCK_DEPRECATED_NO_WARNINGS;%(PreprocessorDefinitions)
MultiThreaded
true
$(IntDir)\%(RelativeDir)
@@ -521,7 +521,7 @@
4013
false
- $(OpenRCT2_DEFINES);_CRT_SECURE_NO_WARNINGS;_USE_MATH_DEFINES;CURL_STATICLIB;SDL_MAIN_HANDLED;%(PreprocessorDefinitions)
+ $(OpenRCT2_DEFINES);OPENGL_NO_LINK;_CRT_SECURE_NO_WARNINGS;_USE_MATH_DEFINES;CURL_STATICLIB;SDL_MAIN_HANDLED;%(PreprocessorDefinitions)
$(IntDir)\%(RelativeDir)
true
Speed
diff --git a/src/drawing/engines/OpenGLAPI.cpp b/src/drawing/engines/OpenGLAPI.cpp
index 9c45d2a32b..9be06343ce 100644
--- a/src/drawing/engines/OpenGLAPI.cpp
+++ b/src/drawing/engines/OpenGLAPI.cpp
@@ -16,12 +16,10 @@
#ifndef DISABLE_OPENGL
-#include
-
#define NO_EXTERN_GLAPI
#include "OpenGLAPI.h"
-#if __WINDOWS__
+#if OPENGL_NO_LINK
#include
@@ -81,11 +79,11 @@ static const char * TryLoadAllProcAddresses()
return nullptr;
}
-#endif /* __WINDOWS__ */
+#endif /* #if OPENGL_NO_LINK */
bool OpenGLAPI::Initialise()
{
-#if __WINDOWS__
+#ifdef OPENGL_NO_LINK
const char * failedProcName = TryLoadAllProcAddresses();
if (failedProcName != nullptr)
{
diff --git a/src/drawing/engines/OpenGLAPI.h b/src/drawing/engines/OpenGLAPI.h
index a11fb3aa44..30191c7400 100644
--- a/src/drawing/engines/OpenGLAPI.h
+++ b/src/drawing/engines/OpenGLAPI.h
@@ -16,6 +16,8 @@
#pragma once
+#if OPENGL_NO_LINK
+
// BEGIN [Do not define 1.1 function signatures]
#define glBegin __static__glBegin
#define glBindTexture __static__glBindTexture
@@ -40,8 +42,12 @@
#define glVertex2i __static__glVertex2i
#define glViewport __static__glViewport
+#endif
+
#include
+#if OPENGL_NO_LINK
+
// END [Do not define 1.1 function signatures]
#undef glBegin
#undef glBindTexture
@@ -90,12 +96,12 @@ typedef void (APIENTRYP PFNGLTRANSLATEFPROC )(GLfloat x, GLfloat y, GLfloat z
typedef void (APIENTRYP PFNGLVERTEX2IPROC )(GLint x, GLint y);
typedef void (APIENTRYP PFNGLVIEWPORTPROC )(GLint x, GLint y, GLsizei width, GLsizei height);
-#if __WINDOWS__
-
#ifdef NO_EXTERN_GLAPI
+ // Defines the function pointers
#define GLAPI_DECL
#define GLAPI_SET = nullptr
#else
+ // Defines the functions as "extern"
#define GLAPI_DECL extern
#define GLAPI_SET
#endif
@@ -128,7 +134,7 @@ GLAPI_DECL PFNGLVIEWPORTPROC glViewport GLAPI_SET;
GLAPI_DECL PFNGLCREATESHADERPROC glCreateShader GLAPI_SET;
GLAPI_DECL PFNGLDELETESHADERPROC glDeleteShader GLAPI_SET;
-#endif /* __WINDOWS__ */
+#endif /* OPENGL_NO_LINK */
namespace OpenGLAPI
{