diff --git a/CMakeLists.txt b/CMakeLists.txt index 4a537a01545..4da0f70884a 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -458,11 +458,13 @@ endif() # OpenGL +option(WITH_OPENGL "When off limits visibility of the opengl headers to just bf_gpu and gawain (temporary option for development purposes)" ON) option(WITH_GLEW_ES "Switches to experimental copy of GLEW that has support for OpenGL ES. (temporary option for development purposes)" OFF) option(WITH_GL_EGL "Use the EGL OpenGL system library instead of the platform specific OpenGL system library (CGL, glX, or WGL)" OFF) option(WITH_GL_PROFILE_ES20 "Support using OpenGL ES 2.0. (thru either EGL or the AGL/WGL/XGL 'es20' profile)" OFF) mark_as_advanced( + WITH_OPENGL WITH_GLEW_ES WITH_GL_EGL WITH_GL_PROFILE_ES20 @@ -1003,6 +1005,10 @@ endif() find_package(OpenGL) blender_include_dirs_sys("${OPENGL_INCLUDE_DIR}") +if(WITH_OPENGL) + add_definitions(-DWITH_OPENGL) +endif() + if(WITH_SYSTEM_GLES) find_package_wrapper(OpenGLES) endif() diff --git a/intern/gawain/CMakeLists.txt b/intern/gawain/CMakeLists.txt index 177c76327aa..ced52b22e2c 100644 --- a/intern/gawain/CMakeLists.txt +++ b/intern/gawain/CMakeLists.txt @@ -1,3 +1,10 @@ +# WITH_OPENGL limits the visibility of the opengl headers to just gawain and bg_gpu, +# to more easily highlight codepadths in other libraries that need to be refactored, +# bf_intern_gawain is allowed to have opengl regardless of this option. + +if(NOT WITH_OPENGL) + add_definitions(-DWITH_OPENGL) +endif() set(INC gawain diff --git a/intern/gawain/gawain/gwn_common.h b/intern/gawain/gawain/gwn_common.h index f1512bf4466..6a56543da40 100644 --- a/intern/gawain/gawain/gwn_common.h +++ b/intern/gawain/gawain/gwn_common.h @@ -20,7 +20,10 @@ #define TRUST_NO_ONE 1 #endif -#include +#if defined(WITH_OPENGL) + #include +#endif + #include #include diff --git a/source/blender/gpu/CMakeLists.txt b/source/blender/gpu/CMakeLists.txt index 481133ba984..fe6d438924f 100644 --- a/source/blender/gpu/CMakeLists.txt +++ b/source/blender/gpu/CMakeLists.txt @@ -23,6 +23,14 @@ # # ***** END GPL LICENSE BLOCK ***** +# WITH_OPENGL limits the visibility of the opengl headers to just gawain and bg_gpu, +# to more easily highlight codepadths in other libraries that need to be refactored, +# bf_gpu is allowed to have opengl regardless of this option. + +if(NOT WITH_OPENGL) + add_definitions(-DWITH_OPENGL) +endif() + set(INC . ../blenkernel diff --git a/source/blender/gpu/GPU_glew.h b/source/blender/gpu/GPU_glew.h index afe1c9763ad..b3e2a9fcfa5 100644 --- a/source/blender/gpu/GPU_glew.h +++ b/source/blender/gpu/GPU_glew.h @@ -32,10 +32,12 @@ #ifndef __GPU_GLEW_H__ #define __GPU_GLEW_H__ -#include "glew-mx.h" +#if defined(WITH_OPENGL) + #include "glew-mx.h" -#ifndef WITH_LEGACY_OPENGL -#include "GPU_legacy_stubs.h" + #ifndef WITH_LEGACY_OPENGL + #include "GPU_legacy_stubs.h" + #endif #endif #endif /* __GPU_GLEW_H__ */