From 08a5aaacede31f31d04467b044e9cd485af930e3 Mon Sep 17 00:00:00 2001 From: Mischa Spiegelmock Date: Sun, 31 Jul 2016 20:42:06 -0700 Subject: [PATCH] use openGLES instead of openGL --- src/libprojectM/CMakeLists.txt | 53 ++++++-------- src/libprojectM/Renderer/Renderable.cpp | 2 +- src/libprojectM/cmake/FindOpenGLES.cmake | 89 ++++++++++++++++++++++++ src/libprojectM/gles.sh | 2 +- 4 files changed, 112 insertions(+), 34 deletions(-) create mode 100644 src/libprojectM/cmake/FindOpenGLES.cmake diff --git a/src/libprojectM/CMakeLists.txt b/src/libprojectM/CMakeLists.txt index 740efa26d..619e67491 100644 --- a/src/libprojectM/CMakeLists.txt +++ b/src/libprojectM/CMakeLists.txt @@ -136,11 +136,6 @@ if (APPLE) ADD_DEFINITIONS(-DMACOS -DSTBI_NO_DDS) set(RESOURCE_PREFIX "Resources") FIND_LIBRARY(COREFOUNDATION_LIBRARY CoreFoundation) -# if (USE_GLES1) -# FIND_LIBRARY(OPENGL_LIBRARIES OpenGLES) -# else (USE_GLES1) - FIND_LIBRARY(OPENGL_LIBRARIES OpenGL) -# endif (USE_GLES1) SET (CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -I/usr/include") SET (CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -I/usr/local/include") else (APPLE) @@ -159,7 +154,12 @@ endif(APPLE) add_subdirectory(Renderer) -FIND_PACKAGE(OpenGL) +if (USE_GLES1) + INCLUDE(cmake/FindOpenGLES.cmake) + FIND_PACKAGE(OpenGLES) +else (USE_GLES1) + FIND_PACKAGE(OpenGL) +endif (USE_GLES1) INCLUDE(FindPkgConfig.cmake) @@ -224,32 +224,21 @@ IF( CMAKE_SYSTEM_PROCESSOR STREQUAL "armv7l" OR NOT ${DISABLE_NATIVE_PRESETS}) ENDIF( CMAKE_SYSTEM_PROCESSOR STREQUAL "armv7l" OR NOT ${DISABLE_NATIVE_PRESETS}) -if(BUILD_PROJECTM_STATIC) - message(STATUS "Building static libproject") - TARGET_LINK_LIBRARIES(projectM Renderer - ${IMAGE_LINK_TARGETS} - ${CG_LINK_TARGETS} - ${PRESET_FACTORY_LINK_TARGETS} - ${GLEW_LIBRARY} - ${FTGL_LINK_TARGETS} - ${MATH_LIBRARIES} - ${COREFOUNDATION_LIBRARIES} - ${OPENGL_LIBRARIES} - dl - ) -else(BUILD_PROJECTM_STATIC) - MESSAGE(STATUS "Building dynamic libprojectm") - TARGET_LINK_LIBRARIES(projectM Renderer - ${IMAGE_LINK_TARGETS} - ${CG_LINK_TARGETS} - ${PRESET_FACTORY_LINK_TARGETS} - ${GLEW_LIBRARY} - ${FTGL_LINK_TARGETS} - ${MATH_LIBRARIES} - ${OPENGL_LIBRARIES} - dl - ) -endif(BUILD_PROJECTM_STATIC) +SET(projectM_LIBRARIES_TO_LINK + Renderer + ${IMAGE_LINK_TARGETS} + ${CG_LINK_TARGETS} + ${PRESET_FACTORY_LINK_TARGETS} + ${GLEW_LIBRARY} + ${FTGL_LINK_TARGETS} + ${MATH_LIBRARIES} + ${COREFOUNDATION_LIBRARIES} + ${OPENGL_LIBRARIES} + ${OPENGLES_LIBRARIES} + dl +) + +TARGET_LINK_LIBRARIES(projectM ${projectM_LIBRARIES_TO_LINK}) SET(projectM_FONT_MENU "${CMAKE_INSTALL_PREFIX}/${RESOURCE_PREFIX}/fonts/VeraMono.ttf" CACHE FILEPATH "Path to the default menu TrueType font") SET(projectM_FONT_TITLE "${CMAKE_INSTALL_PREFIX}/${RESOURCE_PREFIX}/fonts/Vera.ttf" CACHE FILEPATH "Path to the default title TrueType font") diff --git a/src/libprojectM/Renderer/Renderable.cpp b/src/libprojectM/Renderer/Renderable.cpp index 592e8b50d..a905c7ba1 100644 --- a/src/libprojectM/Renderer/Renderable.cpp +++ b/src/libprojectM/Renderer/Renderable.cpp @@ -339,7 +339,7 @@ void Border::Draw(RenderContext &context) // glRect doesn't exist in GLES I think // TODO: replace glRect -#ifndef EMSCRIPTEN +#ifndef USE_GLES1 glRectd(of, of, of+iff, texof); glRectd(of+iff, of, texof-iff, of+iff); glRectd(texof-iff, of, texof, texof); diff --git a/src/libprojectM/cmake/FindOpenGLES.cmake b/src/libprojectM/cmake/FindOpenGLES.cmake new file mode 100644 index 000000000..535cdb15a --- /dev/null +++ b/src/libprojectM/cmake/FindOpenGLES.cmake @@ -0,0 +1,89 @@ +#snapped from: https://bitbucket.org/sinbad/ogre/src/0bba4f7cdb95/CMake/Packages/FindOpenGLES.cmake?at=default +#------------------------------------------------------------------- +# This file is part of the CMake build system for OGRE +# (Object-oriented Graphics Rendering Engine) +# For the latest info, see http://www.ogre3d.org/ +# +# The contents of this file are placed in the public domain. Feel +# free to make use of it in any way you like. +#------------------------------------------------------------------- + +# - Try to find OpenGLES +# Once done this will define +# +# OPENGLES_FOUND - system has OpenGLES +# OPENGLES_INCLUDE_DIR - the GL include directory +# OPENGLES_LIBRARIES - Link these to use OpenGLES + +IF (WIN32) + IF (CYGWIN) + + FIND_PATH(OPENGLES_INCLUDE_DIR GLES/gl.h ) + + FIND_LIBRARY(OPENGLES_gl_LIBRARY libgles_cm ) + + ELSE (CYGWIN) + + IF(MSVC) + #The user hast to provide this atm. GLES can be emulated via Desktop OpenGL + #using the ANGLE project found at: http://code.google.com/p/angleproject/ + SET (OPENGLES_gl_LIBRARY import32 CACHE STRING "OpenGL ES 1.x library for win32") + ENDIF(MSVC) + + ENDIF (CYGWIN) + +ELSE (WIN32) + + IF (APPLE) + + create_search_paths(/Developer/Platforms) + findpkg_framework(OpenGLES) + set(OPENGLES_gl_LIBRARY "-framework OpenGLES") + + ELSE(APPLE) + + FIND_PATH(OPENGLES_INCLUDE_DIR GLES/gl.h + /usr/openwin/share/include + /opt/graphics/OpenGL/include /usr/X11R6/include + /usr/include + /opt/vc/include + ) + + FIND_LIBRARY(OPENGLES_gl_LIBRARY + NAMES GLES_CM GLESv1_CM + PATHS /opt/graphics/OpenGL/lib + /usr/openwin/lib + /usr/shlib /usr/X11R6/lib + /usr/lib + /opt/vc/lib + ) + + # On Unix OpenGL most certainly always requires X11. + # Feel free to tighten up these conditions if you don't + # think this is always true. + + IF (OPENGLES_gl_LIBRARY) + IF(NOT X11_FOUND) + INCLUDE(FindX11) + ENDIF(NOT X11_FOUND) + IF (X11_FOUND) + SET (OPENGLES_LIBRARIES ${X11_LIBRARIES}) + ENDIF (X11_FOUND) + ENDIF (OPENGLES_gl_LIBRARY) + + ENDIF(APPLE) +ENDIF (WIN32) + +SET( OPENGLES_FOUND "NO" ) +IF(OPENGLES_gl_LIBRARY) + + SET( OPENGLES_LIBRARIES ${OPENGLES_gl_LIBRARY} ${OPENGLES_LIBRARIES}) + + SET( OPENGLES_FOUND "YES" ) + +ENDIF(OPENGLES_gl_LIBRARY) + +MARK_AS_ADVANCED( + OPENGLES_INCLUDE_DIR + OPENGLES_gl_LIBRARY +) diff --git a/src/libprojectM/gles.sh b/src/libprojectM/gles.sh index 50c733b89..b3a30d5f5 100755 --- a/src/libprojectM/gles.sh +++ b/src/libprojectM/gles.sh @@ -1,7 +1,7 @@ #!/bin/sh search() { -find . \( -name "*.h" -o -name "*.c" -o -name "*.cpp" -o -name "*.cxx" \) -exec grep -Hn "$*" {} \; | grep -v -E '\.\/glx?ew' | grep -v ./Renderer/SOIL2/SOIL2.c +find . \( -name "*.h" -o -name "*.c" -o -name "*.cpp" -o -name "*.cxx" \) -exec grep -Hn "$*" {} \; | grep -v -E '\.\/glx?ew' | grep -v ./Renderer/SOIL2/SOIL2.c | grep -v FBO.cpp } listIssues() {