Merge pull request #2951 from CvH/9.0/projectM

visualization.projectM: update to 8f442c5
This commit is contained in:
MilhouseVH
2018-10-24 12:21:28 +01:00
committed by GitHub
14 changed files with 67 additions and 1095 deletions

View File

@@ -0,0 +1,16 @@
# SPDX-License-Identifier: GPL-2.0-or-later
# Copyright (C) 2018-present Team LibreELEC (https://libreelec.tv)
PKG_NAME="glm"
PKG_VERSION="0.9.9.2"
PKG_SHA256="209b5943d393925e1a6ecb6734e7507b8f6add25e72a605b25d0d0d382e64fd4"
PKG_LICENSE="MIT"
PKG_SITE="https://glm.g-truc.net/"
PKG_URL="https://github.com/g-truc/glm/releases/download/$PKG_VERSION/glm-$PKG_VERSION.zip"
PKG_SOURCE_DIR="glm"
PKG_DEPENDS_TARGET="toolchain"
PKG_LONGDESC="OpenGL Mathematics (GLM)"
if [ "$OPENGL" = "no" ] ; then
exit 0
fi

View File

@@ -1,13 +1,22 @@
# SPDX-License-Identifier: GPL-2.0-or-later
# Copyright (C) 2009-2016 Stephan Raue (stephan@openelec.tv)
# Copyright (C) 2018-present Team LibreELEC (https://libreelec.tv)
PKG_NAME="libprojectM"
PKG_VERSION="2.0.0"
PKG_SHA256="77ed43508ae2913261714b85364198f250af9e53d36d637320ddbcc2578148ee"
PKG_VERSION="8b52061e17ace56737de191b81adf3c3df34504e"
PKG_SHA256="1bc4a2b9a0310b5215ff29b4bd12c807c776174ea28c11acf37b76587e88c7b8"
PKG_LICENSE="GPL"
PKG_SITE="http://projectm.sourceforge.net/"
PKG_URL="$DISTRO_SRC/$PKG_NAME-$PKG_VERSION.tar.gz"
PKG_DEPENDS_TARGET="toolchain ftgl freetype $OPENGL"
PKG_LONGDESC="a MilkDrop compatible opensource music visualizer"
PKG_SITE="https://github.com/projectM-visualizer/projectm"
PKG_URL="https://github.com/projectM-visualizer/projectm/archive/$PKG_VERSION.tar.gz"
PKG_DEPENDS_TARGET="toolchain freetype glm $OPENGL"
PKG_LONGDESC="A MilkDrop compatible opensource music visualizer."
PKG_TOOLCHAIN="configure"
PKG_BUILD_FLAGS="+pic"
PKG_CMAKE_OPTS_TARGET="-DBUILD_PROJECTM_STATIC=1"
PKG_CONFIGURE_OPTS_TARGET="--disable-shared \
--enable-static"
# workaround due broken release files, remove at next bump
pre_configure_target() {
./autogen.sh
}

View File

@@ -1,38 +0,0 @@
--- projectm/cmake/FindFreetype2.orig.cmake 2013-07-17 11:47:46.844351322 +0200
+++ projectm/cmake/FindFreetype2.cmake 2013-07-17 11:48:14.912350387 +0200
@@ -64,7 +64,7 @@
/sw/include/freetype2
${VISUS_INCLUDE}
${VISUS_INCLUDE}/freetype2
- NO_DEFAULT_PATH
+ # NO_DEFAULT_PATH
)
FIND_PATH(FREETYPE2_FT2BUILD ft2build.h
@@ -74,7 +74,7 @@
/usr/X11R6/include
/sw/include
${VISUS_INCLUDE}
- NO_DEFAULT_PATH
+ # NO_DEFAULT_PATH
)
FIND_PATH(FREETYPE2_FT_CONFIG bin/freetype-config
@@ -84,7 +84,7 @@
/usr/X11R6
/sw/bin
${VISUS_BINARY_DIR}
- NO_DEFAULT_PATH
+ # NO_DEFAULT_PATH
)
IF (NOT WIN32)
@@ -95,7 +95,7 @@
/usr/X11R6/lib
/sw/lib
${VISUS_LIBRARIES}
- NO_DEFAULT_PATH
+ # NO_DEFAULT_PATH
)
ELSE (NOT WIN32)

View File

@@ -1,108 +0,0 @@
--- projectM-2.0.0-Source.orig/CMakeLists.txt 2009-12-01 07:38:42.000000000 +0100
+++ projectM-2.0.0-Source/CMakeLists.txt 2014-09-02 18:13:37.650948971 +0200
@@ -18,6 +18,7 @@
cmake_policy(SET CMP0005 OLD)
+ADD_DEFINITIONS(-fPIC)
set( CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH}
${CMAKE_CURRENT_SOURCE_DIR}/cmake )
@@ -100,15 +101,6 @@
ADD_DEFINITIONS(-DUSE_FBO)
endif(USE_FBO)
-if(USE_FTGL)
-ADD_DEFINITIONS(-DUSE_FTGL)
-
-find_package( Freetype2 REQUIRED)
-include_directories( ${FREETYPE2_INCLUDE_DIR} )
-
-endif(USE_FTGL)
-
-
if(COMMAND cmake_policy)
cmake_policy(SET CMP0003 NEW)
endif(COMMAND cmake_policy)
@@ -138,58 +130,54 @@
add_subdirectory(Renderer)
-#ADD_DEFINITIONS(-DCMAKE_INSTALL_PREFIX="\\\"${CMAKE_INSTALL_PREFIX}\\\"")
-
FIND_PACKAGE(OpenGL)
INCLUDE(FindPkgConfig.cmake)
-pkg_search_module (FTGL ftgl)
-
-#set(CMAKE_INCLUDE_PATH ${CMAKE_INCLUDE_PATH};/opt/local/include;/Developer/SDKs/MACOSX10.5.sdk/usr/X11/include)
-#set(CMAKE_LIBRARY_PATH /opt/local/lib;/Developer/SDKs/MACOSX10.5.sdk;/Developer/SDKs/MacOSX10.5.sdk/usr/X11/lib/)
-
IF(USE_FTGL)
- if (FTGL_FOUND)
+ pkg_check_modules (FREETYPE freetype2)
+ if(FREETYPE_FOUND)
+ include(FindPackageHandleStandardArgs)
+ find_package_handle_standard_args(FREETYPE DEFAULT_MSG FREETYPE_INCLUDE_DIRS FREETYPE_LIBRARIES FREETYPE_LIBRARY_DIRS)
+ set(FREETYPE2_INCLUDE_DIR ${FREETYPE_INCLUDE_DIRS})
+ include_directories(${FREETYPE_INCLUDE_DIRS} ${FREETYPE_INCLUDE_DIRS}/include/freetype2)
+ endif()
+ message(STATUS "FREETYPE2_INCLUDE_DIR: ${FREETYPE2_INCLUDE_DIR}")
+
+ pkg_check_modules (FTGL ftgl)
+ if(FTGL_FOUND)
+ include(FindPackageHandleStandardArgs)
+ find_package_handle_standard_args(FTGL DEFAULT_MSG FTGL_INCLUDE_DIRS FTGL_LIBRARIES FTGL_LIBRARY_DIRS)
+ ADD_DEFINITIONS(-DUSE_FTGL)
+
MESSAGE(STATUS "[projectM] FTGL font support was detected and enabled.")
else (FTGL_FOUND)
- MESSAGE(STATUS
- "[projectM] Warning! FTGL has been enabled but not detected. Your compilation will probably break. Turn off FTGL support by setting USE_FTGL to false, or visit http://ftgl.wiki.sourceforge.net/ for help on installing FTGL.")
+ MESSAGE(FATAL_ERROR "[projectM] Warning! FTGL has been enabled but not detected. Your compilation will probably break. Turn off FTGL support by setting USE_FTGL to false, or visit http://ftgl.wiki.sourceforge.net/ for help on installing FTGL.")
endif (FTGL_FOUND)
- ADD_DEFINITIONS(-DUSE_FTGL)
-
set (FTGL_INCUDE_DIRS ${FTGL_INCLUDE_DIRS} ${CMAKE_INCLUDE_PATH} ${OPENGL_INCLUDE_DIR})
- set (FTGL_LINK_DIRS ${FTGL_LIBRARY_DIRS} )
+ set (FTGL_LINK_DIRS ${FTGL_LIBRARIES} )
+ set (FTGL_LINK_LIBS -L${FTGL_LIBRARY_DIRS} ${FTGL_LIBRARIES} -L${FREETYPE_LIBRARY_DIRS} ${FREETYPE_LIBRARIES})
set (FTGL_LINK_TARGETS ftgl freetype)
-ELSE (USE_FTGL)
- IF (FTGL_FOUND)
- MESSAGE(STATUS "[projectM] Warning: FTGL font support was detected but NOT enabled. You can enable it by setting USE_FTGL=true")
- ELSE (FTGL_FOUND)
- MESSAGE(STATUS "[projectM] Warning: FTGL font support was not detected. Visit http://ftgl.wiki.sourceforge.net/ for help on installing FTGL.")
- ENDIF(FTGL_FOUND)
-
- # todo: change this because its obscure and probably not being used
- set (FTGL_INCLUDE_DIRS "/opt/local/include")
- set (FTGL_LINK_DIRS )
- set (FTGL_LINK_TARGETS )
ENDIF(USE_FTGL)
-
IF(USE_OPENMP)
SET(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -fopenmp ")
SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fopenmp ")
ENDIF(USE_OPENMP)
INCLUDE_DIRECTORIES(${projectM_SOURCE_DIR} ${FTGL_INCLUDE_DIRS} ${Renderer_SOURCE_DIR} ${PRESET_FACTORY_SOURCES})
-LINK_DIRECTORIES(${FTGL_LINK_DIRS} ${Renderer_BINARY_DIR} ${PRESET_FACTORY_BINARY_DIR})
+LINK_DIRECTORIES(${Renderer_BINARY_DIR} ${PRESET_FACTORY_BINARY_DIR})
if(BUILD_PROJECTM_STATIC)
- TARGET_LINK_LIBRARIES(projectM ${GLEW_LINK_TARGETS} m ${FTGL_LINK_TARGETS} ${OPENGL_LIBRARIES} ${IMAGE_LINK_TARGETS} ${CG_LINK_TARGETS} ${PRESET_FACTORY_LINK_TARGETS})
+message(STATUS "OPENGL_LIBRARIES: ${OPENGL_LIBRARIES}")
+ set(OPENGL_LIBRARIES "-lGLEW -lGLU -lGL -lm -ldl -ldrm -lXdamage -lX11-xcb -lxcb-glx -lxcb-dri2 -lxcb-dri3 -lxcb-present -lxcb-sync -lxshmfence -lXxf86vm -lXfixes -lXext -lX11 -lpthread -lxcb -lXau -lXdmcp")
+message(STATUS "OPENGL_LIBRARIES: ${OPENGL_LIBRARIES}")
+ TARGET_LINK_LIBRARIES(projectM Renderer ${PRESET_FACTORY_LINK_TARGETS} ${GLEW_LINK_TARGETS} m ${FTGL_LINK_LIBS} ${OPENGL_LIBRARIES} ${IMAGE_LINK_TARGETS} ${CG_LINK_TARGETS})
else(BUILD_PROJECTM_STATIC)
-TARGET_LINK_LIBRARIES(projectM ${GLEW_LINK_TARGETS} m ${FTGL_LINK_TARGETS} ${OPENGL_LIBRARIES} ${IMAGE_LINK_TARGETS} ${CG_LINK_TARGETS} ${PRESET_FACTORY_LINK_TARGETS})
+ TARGET_LINK_LIBRARIES(projectM Renderer ${PRESET_FACTORY_LINK_TARGETS} ${GLEW_LINK_TARGETS} m dl ${FTGL_LINK_LIBS} ${OPENGL_LIBRARIES} ${IMAGE_LINK_TARGETS} ${CG_LINK_TARGETS})
endif(BUILD_PROJECTM_STATIC)

View File

@@ -1,17 +0,0 @@
--- projectm/libprojectM.pc.in.orig 2015-03-16 14:02:55.733369674 +0100
+++ projectm/libprojectM.pc.in 2015-03-16 14:03:42.685370237 +0100
@@ -1,6 +1,6 @@
prefix=@CMAKE_INSTALL_PREFIX@
exec_prefix=@CMAKE_INSTALL_PREFIX@
-libdir=@LIB_INSTALL_DIR@
+libdir=@CMAKE_INSTALL_PREFIX@/lib
includedir=@CMAKE_INSTALL_PREFIX@/include
pkgdatadir=@CMAKE_INSTALL_PREFIX@/@RESOURCE_PREFIX@
sysconfdir=@CMAKE_INSTALL_PREFIX@/@RESOURCE_PREFIX@
@@ -9,5 +9,5 @@
Version: 2.0.0
Description: projectM - OpenGL Milkdrop
Requires:
-Libs: -L${libdir} -lprojectM
+Libs: -L${libdir} -lprojectM -lMilkdropPresetFactory -lprojectM -lNativePresetFactory -lRenderer -lm
Cflags: -I${includedir}

View File

@@ -1,17 +0,0 @@
--- projectm/libprojectM.pc.in.orig 2015-03-16 14:02:55.733369674 +0100
+++ projectm/libprojectM.pc.in 2015-03-16 14:03:42.685370237 +0100
@@ -1,6 +1,6 @@
prefix=@CMAKE_INSTALL_PREFIX@
exec_prefix=@CMAKE_INSTALL_PREFIX@
-libdir=@LIB_INSTALL_DIR@
+libdir=@CMAKE_INSTALL_PREFIX@/lib
includedir=@CMAKE_INSTALL_PREFIX@/include
pkgdatadir=@CMAKE_INSTALL_PREFIX@/@RESOURCE_PREFIX@
sysconfdir=@CMAKE_INSTALL_PREFIX@/@RESOURCE_PREFIX@
@@ -9,5 +9,5 @@
Version: 2.0.0
Description: projectM - OpenGL Milkdrop
Requires:
-Libs: -L${libdir} -lprojectM
+Libs: -L${libdir} -lprojectM -lMilkdropPresetFactory -lNativePresetFactory -lRenderer -lm
Cflags: -I${includedir}

View File

@@ -1,9 +0,0 @@
--- projectm/Renderer/CMakeLists.txt.orig 2015-03-16 13:30:27.909346320 +0100
+++ projectm/Renderer/CMakeLists.txt 2015-03-16 13:30:57.221346672 +0100
@@ -14,3 +14,6 @@
ADD_LIBRARY(Renderer STATIC ${Renderer_SOURCES})
SET_TARGET_PROPERTIES(Renderer PROPERTIES VERSION 2.00 SOVERSION 2)
TARGET_LINK_LIBRARIES(Renderer m)
+IF(BUILD_PROJECTM_STATIC)
+ INSTALL(TARGETS Renderer DESTINATION lib${LIB_SUFFIX})
+endif()

View File

@@ -1,9 +0,0 @@
--- projectm/NativePresetFactory/CMakeLists.txt.orig 2015-03-16 13:31:17.965346920 +0100
+++ projectm/NativePresetFactory/CMakeLists.txt 2015-03-16 13:31:38.921347172 +0100
@@ -13,3 +13,6 @@
ADD_LIBRARY(NativePresetFactory STATIC ${NativePresetFactory_SOURCES})
SET_TARGET_PROPERTIES(NativePresetFactory PROPERTIES VERSION 2.00 SOVERSION 2)
TARGET_LINK_LIBRARIES(NativePresetFactory Renderer m)
+IF(BUILD_PROJECTM_STATIC)
+ INSTALL(TARGETS NativePresetFactory DESTINATION lib${LIB_SUFFIX})
+endif()

View File

@@ -1,9 +0,0 @@
--- projectm/MilkdropPresetFactory/CMakeLists.txt.orig 2015-03-16 13:27:41.557344326 +0100
+++ projectm/MilkdropPresetFactory/CMakeLists.txt 2015-03-16 13:31:00.769346714 +0100
@@ -15,3 +15,6 @@
ADD_LIBRARY(MilkdropPresetFactory STATIC ${MilkdropPresetFactory_SOURCES})
SET_TARGET_PROPERTIES(MilkdropPresetFactory PROPERTIES VERSION 2.00 SOVERSION 2)
TARGET_LINK_LIBRARIES(MilkdropPresetFactory Renderer)
+IF(BUILD_PROJECTM_STATIC)
+ INSTALL(TARGETS MilkdropPresetFactory DESTINATION lib${LIB_SUFFIX})
+endif()

View File

@@ -1,61 +0,0 @@
diff -x '*orig' -rup a/Common.hpp b/Common.hpp
--- a/Common.hpp 2012-05-20 04:43:26.000000000 +0100
+++ b/Common.hpp 2016-03-17 05:00:14.176905540 +0000
@@ -63,7 +63,8 @@ extern FILE *fmemopen(void *buf, size_t
#ifdef LINUX
#include <cstdlib>
-#define projectM_isnan isnan
+#include <cmath>
+#define projectM_isnan std::isnan
#endif
diff -x '*orig' -rup a/MilkdropPresetFactory/Parser.cpp b/MilkdropPresetFactory/Parser.cpp
--- a/MilkdropPresetFactory/Parser.cpp 2012-05-20 04:43:26.000000000 +0100
+++ b/MilkdropPresetFactory/Parser.cpp 2016-03-17 05:00:14.177905556 +0000
@@ -1406,7 +1406,7 @@ PerFrameEqn * Parser::parse_implicit_per
PerFrameEqn * per_frame_eqn;
GenExpr * gen_expr;
- if (fs == NULL)
+ if (!fs)
return NULL;
if (param_string == NULL)
return NULL;
@@ -1561,7 +1561,7 @@ InitCond * Parser::parse_per_frame_init_
if (preset == NULL)
return NULL;
- if (fs == NULL)
+ if (!fs)
return NULL;
if ((token = parseToken(fs, name)) != tEq)
@@ -1875,7 +1875,7 @@ int Parser::parse_shapecode(char * token
/* Null argument checks */
if (preset == NULL)
return PROJECTM_FAILURE;
- if (fs == NULL)
+ if (!fs)
return PROJECTM_FAILURE;
if (token == NULL)
return PROJECTM_FAILURE;
@@ -2166,7 +2166,7 @@ int Parser::parse_wave(char * token, std
if (token == NULL)
return PROJECTM_FAILURE;
- if (fs == NULL)
+ if (!fs)
return PROJECTM_FAILURE;
if (preset == NULL)
return PROJECTM_FAILURE;
@@ -2348,7 +2348,7 @@ int Parser::parse_shape(char * token, st
if (token == NULL)
return PROJECTM_FAILURE;
- if (fs == NULL)
+ if (!fs)
return PROJECTM_FAILURE;
if (preset == NULL)
return PROJECTM_FAILURE;

View File

@@ -1,61 +0,0 @@
From 8d450df7830744201f4527a275989124ce1f48f2 Mon Sep 17 00:00:00 2001
From: Arne Morten Kvarving <arne.morten.kvarving@sintef.no>
Date: Thu, 19 Jan 2017 11:23:38 +0100
Subject: [PATCH] hacky removal of glew
---
CMakeLists.txt | 3 ++-
Renderer/FBO.cpp | 4 ++--
Renderer/FBO.hpp | 5 ++++-
3 files changed, 8 insertions(+), 4 deletions(-)
diff --git a/CMakeLists.txt b/CMakeLists.txt
index 5d8e90e..3492101 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -42,7 +42,8 @@ SET(GLEW_SOURCES glew.h glew.c)
SET(GLEW_LINK_TARGETS )
else(USE_NATIVE_GLEW)
SET(GLEW_SOURCES )
-SET (GLEW_LINK_TARGETS GLEW)
+#SET (GLEW_LINK_TARGETS GLEW)
+SET (GLEW_LINK_TARGETS)
endif(USE_NATIVE_GLEW)
SET(projectM_SOURCES projectM.cpp PCM.cpp Preset.cpp fftsg.cpp KeyHandler.cpp
diff --git a/Renderer/FBO.cpp b/Renderer/FBO.cpp
index 97e482a..20f50dd 100755
--- a/Renderer/FBO.cpp
+++ b/Renderer/FBO.cpp
@@ -97,10 +97,10 @@ RenderTarget::RenderTarget(int texsize, int width, int height) : useFBO(false) {
this->texsize = texsize;
#ifdef USE_FBO
- glewInit();
+ //glewInit();
// Forceably disable FBO if user requested it but the video card / driver lacks
// the appropraite frame buffer extension.
- if (useFBO = glewIsSupported("GL_EXT_framebuffer_object"))
+ if (useFBO = 1)//glewIsSupported("GL_EXT_framebuffer_object"))
{
GLuint fb, depth_rb, rgba_tex, other_tex;
diff --git a/Renderer/FBO.hpp b/Renderer/FBO.hpp
index e79954d..3844f24 100755
--- a/Renderer/FBO.hpp
+++ b/Renderer/FBO.hpp
@@ -32,7 +32,10 @@
#ifdef USE_NATIVE_GLEW
#include "glew.h"
#else
-#include <GL/glew.h>
+//#include <GL/glew.h>
+#define GL_GLEXT_PROTOTYPES
+#include <GL/gl.h>
+#include <GL/glext.h>
#endif
#endif
--
2.7.4

View File

@@ -6,7 +6,7 @@ PKG_NAME="visualization.projectm"
PKG_VERSION="5da5a45a5fc6ed22244cb075e029e28b1ff8d69b"
PKG_SHA256="7e0063c5cbaa9f1250bf10fda04abfe0b0f01b751ca951b62c1388354279b424"
PKG_REV="2"
PKG_ARCH="any"
PKG_ARCH="x86_64"
PKG_LICENSE="GPL"
PKG_SITE="https://github.com/notspiff/visualization.projectm"
PKG_URL="https://github.com/notspiff/visualization.projectm/archive/$PKG_VERSION.tar.gz"

View File

@@ -0,0 +1,34 @@
From 4619d76d36e04e64a6072305b7f6dc851059376b Mon Sep 17 00:00:00 2001
From: Arne Morten Kvarving <arne.morten.kvarving@sintef.no>
Date: Wed, 17 Oct 2018 12:55:31 +0200
Subject: [PATCH] fixed: all settings are retransferred on exit
add flag that we do not want to reinit during shutdown
--- a/src/Main.cpp
+++ b/src/Main.cpp
@@ -95,6 +95,7 @@ class ATTRIBUTE_HIDDEN CVisualizationProjectM
int m_lastPresetIdx;
unsigned int m_lastLoggedPresetIdx;
bool m_lastLockStatus;
+ bool m_shutdown = false;
// some projectm globals
const static int maxSamples=512;
@@ -144,6 +145,7 @@ CVisualizationProjectM::~CVisualizationProjectM()
{
unsigned int lastindex = 0;
m_projectM->selectedPresetIndex(lastindex);
+ m_shutdown = true;
kodi::SetSettingInt("lastpresetidx", lastindex);
kodi::SetSettingString("lastpresetfolder", m_projectM->settings().presetURL);
kodi::SetSettingBoolean("lastlockedstatus", m_projectM->isPresetLocked());
@@ -299,7 +301,7 @@ ADDON_STATUS CVisualizationProjectM::SetSetting(const std::string& settingName,
else if (settingName == "beat_sens")
m_configPM.beatSensitivity = settingValue.GetInt() * 2;
- if (settingName == "beat_sens") // becomes changed in future by a additional value on function
+ if (settingName == "beat_sens" && !m_shutdown) // becomes changed in future by a additional value on function
{
if (!InitProjectM()) //The last setting value is already set so we (re)initalize
return ADDON_STATUS_UNKNOWN;