diff options
author | Jason Wilkins <Jason.A.Wilkins@gmail.com> | 2014-10-08 00:46:19 +0400 |
---|---|---|
committer | Jason Wilkins <Jason.A.Wilkins@gmail.com> | 2014-10-08 00:47:32 +0400 |
commit | 8d084e8c8f48dd2f07d4a3fbd4a941a7bcc0dcfb (patch) | |
tree | 5bf15f4f74f3e5a307cfa3f734b2cd086dca69bd /build_files | |
parent | a8705e99ee8ec9de2f25c3bac1e9895c2f98c224 (diff) |
Ghost Context Refactor
https://developer.blender.org/D643
Separates graphics context creation from window code in Ghost so that they can vary separately.
Diffstat (limited to 'build_files')
-rw-r--r-- | build_files/cmake/Modules/FindOpenGLES.cmake | 76 | ||||
-rw-r--r-- | build_files/cmake/macros.cmake | 18 | ||||
-rw-r--r-- | build_files/scons/tools/btools.py | 15 |
3 files changed, 102 insertions, 7 deletions
diff --git a/build_files/cmake/Modules/FindOpenGLES.cmake b/build_files/cmake/Modules/FindOpenGLES.cmake new file mode 100644 index 00000000000..1bb06c2f31c --- /dev/null +++ b/build_files/cmake/Modules/FindOpenGLES.cmake @@ -0,0 +1,76 @@ +# - Try to find OpenGLES +# Once done this will define +# +# OPENGLES_FOUND - system has OpenGLES and EGL +# OPENGL_EGL_FOUND - system has EGL +# OPENGLES_INCLUDE_DIR - the GLES include directory +# OPENGLES_LIBRARY - the GLES library +# OPENGLES_EGL_INCLUDE_DIR - the EGL include directory +# OPENGLES_EGL_LIBRARY - the EGL library +# OPENGLES_LIBRARIES - all libraries needed for OpenGLES +# OPENGLES_INCLUDES - all includes needed for OpenGLES + +# If OPENGLES_ROOT_DIR was defined in the environment, use it. +IF(NOT OPENGLES_ROOT_DIR AND NOT $ENV{OPENGLES_ROOT_DIR} STREQUAL "") + SET(OPENGLES_ROOT_DIR $ENV{OPENGLES_ROOT_DIR}) +ENDIF() + +SET(_opengles_SEARCH_DIRS + ${OPENGLES_ROOT_DIR} + /usr/local +) + +FIND_PATH(OPENGLES_INCLUDE_DIR + NAMES + GLES2/gl2.h + HINTS + ${_opengles_SEARCH_DIRS} +) + +FIND_LIBRARY(OPENGLES_LIBRARY + NAMES + GLESv2 + PATHS + ${_opengles_SEARCH_DIRS} + PATH_SUFFIXES + lib64 lib +) + +FIND_PATH(OPENGLES_EGL_INCLUDE_DIR + NAMES + EGL/egl.h + HINTS + ${_opengles_SEARCH_DIRS} +) + +FIND_LIBRARY(OPENGLES_EGL_LIBRARY + NAMES + EGL + HINTS + ${_opengles_SEARCH_DIRS} + PATH_SUFFIXES + lib64 lib +) + +IF(OPENGLES_EGL_LIBRARY AND OPENGLES_EGL_INCLUDE_DIR) + SET(OPENGL_EGL_FOUND "YES") +ELSE() + SET(OPENGL_EGL_FOUND "NO") +ENDIF() + +IF(OPENGLES_LIBRARY AND OPENGLES_INCLUDE_DIR AND + OPENGLES_EGL_LIBRARY AND OPENGLES_EGL_INCLUDE_DIR) + SET(OPENGLES_LIBRARIES ${OPENGLES_LIBRARY} ${OPENGLES_LIBRARIES} + ${OPENGLES_EGL_LIBRARY}) + SET(OPENGLES_INCLUDES ${OPENGLES_INCLUDE_DIR} ${OPENGLES_EGL_INCLUDE_DIR}) + SET(OPENGLES_FOUND "YES") +ELSE() + SET(OPENGLES_FOUND "NO") +ENDIF() + +MARK_AS_ADVANCED( + OPENGLES_EGL_INCLUDE_DIR + OPENGLES_EGL_LIBRARY + OPENGLES_INCLUDE_DIR +) + diff --git a/build_files/cmake/macros.cmake b/build_files/cmake/macros.cmake index adbba817150..b42e62e719c 100644 --- a/build_files/cmake/macros.cmake +++ b/build_files/cmake/macros.cmake @@ -284,8 +284,7 @@ macro(setup_liblinks set(CMAKE_EXE_LINKER_FLAGS_DEBUG "${CMAKE_EXE_LINKER_FLAGS_DEBUG} ${PLATFORM_LINKFLAGS_DEBUG}") target_link_libraries(${target} - ${OPENGL_gl_LIBRARY} - ${OPENGL_glu_LIBRARY} + ${BLENDER_GL_LIBRARIES} ${PNG_LIBRARIES} ${ZLIB_LIBRARIES} ${FREETYPE_LIBRARY}) @@ -305,7 +304,7 @@ macro(setup_liblinks endif() if(WITH_SYSTEM_GLEW) - target_link_libraries(${target} ${GLEW_LIBRARY}) + target_link_libraries(${target} ${BLENDER_GLEW_LIBRARIES}) endif() if(WITH_BULLET AND WITH_SYSTEM_BULLET) target_link_libraries(${target} ${BULLET_LIBRARIES}) @@ -359,9 +358,12 @@ macro(setup_liblinks endif() if(WITH_CODEC_FFMPEG) - # Strange!, without this ffmpeg gives linking errors (on linux) - # even though its linked above - target_link_libraries(${target} ${OPENGL_glu_LIBRARY}) + # Strange! Without this ffmpeg gives linking errors (on linux), + # even though it's linked above. + # XXX: Does FFMPEG depend on GLU? + if(WITH_GLU) + target_link_libraries(${target} ${OPENGL_glu_LIBRARY}) + endif() target_link_libraries(${target} ${FFMPEG_LIBRARIES}) endif() @@ -557,6 +559,8 @@ macro(SETUP_BLENDER_SORTED_LIBS) extern_wcwidth extern_libmv extern_glog + + bf_intern_glew_mx ) if(WITH_COMPOSITOR) @@ -574,7 +578,7 @@ macro(SETUP_BLENDER_SORTED_LIBS) endif() if(NOT WITH_SYSTEM_GLEW) - list(APPEND BLENDER_SORTED_LIBS extern_glew) + list(APPEND BLENDER_SORTED_LIBS ${BLENDER_GLEW_LIBRARIES}) endif() if(WITH_BINRELOC) diff --git a/build_files/scons/tools/btools.py b/build_files/scons/tools/btools.py index 4106c037ecd..12cbbb1618a 100644 --- a/build_files/scons/tools/btools.py +++ b/build_files/scons/tools/btools.py @@ -136,6 +136,8 @@ def validate_arguments(args, bc): 'WITH_BF_QUICKTIME', 'BF_QUICKTIME', 'BF_QUICKTIME_INC', 'BF_QUICKTIME_LIB', 'BF_QUICKTIME_LIBPATH', 'WITH_BF_FFTW3', 'BF_FFTW3', 'BF_FFTW3_INC', 'BF_FFTW3_LIB', 'BF_FFTW3_LIBPATH', 'WITH_BF_STATICFFTW3', 'BF_FFTW3_LIB_STATIC', 'WITH_BF_STATICOPENGL', 'BF_OPENGL', 'BF_OPENGL_INC', 'BF_OPENGL_LIB', 'BF_OPENGL_LIBPATH', 'BF_OPENGL_LIB_STATIC', + 'WITH_BF_EGL', 'WITH_BF_GLEW_ES', 'BF_GLEW_INC', 'WITH_BF_GL_PROFILE_CORE', 'WITH_BF_GL_PROFILE_COMPAT', 'WITH_BF_GL_PROFILE_ES20', + 'WITH_BF_COLLADA', 'BF_COLLADA', 'BF_COLLADA_INC', 'BF_COLLADA_LIB', 'BF_OPENCOLLADA', 'BF_OPENCOLLADA_INC', 'BF_OPENCOLLADA_LIB', 'BF_OPENCOLLADA_LIBPATH', 'BF_PCRE', 'BF_PCRE_LIB', 'BF_PCRE_LIBPATH', 'BF_EXPAT', 'BF_EXPAT_LIB', 'BF_EXPAT_LIBPATH', 'WITH_BF_STATICOPENCOLLADA', 'BF_OPENCOLLADA_LIB_STATIC', 'WITH_BF_PLAYER', @@ -185,6 +187,7 @@ def validate_arguments(args, bc): opts_list_split = [ 'BF_PYTHON_LINKFLAGS', 'BF_OPENGL_LINKFLAGS', + 'BF_GL_DEFINITIONS', 'CFLAGS', 'CCFLAGS', 'CXXFLAGS', 'CPPFLAGS', 'REL_CFLAGS', 'REL_CCFLAGS', 'REL_CXXFLAGS', 'BGE_CXXFLAGS', @@ -462,6 +465,18 @@ def read_opts(env, cfg, args): ('BF_OPENGL_LIB_STATIC', 'OpenGL static libraries', ''), ('BF_OPENGL_LINKFLAGS', 'OpenGL link flags', ''), + (BoolVariable('WITH_BF_GLEW_MX', '', True)), + (BoolVariable('WITH_BF_GLEW_ES', '', False)), + (BoolVariable('WITH_BF_GL_EGL', '', False)), + (BoolVariable('WITH_BF_GL_PROFILE_COMPAT', '', True)), + (BoolVariable('WITH_BF_GL_PROFILE_CORE', '', False)), + (BoolVariable('WITH_BF_GL_PROFILE_ES20', '', False)), + (BoolVariable('WITH_BF_GL_ANGLE', '', False)), + ('BF_GL_DEFINITIONS', '', []), + ('BF_GLEW_INC', '', ''), + ) # end of opts.AddVariables() + + localopts.AddVariables( (BoolVariable('WITH_BF_COLLADA', 'Build COLLADA import/export module if true', False)), (BoolVariable('WITH_BF_STATICOPENCOLLADA', 'Staticly link to OpenCollada', False)), ('BF_COLLADA', 'COLLADA base path', ''), |