Commit 93a439fe authored by Jan Möbius's avatar Jan Möbius

Merge branch 'Remove_Glut' into 'master'

Remove glut from OpenMesh

See merge request !209
parents 43a09852 46e9e97a
Pipeline #8482 passed with stages
in 77 minutes and 15 seconds
...@@ -42,6 +42,7 @@ ...@@ -42,6 +42,7 @@
<b>Apps</b> <b>Apps</b>
<ul> <ul>
<li>Fixed several warnings with gcc 8</li> <li>Fixed several warnings with gcc 8</li>
<li>Removed the glut dependency</li>
</ul> </ul>
<b>Build System</b> <b>Build System</b>
......
# - try to find glut library and include files
# GLUT_INCLUDE_DIR, where to find GL/glut.h, etc.
# GLUT_LIBRARIES, the libraries to link against
# GLUT_FOUND, If false, do not try to use GLUT.
# Also defined, but not for general use are:
# GLUT_glut_LIBRARY = the full path to the glut library.
# GLUT_Xmu_LIBRARY = the full path to the Xmu library.
# GLUT_Xi_LIBRARY = the full path to the Xi Library.
#=============================================================================
# Copyright 2001-2009 Kitware, Inc.
#
# Distributed under the OSI-approved BSD License (the "License");
# see accompanying file Copyright.txt for details.
#
# This software is distributed WITHOUT ANY WARRANTY; without even the
# implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
# See the License for more information.
#=============================================================================
# (To distributed this file outside of CMake, substitute the full
# License text for the above reference.)
IF (WIN32)
# Check if the base path is set
if ( NOT CMAKE_WINDOWS_LIBS_DIR )
# This is the base directory for windows library search used in the finders we shipp.
set(CMAKE_WINDOWS_LIBS_DIR "c:\libs" CACHE STRING "Default Library search dir on windows." )
endif()
if ( CMAKE_GENERATOR MATCHES "^Visual Studio 11.*Win64" )
SET(VS_SEARCH_PATH "${CMAKE_WINDOWS_LIBS_DIR}/vs2012/x64/")
elseif ( CMAKE_GENERATOR MATCHES "^Visual Studio 11.*" )
SET(VS_SEARCH_PATH "${CMAKE_WINDOWS_LIBS_DIR}/vs2012/x32/")
elseif ( CMAKE_GENERATOR MATCHES "^Visual Studio 12.*Win64" )
SET(VS_SEARCH_PATH "${CMAKE_WINDOWS_LIBS_DIR}/vs2013/x64/")
elseif ( CMAKE_GENERATOR MATCHES "^Visual Studio 12.*" )
SET(VS_SEARCH_PATH "${CMAKE_WINDOWS_LIBS_DIR}/vs2013/x32/")
elseif ( CMAKE_GENERATOR MATCHES "^Visual Studio 14.*Win64" )
SET(VS_SEARCH_PATH "${CMAKE_WINDOWS_LIBS_DIR}/vs2015/x64/")
elseif ( CMAKE_GENERATOR MATCHES "^Visual Studio 14.*" )
SET(VS_SEARCH_PATH "${CMAKE_WINDOWS_LIBS_DIR}/vs2015/x32/")
elseif ( CMAKE_GENERATOR MATCHES "^Visual Studio 15.*Win64" )
SET(VS_SEARCH_PATH "${CMAKE_WINDOWS_LIBS_DIR}/vs2017/x64/")
elseif ( CMAKE_GENERATOR MATCHES "^Visual Studio 15.*" )
SET(VS_SEARCH_PATH "${CMAKE_WINDOWS_LIBS_DIR}/vs2017/x32/")
endif()
FIND_PATH( GLUT_INCLUDE_DIR NAMES GL/glut.h
PATHS ${GLUT_ROOT_PATH}/include
"${CMAKE_WINDOWS_LIBS_DIR}/glut-3.7/include"
"${VS_SEARCH_PATH}/freeglut-3.0.0/include"
"${VS_SEARCH_PATH}/freeglut-2.8.1/include" )
FIND_LIBRARY( GLUT_release_LIBRARY NAMES glut32 glut freeglut
PATHS
${OPENGL_LIBRARY_DIR}
${GLUT_ROOT_PATH}/Release
"${CMAKE_WINDOWS_LIBS_DIR}/glut-3.7/lib"
"${VS_SEARCH_PATH}/freeglut-3.0.0/lib"
"${VS_SEARCH_PATH}/freeglut-2.8.1/lib"
)
GET_FILENAME_COMPONENT( GLUT_LIBRARY_DIR ${GLUT_release_LIBRARY} PATH )
FIND_LIBRARY( GLUT_debug_LIBRARY NAMES glut32d glutd freeglutd
PATHS
${OPENGL_LIBRARY_DIR}
${GLUT_ROOT_PATH}/Release
"${CMAKE_WINDOWS_LIBS_DIR}/glut-3.7/lib"
"${VS_SEARCH_PATH}/freeglut-3.0.0/lib"
"${VS_SEARCH_PATH}/freeglut-2.8.1/lib"
)
set(GLUT_glut_LIBRARY optimized ${GLUT_release_LIBRARY} debug ${GLUT_debug_LIBRARY} CACHE STRING "Path to the glut libraries")
ELSE (WIN32)
IF (APPLE)
# These values for Apple could probably do with improvement.
FIND_PATH( GLUT_INCLUDE_DIR glut.h
/System/Library/Frameworks/GLUT.framework/Versions/A/Headers
${OPENGL_LIBRARY_DIR}
)
SET(GLUT_glut_LIBRARY "-framework GLUT" CACHE STRING "GLUT library for OSX")
SET(GLUT_cocoa_LIBRARY "-framework Cocoa" CACHE STRING "Cocoa framework for OSX")
ELSE (APPLE)
FIND_PATH( GLUT_INCLUDE_DIR GL/glut.h
/usr/include/GL
/usr/openwin/share/include
/usr/openwin/include
/opt/graphics/OpenGL/include
/opt/graphics/OpenGL/contrib/libglut
)
FIND_LIBRARY( GLUT_glut_LIBRARY glut
/usr/openwin/lib
)
FIND_LIBRARY( GLUT_Xi_LIBRARY Xi
/usr/openwin/lib
)
FIND_LIBRARY( GLUT_Xmu_LIBRARY Xmu
/usr/openwin/lib
)
ENDIF (APPLE)
ENDIF (WIN32)
SET( GLUT_FOUND "NO" )
IF(GLUT_INCLUDE_DIR)
IF(GLUT_glut_LIBRARY)
# Is -lXi and -lXmu required on all platforms that have it?
# If not, we need some way to figure out what platform we are on.
SET( GLUT_LIBRARIES
${GLUT_glut_LIBRARY}
${GLUT_Xmu_LIBRARY}
${GLUT_Xi_LIBRARY}
${GLUT_cocoa_LIBRARY}
)
SET( GLUT_FOUND "YES" )
#The following deprecated settings are for backwards compatibility with CMake1.4
SET (GLUT_LIBRARY ${GLUT_LIBRARIES})
SET (GLUT_INCLUDE_PATH ${GLUT_INCLUDE_DIR})
ENDIF(GLUT_glut_LIBRARY)
ENDIF(GLUT_INCLUDE_DIR)
MARK_AS_ADVANCED(
GLUT_INCLUDE_DIR
GLUT_glut_LIBRARY
GLUT_Xmu_LIBRARY
GLUT_Xi_LIBRARY
)
...@@ -39,7 +39,6 @@ if ( BUILD_APPS ) ...@@ -39,7 +39,6 @@ if ( BUILD_APPS )
# find needed packages for gui applications # find needed packages for gui applications
find_package (OpenGL) find_package (OpenGL)
find_package (GLUT)
# For the apps, we need qt and opengl to build them # For the apps, we need qt and opengl to build them
if (NOT QT5_FOUND) if (NOT QT5_FOUND)
...@@ -50,8 +49,8 @@ if ( BUILD_APPS ) ...@@ -50,8 +49,8 @@ if ( BUILD_APPS )
message(WARNING "GUI Apps are not build with mingw. (TODO)") message(WARNING "GUI Apps are not build with mingw. (TODO)")
endif() endif()
# check for OpenGL and GLUT as our required dependencies # check for OpenGL as our required dependencies
if (( QT5_FOUND ) AND OPENGL_FOUND AND GLUT_FOUND AND NOT "${CMAKE_GENERATOR}" MATCHES "MinGW Makefiles" ) if (( QT5_FOUND ) AND OPENGL_FOUND AND NOT "${CMAKE_GENERATOR}" MATCHES "MinGW Makefiles" )
add_subdirectory (Decimating/DecimaterGui) add_subdirectory (Decimating/DecimaterGui)
add_subdirectory (QtViewer) add_subdirectory (QtViewer)
...@@ -97,10 +96,6 @@ if ( BUILD_APPS ) ...@@ -97,10 +96,6 @@ if ( BUILD_APPS )
message ("OpengGL not found! Skipping some apps.") message ("OpengGL not found! Skipping some apps.")
endif () endif ()
if (NOT GLUT_FOUND)
message ("GLUT not found! Skipping some apps.")
endif ()
endif () endif ()
endif() # Project is OpenMesh standalone endif() # Project is OpenMesh standalone
......
...@@ -3,7 +3,6 @@ include (ACGCommon) ...@@ -3,7 +3,6 @@ include (ACGCommon)
include_directories ( include_directories (
../../../.. ../../../..
${CMAKE_CURRENT_SOURCE_DIR} ${CMAKE_CURRENT_SOURCE_DIR}
${GLUT_INCLUDE_DIR}
) )
# source code directories # source code directories
...@@ -36,6 +35,5 @@ target_link_libraries (DecimaterGui ...@@ -36,6 +35,5 @@ target_link_libraries (DecimaterGui
OpenMeshTools OpenMeshTools
Qt5::OpenGL Qt5::OpenGL
${OPENGL_LIBRARIES} ${OPENGL_LIBRARIES}
${GLUT_LIBRARIES}
) )
...@@ -53,12 +53,6 @@ ...@@ -53,12 +53,6 @@
#include "DecimaterViewerWidget.hh" #include "DecimaterViewerWidget.hh"
#ifdef ARCH_DARWIN
#include <glut.h>
#else
#include <GL/glut.h>
#endif
void usage_and_exit(int xcode); void usage_and_exit(int xcode);
...@@ -72,10 +66,6 @@ int main(int argc, char **argv) ...@@ -72,10 +66,6 @@ int main(int argc, char **argv)
QApplication::setColorSpec( QApplication::CustomColor ); QApplication::setColorSpec( QApplication::CustomColor );
QApplication app(argc,argv); QApplication app(argc,argv);
#if !defined(__APPLE__)
glutInit(&argc,argv);
#endif
if ( !QGLFormat::hasOpenGL() ) { if ( !QGLFormat::hasOpenGL() ) {
QString msg = "System has no OpenGL support!"; QString msg = "System has no OpenGL support!";
QMessageBox::critical( NULL, "OpenGL", msg + argv[1] ); QMessageBox::critical( NULL, "OpenGL", msg + argv[1] );
......
...@@ -3,7 +3,6 @@ include (ACGCommon) ...@@ -3,7 +3,6 @@ include (ACGCommon)
include_directories ( include_directories (
../../.. ../../..
${CMAKE_CURRENT_SOURCE_DIR} ${CMAKE_CURRENT_SOURCE_DIR}
${GLUT_INCLUDE_DIR}
) )
...@@ -31,6 +30,5 @@ target_link_libraries ( ProgViewer ...@@ -31,6 +30,5 @@ target_link_libraries ( ProgViewer
OpenMeshTools OpenMeshTools
Qt5::OpenGL Qt5::OpenGL
${OPENGL_LIBRARIES} ${OPENGL_LIBRARIES}
${GLUT_LIBRARIES}
) )
...@@ -53,11 +53,6 @@ ...@@ -53,11 +53,6 @@
#include <QApplication> #include <QApplication>
#include <QGLWidget> #include <QGLWidget>
#ifdef ARCH_DARWIN
#include <glut.h>
#else
#include <GL/glut.h>
#endif
int main(int argc, char **argv) int main(int argc, char **argv)
{ {
...@@ -65,8 +60,6 @@ int main(int argc, char **argv) ...@@ -65,8 +60,6 @@ int main(int argc, char **argv)
QApplication::setColorSpec( QApplication::CustomColor ); QApplication::setColorSpec( QApplication::CustomColor );
QApplication app(argc,argv); QApplication app(argc,argv);
glutInit(&argc,argv);
if ( !QGLFormat::hasOpenGL() ) { if ( !QGLFormat::hasOpenGL() ) {
std::cerr << "This system has no OpenGL support.\n"; std::cerr << "This system has no OpenGL support.\n";
return -1; return -1;
......
...@@ -3,7 +3,6 @@ include (ACGCommon) ...@@ -3,7 +3,6 @@ include (ACGCommon)
include_directories ( include_directories (
../../.. ../../..
${CMAKE_CURRENT_SOURCE_DIR} ${CMAKE_CURRENT_SOURCE_DIR}
${GLUT_INCLUDE_DIR}
) )
# source code directories # source code directories
...@@ -29,6 +28,5 @@ target_link_libraries (QtViewer ...@@ -29,6 +28,5 @@ target_link_libraries (QtViewer
OpenMeshTools OpenMeshTools
Qt5::OpenGL Qt5::OpenGL
${OPENGL_LIBRARIES} ${OPENGL_LIBRARIES}
${GLUT_LIBRARIES}
) )
...@@ -52,11 +52,7 @@ ...@@ -52,11 +52,7 @@
#include <sstream> #include <sstream>
#include <algorithm> #include <algorithm>
// -------------------- // --------------------
#ifdef ARCH_DARWIN
# include <glut.h>
#else
# include <GL/glut.h>
#endif
// -------------------- // --------------------
#include <QApplication> #include <QApplication>
#include <QMenu> #include <QMenu>
...@@ -266,21 +262,21 @@ QGLViewerWidget::draw_scene(const std::string& _draw_mode) ...@@ -266,21 +262,21 @@ QGLViewerWidget::draw_scene(const std::string& _draw_mode)
if (_draw_mode == "Wireframe") if (_draw_mode == "Wireframe")
{ {
glDisable(GL_LIGHTING); glDisable(GL_LIGHTING);
glutWireTeapot(0.5); // glutWireTeapot(0.5);
} }
else if (_draw_mode == "Solid Flat") else if (_draw_mode == "Solid Flat")
{ {
glEnable(GL_LIGHTING); glEnable(GL_LIGHTING);
glShadeModel(GL_FLAT); glShadeModel(GL_FLAT);
glutSolidTeapot(0.5); //glutSolidTeapot(0.5);
} }
else if (_draw_mode == "Solid Smooth") else if (_draw_mode == "Solid Smooth")
{ {
glEnable(GL_LIGHTING); glEnable(GL_LIGHTING);
glShadeModel(GL_SMOOTH); glShadeModel(GL_SMOOTH);
glutSolidTeapot(0.5); //glutSolidTeapot(0.5);
} }
} }
...@@ -585,8 +581,19 @@ QGLViewerWidget::update_projection_matrix() ...@@ -585,8 +581,19 @@ QGLViewerWidget::update_projection_matrix()
makeCurrent(); makeCurrent();
glMatrixMode( GL_PROJECTION ); glMatrixMode( GL_PROJECTION );
glLoadIdentity(); glLoadIdentity();
gluPerspective(45.0, (GLfloat) width() / (GLfloat) height(),
0.01*radius_, 100.0*radius_); const double fovY = 45.0;
const double aspect = static_cast<double>(width()) / static_cast<double>(height());
const double zNear = 0.01*radius_;
const double zFar = 100.0*radius_;
// Replacement for: gluPerspective(45.0, (GLfloat) width() / (GLfloat) height(), 0.01*radius_, 100.0*radius_);
const double pi = 3.1415926535897932384626433832795;
const double fH = tan( fovY / 360 * pi ) * zNear;
const double fW = fH * aspect;
glFrustum( -fW, fW, -fH, fH, zNear, zFar );
glGetDoublev( GL_PROJECTION_MATRIX, projection_matrix_); glGetDoublev( GL_PROJECTION_MATRIX, projection_matrix_);
glMatrixMode( GL_MODELVIEW ); glMatrixMode( GL_MODELVIEW );
} }
......
...@@ -51,12 +51,6 @@ ...@@ -51,12 +51,6 @@
#include <QMenuBar> #include <QMenuBar>
#include <QFileDialog> #include <QFileDialog>
#ifdef ARCH_DARWIN
#include <glut.h>
#else
#include <GL/glut.h>
#endif
#include "MeshViewerWidget.hh" #include "MeshViewerWidget.hh"
...@@ -68,9 +62,6 @@ int main(int argc, char **argv) ...@@ -68,9 +62,6 @@ int main(int argc, char **argv)
// OpenGL check // OpenGL check
QApplication::setColorSpec( QApplication::CustomColor ); QApplication::setColorSpec( QApplication::CustomColor );
QApplication app(argc,argv); QApplication app(argc,argv);
#if !defined(__APPLE__)
glutInit(&argc,argv);
#endif
if ( !QGLFormat::hasOpenGL() ) { if ( !QGLFormat::hasOpenGL() ) {
QString msg = "System has no OpenGL support!"; QString msg = "System has no OpenGL support!";
......
...@@ -3,7 +3,6 @@ include (ACGCommon) ...@@ -3,7 +3,6 @@ include (ACGCommon)
include_directories ( include_directories (
../../../.. ../../../..
${CMAKE_CURRENT_SOURCE_DIR} ${CMAKE_CURRENT_SOURCE_DIR}
${GLUT_INCLUDE_DIR}
) )
# source code directories # source code directories
...@@ -36,6 +35,5 @@ target_link_libraries (SubdividerGui ...@@ -36,6 +35,5 @@ target_link_libraries (SubdividerGui
OpenMeshTools OpenMeshTools
Qt5::OpenGL Qt5::OpenGL
${OPENGL_LIBRARIES} ${OPENGL_LIBRARIES}
${GLUT_LIBRARIES}
) )
...@@ -52,22 +52,12 @@ ...@@ -52,22 +52,12 @@
#include <QMessageBox> #include <QMessageBox>
#include "SubdivideWidget.hh" #include "SubdivideWidget.hh"
#ifdef ARCH_DARWIN
#include <glut.h>
#else
#include <GL/glut.h>
#endif
int main(int argc, char **argv) int main(int argc, char **argv)
{ {
// OpenGL check // OpenGL check
QApplication::setColorSpec( QApplication::CustomColor ); QApplication::setColorSpec( QApplication::CustomColor );
QApplication app(argc,argv); QApplication app(argc,argv);
#if !defined(__APPLE__)
glutInit(&argc,argv);
#endif
if ( !QGLFormat::hasOpenGL() ) { if ( !QGLFormat::hasOpenGL() ) {
QString msg = "System has no OpenGL support!"; QString msg = "System has no OpenGL support!";
QMessageBox::critical( NULL, "OpenGL", msg + argv[1], QMessageBox::Ok ); QMessageBox::critical( NULL, "OpenGL", msg + argv[1], QMessageBox::Ok );
......
...@@ -3,7 +3,6 @@ include (ACGCommon) ...@@ -3,7 +3,6 @@ include (ACGCommon)
include_directories ( include_directories (
../../../.. ../../../..
${CMAKE_CURRENT_SOURCE_DIR} ${CMAKE_CURRENT_SOURCE_DIR}
${GLUT_INCLUDE_DIR}
) )
# collect all header and source files # collect all header and source files
...@@ -30,5 +29,4 @@ target_link_libraries (Synthesizer ...@@ -30,5 +29,4 @@ target_link_libraries (Synthesizer
OpenMeshTools OpenMeshTools
Qt5::OpenGL Qt5::OpenGL
${OPENGL_LIBRARIES} ${OPENGL_LIBRARIES}
${GLUT_LIBRARIES}
) )
...@@ -62,13 +62,6 @@ ...@@ -62,13 +62,6 @@
#include <QFileDialog> #include <QFileDialog>
#include <QDataStream> #include <QDataStream>
#ifdef ARCH_DARWIN
#include <glut.h>
#else
#include <GL/glut.h>
#endif
#include <OpenMesh/Core/IO/MeshIO.hh> #include <OpenMesh/Core/IO/MeshIO.hh>
#include <OpenMesh/Core/IO/BinaryHelper.hh> #include <OpenMesh/Core/IO/BinaryHelper.hh>
#include <OpenMesh/Core/Utils/Endian.hh> #include <OpenMesh/Core/Utils/Endian.hh>
......
...@@ -52,21 +52,12 @@ ...@@ -52,21 +52,12 @@
#include "VDPMSynthesizerViewerWidget.hh" #include "VDPMSynthesizerViewerWidget.hh"
#ifdef ARCH_DARWIN
#include <glut.h>
#else
#include <GL/glut.h>
#endif
int main(int argc, char **argv) int main(int argc, char **argv)
{ {
// OpenGL check // OpenGL check
QApplication::setColorSpec( QApplication::CustomColor ); QApplication::setColorSpec( QApplication::CustomColor );
QApplication app(argc,argv); QApplication app(argc,argv);
#if !defined(__APPLE__)
glutInit(&argc,argv);
#endif
if ( !QGLFormat::hasOpenGL() ) { if ( !QGLFormat::hasOpenGL() ) {
std::cerr << "This system has no OpenGL support.\n"; std::cerr << "This system has no OpenGL support.\n";
......
...@@ -55,7 +55,6 @@ ...@@ -55,7 +55,6 @@
//== INCLUDES ================================================================= //== INCLUDES =================================================================
#include <OpenMesh/Core/System/config.h> #include <OpenMesh/Core/System/config.h>
#include <GL/glut.h>
//== FORWARDDECLARATIONS ====================================================== //== FORWARDDECLARATIONS ======================================================
......
...@@ -161,7 +161,7 @@ TEST_F(OpenMeshEigenTest, Test_Basic_setup) { ...@@ -161,7 +161,7 @@ TEST_F(OpenMeshEigenTest, Test_Basic_setup) {
mesh_.add_face(face_vhandles); mesh_.add_face(face_vhandles);
EXPECT_EQ(mesh_.n_faces(),2) << "Wrong number of faces"; EXPECT_EQ(mesh_.n_faces(),2u) << "Wrong number of faces";
} }
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment