Add possibility to use system fonts & fix font-loading bug in renderer

git-svn-id: https://projectm.svn.sourceforge.net/svnroot/projectm/trunk@1396 6778bc44-b910-0410-a7a0-be141de4315d
This commit is contained in:
ximion
2012-04-14 14:26:11 +00:00
parent e8734303a1
commit b2c0fcd7bb
9 changed files with 51 additions and 44 deletions

View File

@ -1,4 +1,3 @@
projectM -- Milkdrop-esque visualisation SDK
Copyright (C)2003-2007 projectM Team
@ -25,12 +24,12 @@ Carmelo Piccione
Evaluator
Pulse Audio support (projectM-pulseaudio)
Qt GUI (projectM-qt)
Peter Sperl
Beat Detection
Rendering
XMMS Support (projectM-xmms)
libvisual Support (projectM-libvisual)
libvisual Support (projectM-libvisual)
Alligator Descartes
Media Player Support (iTunes, Winamp, Windows Media Player)
@ -40,3 +39,8 @@ Alligator Descartes
Roger Dannenburg
Advice & Support
Matthias Klumpp
CMake build system
Distro integration
Bug fixes

View File

@ -1,11 +1,5 @@
PROJECT(projectM-complete)
cmake_minimum_required(VERSION 2.4.0)
cmake_policy(SET CMP0005 OLD)
if(COMMAND cmake_policy)
cmake_policy(SET CMP0003 NEW)
endif(COMMAND cmake_policy)
cmake_minimum_required(VERSION 2.8.0)
include(src/cmake/CPack-projectM.cmake)

View File

@ -33,16 +33,10 @@ set(PROJECTM_VERSION 2.0.1)
set(PROJECTM_ABI_LEVEL 2)
#
SET(LIB_SUFFIX ""
CACHE STRING "Define suffix of directory name (32/64)"
FORCE)
ADD_DEFINITIONS(-DLIB_SUFFIX="\\\"${LIB_SUFFIX}\\\"")
ADD_DEFINITIONS(-DCMAKE_INSTALL_PREFIX="\\\"${CMAKE_INSTALL_PREFIX}\\\"")
SET(LIB_INSTALL_DIR "\${exec_prefix}/lib${LIB_SUFFIX}"
CACHE PATH "The subdirectory relative to the install prefix where libraries will be installed (default is /lib${LIB_SUFFIX})"
SET(LIB_INSTALL_DIR "\${exec_prefix}/lib"
CACHE PATH "The subdirectory relative to the install prefix where libraries will be installed (default is /lib)"
FORCE)
if (USE_NATIVE_GLEW)
@ -221,14 +215,26 @@ else(BUILD_PROJECTM_STATIC)
)
endif(BUILD_PROJECTM_STATIC)
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")
ADD_DEFINITIONS(-DprojectM_FONT_MENU="\\\"${projectM_FONT_MENU}\\\"")
ADD_DEFINITIONS(-DprojectM_FONT_TITLE="\\\"${projectM_FONT_TITLE}\\\"")
CONFIGURE_FILE("${CMAKE_CURRENT_SOURCE_DIR}/libprojectM.pc.in" "${CMAKE_CURRENT_BINARY_DIR}/libprojectM.pc" @ONLY)
CONFIGURE_FILE("${CMAKE_CURRENT_SOURCE_DIR}/config.inp.in" "${CMAKE_CURRENT_BINARY_DIR}/config.inp" @ONLY)
IF(projectM_FONT_MENU MATCHES "${CMAKE_INSTALL_PREFIX}/${RESOURCE_PREFIX}/fonts/Vera.ttf" OR projectM_FONT_TITLE MATCHES "${CMAKE_INSTALL_PREFIX}/${RESOURCE_PREFIX}/fonts/Vera.ttf")
INSTALL(FILES ${CMAKE_CURRENT_SOURCE_DIR}/fonts/VeraMono.ttf DESTINATION ${CMAKE_INSTALL_PREFIX}/${RESOURCE_PREFIX}/fonts)
ENDIF(projectM_FONT_MENU MATCHES "${CMAKE_INSTALL_PREFIX}/${RESOURCE_PREFIX}/fonts/Vera.ttf" OR projectM_FONT_TITLE MATCHES "${CMAKE_INSTALL_PREFIX}/${RESOURCE_PREFIX}/fonts/Vera.ttf")
IF(projectM_FONT_MENU MATCHES "${CMAKE_INSTALL_PREFIX}/${RESOURCE_PREFIX}/fonts/VeraMono.ttf" OR projectM_FONT_TITLE MATCHES "${CMAKE_INSTALL_PREFIX}/${RESOURCE_PREFIX}/fonts/VeraMono.ttf")
INSTALL(FILES ${CMAKE_CURRENT_SOURCE_DIR}/fonts/VeraMono.ttf DESTINATION ${CMAKE_INSTALL_PREFIX}/${RESOURCE_PREFIX}/fonts)
ENDIF(projectM_FONT_MENU MATCHES "${CMAKE_INSTALL_PREFIX}/${RESOURCE_PREFIX}/fonts/VeraMono.ttf" OR projectM_FONT_TITLE MATCHES "${CMAKE_INSTALL_PREFIX}/${RESOURCE_PREFIX}/fonts/VeraMono.ttf")
FILE(GLOB presets "presets/*.milk" "presets/*.prjm" "presets/*.tga")
INSTALL(FILES ${presets} DESTINATION ${CMAKE_INSTALL_PREFIX}/share/projectM/presets)
INSTALL(FILES ${Renderer_SOURCE_DIR}/projectM.cg ${Renderer_SOURCE_DIR}/blur.cg DESTINATION ${CMAKE_INSTALL_PREFIX}/share/projectM/shaders)
INSTALL(FILES ${CMAKE_CURRENT_BINARY_DIR}/libprojectM.pc DESTINATION ${CMAKE_INSTALL_PREFIX}/lib${LIB_SUFFIX}/pkgconfig)
INSTALL(FILES ${CMAKE_CURRENT_BINARY_DIR}/libprojectM.pc DESTINATION ${CMAKE_INSTALL_PREFIX}/lib/pkgconfig)
INSTALL(FILES ${CMAKE_CURRENT_BINARY_DIR}/config.inp DESTINATION ${CMAKE_INSTALL_PREFIX}/share/projectM)
INSTALL(FILES projectM.hpp event.h dlldefs.h fatal.h PCM.hpp Common.hpp DESTINATION include/libprojectM)
INSTALL(TARGETS projectM DESTINATION lib${LIB_SUFFIX})
INSTALL(TARGETS projectM DESTINATION lib)

View File

@ -6,6 +6,7 @@
#include "TextureManager.hpp"
#include <iostream>
#include <algorithm>
#include <sys/stat.h>
#include <cassert>
#include "omptl/omptl"
#include "omptl/omptl_algorithm"
@ -45,7 +46,17 @@ Renderer::Renderer(int width, int height, int gx, int gy, int texsize, BeatDetec
this->beatDetect = beatDetect;
#ifdef USE_FTGL
/**f Load the standard fonts */
/** Load the standard fonts if they do exist */
struct stat buffer;
if (stat( title_fontURL.c_str(), &buffer )) {
std::cout << "Could not open font file: " << title_fontURL << std::endl;
exit(1);
}
if (stat( menu_fontURL.c_str(), &buffer )) {
std::cout << "Could not open font file: " << menu_fontURL << std::endl;
exit(1);
}
title_font = new FTGLPixmapFont(title_fontURL.c_str());
other_font = new FTGLPixmapFont(menu_fontURL.c_str());

View File

@ -4,8 +4,8 @@
Texture Size = 1024 # Size of internal rendering texture
Mesh X = 32 # Width of PerPixel Equation mesh
Mesh Y = 24 # Height of PerPixel Equation mesh
FPS = 35 # Frames Per Second
Fullscreen = false
FPS = 35 # Frames Per Second
Fullscreen = false
Window Width = 512 # startup window width
Window Height = 512 # startup window height
@ -17,6 +17,5 @@ Hard Cut Sensitivity = 10 # Lower to make hard cuts more frequent
Aspect Correction = true # Custom Shape Aspect Correction
Preset Path = @CMAKE_INSTALL_PREFIX@/@RESOURCE_PREFIX@/presets # preset location
Title Font = @CMAKE_INSTALL_PREFIX@/@RESOURCE_PREFIX@/fonts/Vera.ttf
Menu Font = @CMAKE_INSTALL_PREFIX@/@RESOURCE_PREFIX@/fonts/VeraMono.ttf
Title Font = @projectM_FONT_TITLE@
Menu Font = @projectM_FONT_MENU@

View File

@ -201,16 +201,16 @@ void projectM::readConfig (const std::string & configFile )
#ifdef LINUX
_settings.titleFontURL = config.read<string>
( "Title Font", CMAKE_INSTALL_PREFIX "/share/projectM/fonts/Vera.ttf" );
( "Title Font", projectM_FONT_TITLE );
_settings.menuFontURL = config.read<string>
( "Menu Font", CMAKE_INSTALL_PREFIX "/share/projectM/fonts/VeraMono.ttf" );
( "Menu Font", projectM_FONT_MENU );
#endif
#ifdef WIN32
_settings.titleFontURL = config.read<string>
( "Title Font", CMAKE_INSTALL_PREFIX "/share/projectM/fonts/Vera.ttf" );
( "Title Font", projectM_FONT_TITLE );
_settings.menuFontURL = config.read<string>
( "Menu Font", CMAKE_INSTALL_PREFIX "/share/projectM/fonts/VeraMono.ttf" );
( "Menu Font", projectM_FONT_MENU );
#endif

View File

@ -1,19 +1,13 @@
PROJECT(projectM_libvisual)
cmake_minimum_required(VERSION 2.4.0)
if(COMMAND cmake_policy)
cmake_policy(SET CMP0003 NEW)
endif(COMMAND cmake_policy)
INCLUDE(cmake/CPack-projectM.cmake)
ADD_LIBRARY(projectM_libvisual SHARED actor_projectM.cpp lvtoprojectM.h ConfigFile.h ConfigFile.cpp)
INCLUDE(FindPkgConfig.cmake)
cmake_policy(SET CMP0005 OLD)
FIND_PACKAGE(OpenGL)
FIND_PACKAGE(SDL)
@ -30,19 +24,18 @@ ADD_DEFINITIONS(-DLINUX)
pkg_search_module(LIBVISUAL REQUIRED libvisual-0.4)
if (LIBPROJECTM_FOUND)
MESSAGE (STATUS "[projectM-libvisual] projectM detected.")
MESSAGE (STATUS "[projectM-libvisual] projectM detected.")
else(LIBPROJECTM_FOUND)
MESSAGE (FATAL_ERROR "projectM NOT detected. Please install the projectM module or build from the top level projectM source directory.")
MESSAGE (FATAL_ERROR "projectM NOT detected. Please install the projectM module or build from the top level projectM source directory.")
endif(LIBPROJECTM_FOUND)
if(LIBVISUAL_FOUND)
MESSAGE(STATUS "[projectM-libvisual] libvisual detected.")
MESSAGE(STATUS "[projectM-libvisual] libvisual detected.")
else(LIBVISUAL_FOUND)
MESSAGE(FATAL_ERROR "libvisual 0.4 not found! Please visit http://libvisual.sf.net and download the module.")
MESSAGE(FATAL_ERROR "libvisual 0.4 not found! Please visit http://libvisual.sf.net and download the module.")
endif(LIBVISUAL_FOUND)
if (${CMAKE_PROJECT_NAME} MATCHES "projectM-complete")
set(PROJECTM_INCLUDE ${PROJECTM_ROOT_SOURCE_DIR}/libprojectM)
set(PROJECTM_LINK ${PROJECTM_ROOT_BINARY_DIR}/libprojectM)

View File

@ -131,6 +131,6 @@ include_directories(${PROJECTM_INCLUDE} ${QT_INCLUDE_DIR} ${QT_QTGUI_INCLUDE_DIR
target_link_libraries(projectM-qt projectM GLEW GL ${QT_QTGUI_LIBRARIES} ${QT_QTOPENGL_LIBRARIES} ${QT_QTXML_LIBRARIES} ${QT_LIBRARIES})
install(FILES qprojectm_mainwindow.hpp DESTINATION include/libprojectM-qt)
install(TARGETS projectM-qt DESTINATION lib${LIB_SUFFIX})
install(FILES "${CMAKE_CURRENT_BINARY_DIR}/libprojectM-qt.pc" DESTINATION ${CMAKE_INSTALL_PREFIX}/lib${LIB_SUFFIX}/pkgconfig)
install(TARGETS projectM-qt DESTINATION lib)
install(FILES "${CMAKE_CURRENT_BINARY_DIR}/libprojectM-qt.pc" DESTINATION lib/pkgconfig)
install(FILES "images/icons/prjm16-transparent.svg" DESTINATION ${CMAKE_INSTALL_PREFIX}/share/pixmaps)

View File

@ -44,4 +44,4 @@ LINK_DIRECTORIES(${PROJECTM_LINK} ${LIBXMMS_LDFLAGS})
TARGET_LINK_LIBRARIES(xmms_projectM projectM xmms ${SDL_LIBRARY} ${GTK_LIBRARIES})
INSTALL(TARGETS xmms_projectM DESTINATION ${CMAKE_INSTALL_PREFIX}/lib${LIB_SUFFIX}/xmms/Visualization )
INSTALL(TARGETS xmms_projectM DESTINATION lib/xmms/Visualization )