Commit 0ebf86d3 authored by Jan Möbius's avatar Jan Möbius

Merge branch 'GLUT' into 'master'

Removed glut

Closes #1

See merge request !133
parents 7d591916 0c5383bd
...@@ -10,7 +10,6 @@ include_directories ( ...@@ -10,7 +10,6 @@ include_directories (
${CMAKE_CURRENT_BINARY_DIR} ${CMAKE_CURRENT_BINARY_DIR}
${OPENGL_INCLUDE_DIR} ${OPENGL_INCLUDE_DIR}
${GLEW_INCLUDE_DIR} ${GLEW_INCLUDE_DIR}
${GLUT_INCLUDE_DIR}
) )
# Linking for apple is special here as the linker pulls in the dependencies, we have to set them like in PluginLib! # Linking for apple is special here as the linker pulls in the dependencies, we have to set them like in PluginLib!
...@@ -156,7 +155,6 @@ if (WIN32) ...@@ -156,7 +155,6 @@ if (WIN32)
-DUSEACG -DUSEACG
-DPLUGINLIBDLL -DPLUGINLIBDLL
-DUSEPLUGINLIBDLL -DUSEPLUGINLIBDLL
-DFREEGLUT_LIB_PRAGMAS=0
) )
endif () endif ()
...@@ -228,7 +226,6 @@ target_link_libraries (${OPENFLIPPER_PRODUCT_STRING} ...@@ -228,7 +226,6 @@ target_link_libraries (${OPENFLIPPER_PRODUCT_STRING}
${QT_LIBRARIES} ${QT_LIBRARIES}
${OPENGL_LIBRARIES} ${OPENGL_LIBRARIES}
${GLEW_LIBRARY} ${GLEW_LIBRARY}
${GLUT_LIBRARIES}
${COREAPP_ADDITIONAL_LINK_LIBRARIES} ${COREAPP_ADDITIONAL_LINK_LIBRARIES}
${OPENFLIPPER_STATIC_PLUGINS} ${OPENFLIPPER_STATIC_PLUGINS}
) )
......
...@@ -10,7 +10,6 @@ OpenFlipper. ...@@ -10,7 +10,6 @@ OpenFlipper.
\section reqlibs Required libraries \section reqlibs Required libraries
<ul> <ul>
<li> 5.9 >= Qt >= 5.5.1 ( http://www.qt.io/download/ ) Use the OpenGL version for Qt >= 5.0</li> <li> 5.9 >= Qt >= 5.5.1 ( http://www.qt.io/download/ ) Use the OpenGL version for Qt >= 5.0</li>
<li> GLUT ( http://www.opengl.org/resources/libraries/glut/ )</li>
<li> GLEW (>=1.6) ( http://glew.sourceforge.net )</li> <li> GLEW (>=1.6) ( http://glew.sourceforge.net )</li>
</ul> </ul>
...@@ -82,9 +81,6 @@ directory. ...@@ -82,9 +81,6 @@ directory.
<li> Download the glew library and install it (The best way is to install it to c:\\libs\\glew directory ).)<br /> <li> Download the glew library and install it (The best way is to install it to c:\\libs\\glew directory ).)<br />
The c:\\libs\\glew\\lib subdirectory should contain the dll and the *.lib files)<br /> The c:\\libs\\glew\\lib subdirectory should contain the dll and the *.lib files)<br />
The headers should be located in the c:\\libs\\glew\\include\\gl subdirectory</li> The headers should be located in the c:\\libs\\glew\\include\\gl subdirectory</li>
<li> Rearrange the files in the glut-3.7 directory such that)<br />
all *.lib and *.dll files are in a c:\\libs\\glut-3.7\\lib subdirectory)<br />
and the glut.h file is moved to the subdirectory c:\\libs\\glut-3.7\\include\\gl\\glut.h</li>
<li> Get cmake for windows from http://www.cmake.org/cmake/resources/software.html </li> <li> Get cmake for windows from http://www.cmake.org/cmake/resources/software.html </li>
<li> Start the cmake gui and select the OpenFlipper toplevel directory as source directory </li> <li> Start the cmake gui and select the OpenFlipper toplevel directory as source directory </li>
\image html cmake-source.png \image html cmake-source.png
...@@ -121,7 +117,6 @@ Don't forget setting up the "OpenFlipper" target as startup project as shown in ...@@ -121,7 +117,6 @@ Don't forget setting up the "OpenFlipper" target as startup project as shown in
Install at least the following ports: <br /> Install at least the following ports: <br />
qt4-mac +debug<br /> qt4-mac +debug<br />
glew<br /> glew<br />
glut<br />
cmake<br /> cmake<br />
br /> br />
As additional ports we recommend the following<br /> As additional ports we recommend the following<br />
......
...@@ -762,10 +762,6 @@ int main(int argc, char **argv) ...@@ -762,10 +762,6 @@ int main(int argc, char **argv)
return -1; return -1;
} }
#ifndef __APPLE__
glutInit(&argc,argv);
#endif
// create core ( this also reads the ini files ) // create core ( this also reads the ini files )
Core * w = new Core( ); Core * w = new Core( );
#ifdef PYTHON_ENABLED #ifdef PYTHON_ENABLED
......
...@@ -43,7 +43,6 @@ include_directories ( ...@@ -43,7 +43,6 @@ include_directories (
${CMAKE_CURRENT_BINARY_DIR} ${CMAKE_CURRENT_BINARY_DIR}
${OPENGL_INCLUDE_DIR} ${OPENGL_INCLUDE_DIR}
${GLEW_INCLUDE_DIR} ${GLEW_INCLUDE_DIR}
${GLUT_INCLUDE_DIR}
${ADDITIONAL_PLUGINLIB_INCS} ${ADDITIONAL_PLUGINLIB_INCS}
${PACKAGE_INCLUDES} ${PACKAGE_INCLUDES}
) )
...@@ -63,7 +62,6 @@ if (WIN32) ...@@ -63,7 +62,6 @@ if (WIN32)
-DPLUGINLIBDLL -DPLUGINLIBDLL
-DACGDLL -DACGDLL
-DUSEACG -DUSEACG
-DFREEGLUT_LIB_PRAGMAS=0
) )
endif () endif ()
...@@ -145,7 +143,6 @@ target_link_libraries (OpenFlipperPluginLib ...@@ -145,7 +143,6 @@ target_link_libraries (OpenFlipperPluginLib
${QT_LIBRARIES} ${QT_LIBRARIES}
${OPENGL_LIBRARIES} ${OPENGL_LIBRARIES}
${GLEW_LIBRARY} ${GLEW_LIBRARY}
${GLUT_LIBRARIES}
${FTGL_LIBS} ${FTGL_LIBS}
${ADDITIONAL_PLUGINLIB_LIBS} ${ADDITIONAL_PLUGINLIB_LIBS}
) )
......
...@@ -202,7 +202,7 @@ include (ACGOutput) ...@@ -202,7 +202,7 @@ include (ACGOutput)
acg_openmp () acg_openmp ()
# check for OpenGL, GLEW and GLUT as our required dependencies # check for OpenGL, GLEW as our required dependencies
find_package (OpenGL) find_package (OpenGL)
if (NOT OPENGL_FOUND) if (NOT OPENGL_FOUND)
message (FATAL_ERROR "OpengGL not found!") message (FATAL_ERROR "OpengGL not found!")
...@@ -213,11 +213,6 @@ if (NOT GLEW_FOUND) ...@@ -213,11 +213,6 @@ if (NOT GLEW_FOUND)
message (FATAL_ERROR "GLEW not found!") message (FATAL_ERROR "GLEW not found!")
endif () endif ()
find_package (GLUT)
if (NOT GLUT_FOUND)
message (FATAL_ERROR "GLUT not found!")
endif ()
# using the internal openmesh delivered by the svn repo (default) or use some external installation # using the internal openmesh delivered by the svn repo (default) or use some external installation
set (USE_INTERNAL_OPENMESH ON CACHE BOOL "Use and build internal version of OpenMesh found in libs_required") set (USE_INTERNAL_OPENMESH ON CACHE BOOL "Use and build internal version of OpenMesh found in libs_required")
......
# - 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
)
...@@ -528,7 +528,6 @@ function (_build_openflipper_plugin plugin) ...@@ -528,7 +528,6 @@ function (_build_openflipper_plugin plugin)
${${_PLUGIN}_INCDIRS} ${${_PLUGIN}_INCDIRS}
${OPENGL_INCLUDE_DIR} ${OPENGL_INCLUDE_DIR}
${GLEW_INCLUDE_DIR} ${GLEW_INCLUDE_DIR}
${GLUT_INCLUDE_DIR}
${CMAKE_BINARY_DIR}/OpenFlipper/PluginLib ${CMAKE_BINARY_DIR}/OpenFlipper/PluginLib
${PACKAGE_INCLUDES} ${PACKAGE_INCLUDES}
${${_PLUGIN}_TYPE_INCLUDES} ${${_PLUGIN}_TYPE_INCLUDES}
...@@ -693,15 +692,12 @@ function (_build_openflipper_plugin plugin) ...@@ -693,15 +692,12 @@ function (_build_openflipper_plugin plugin)
) )
if (WIN32) if (WIN32)
# Visual studio requires our plugins to link with GLUT
find_package (GLUT)
# generate dllinport defines # generate dllinport defines
add_definitions (-DACGDLL -DUSEACG -DPLUGINLIBDLL -DUSEPLUGINLIBDLL -DFREEGLUT_LIB_PRAGMAS=0) add_definitions (-DACGDLL -DUSEACG -DPLUGINLIBDLL -DUSEPLUGINLIBDLL )
target_link_libraries (Plugin-${plugin} target_link_libraries (Plugin-${plugin}
${OPENMESH_LIBRARIES} ${OPENMESH_LIBRARIES}
ACG ACG
OpenFlipperPluginLib OpenFlipperPluginLib
${GLUT_LIBRARIES}
) )
# copy plugin dll file to "Build" directory # copy plugin dll file to "Build" directory
......
...@@ -17,7 +17,6 @@ if (WIN32) ...@@ -17,7 +17,6 @@ if (WIN32)
-DBUILDOBJECTTYPEDLL -DBUILDOBJECTTYPEDLL
-DACGDLL -DACGDLL
-DUSEACG -DUSEACG
-DFREEGLUT_LIB_PRAGMAS=0
) )
endif () endif ()
...@@ -43,7 +42,6 @@ include_directories ( ...@@ -43,7 +42,6 @@ include_directories (
${CMAKE_CURRENT_BINARY_DIR} ${CMAKE_CURRENT_BINARY_DIR}
${OPENGL_INCLUDE_DIR} ${OPENGL_INCLUDE_DIR}
${GLEW_INCLUDE_DIR} ${GLEW_INCLUDE_DIR}
${GLUT_INCLUDE_DIR}
) )
# remove template cc files from source file list # remove template cc files from source file list
...@@ -73,7 +71,6 @@ target_link_libraries (${TYPENAME} ...@@ -73,7 +71,6 @@ target_link_libraries (${TYPENAME}
${QT_LIBRARIES} ${QT_LIBRARIES}
${OPENGL_LIBRARIES} ${OPENGL_LIBRARIES}
${GLEW_LIBRARY} ${GLEW_LIBRARY}
${GLUT_LIBRARIES}
OpenFlipperPluginLib OpenFlipperPluginLib
) )
...@@ -16,7 +16,7 @@ endif () ...@@ -16,7 +16,7 @@ endif ()
acg_openmp () acg_openmp ()
# check for OpenGL, GLEW and GLUT as our required dependencies # check for OpenGL, GLEW as our required dependencies
find_package (OpenGL) find_package (OpenGL)
if (NOT OPENGL_FOUND) if (NOT OPENGL_FOUND)
message (FATAL_ERROR "OpengGL not found!") message (FATAL_ERROR "OpengGL not found!")
...@@ -27,11 +27,6 @@ if (NOT GLEW_FOUND) ...@@ -27,11 +27,6 @@ if (NOT GLEW_FOUND)
message (FATAL_ERROR "GLEW not found!") message (FATAL_ERROR "GLEW not found!")
endif () endif ()
find_package (GLUT)
if (NOT GLUT_FOUND)
message (FATAL_ERROR "GLUT not found!")
endif ()
find_package (OpenMesh) find_package (OpenMesh)
if (NOT OPENMESH_FOUND) if (NOT OPENMESH_FOUND)
message (FATAL_ERROR "OpenMesh not found!") message (FATAL_ERROR "OpenMesh not found!")
...@@ -42,8 +37,7 @@ set(INCLUDE_DIRS ${OPENMESH_INCLUDE_DIRS} ...@@ -42,8 +37,7 @@ set(INCLUDE_DIRS ${OPENMESH_INCLUDE_DIRS}
${CMAKE_CURRENT_SOURCE_DIR}/ShaderUtils ${CMAKE_CURRENT_SOURCE_DIR}/ShaderUtils
${CMAKE_CURRENT_BINARY_DIR} ${CMAKE_CURRENT_BINARY_DIR}
${OPENGL_INCLUDE_DIR} ${OPENGL_INCLUDE_DIR}
${GLEW_INCLUDE_DIR} ${GLEW_INCLUDE_DIR} )
${GLUT_INCLUDE_DIR} )
set(ADDITIONAL_LINK_LIBRARIES "" ) set(ADDITIONAL_LINK_LIBRARIES "" )
set(ADDITIONAL_BUILD_DIRS "" ) set(ADDITIONAL_BUILD_DIRS "" )
...@@ -99,7 +93,7 @@ set (directories ...@@ -99,7 +93,7 @@ set (directories
# generate dllexport macros on windows # generate dllexport macros on windows
if (WIN32) if (WIN32)
add_definitions(-DACGDLL -DFREEGLUT_LIB_PRAGMAS=0) add_definitions(-DACGDLL )
remove_definitions(-DUSEACG) remove_definitions(-DUSEACG)
endif () endif ()
...@@ -142,7 +136,6 @@ target_link_libraries ( ACG ${OPENMESH_LIBRARIES} ...@@ -142,7 +136,6 @@ target_link_libraries ( ACG ${OPENMESH_LIBRARIES}
${QT_LIBRARIES} ${QT_LIBRARIES}
${OPENGL_LIBRARIES} ${OPENGL_LIBRARIES}
${GLEW_LIBRARY} ${GLEW_LIBRARY}
${GLUT_LIBRARIES}
${ADDITIONAL_LINK_LIBRARIES} ) ${ADDITIONAL_LINK_LIBRARIES} )
#=================================================================== #===================================================================
......
...@@ -55,7 +55,6 @@ ...@@ -55,7 +55,6 @@
#if defined(ARCH_DARWIN) #if defined(ARCH_DARWIN)
#include <glut.h>
#include <OpenGL/gl.h> #include <OpenGL/gl.h>
#elif defined(WIN32) #elif defined(WIN32)
...@@ -65,11 +64,9 @@ ...@@ -65,11 +64,9 @@
// but a lot with static linking // but a lot with static linking
// # define GLEW_STATIC 1 // # define GLEW_STATIC 1
#include <gl/glew.h> #include <gl/glew.h>
#include <gl/glut.h>
#else #else
#include <GL/glut.h>
#include <GL/gl.h> #include <GL/gl.h>
#endif #endif
......
/*===========================================================================*\
* *
* OpenFlipper *
* Copyright (c) 2001-2015, RWTH-Aachen University *
* Department of Computer Graphics and Multimedia *
* All rights reserved. *
* www.openflipper.org *
* *
*---------------------------------------------------------------------------*
* This file is part of OpenFlipper. *
*---------------------------------------------------------------------------*
* *
* Redistribution and use in source and binary forms, with or without *
* modification, are permitted provided that the following conditions *
* are met: *
* *
* 1. Redistributions of source code must retain the above copyright notice, *
* this list of conditions and the following disclaimer. *
* *
* 2. Redistributions in binary form must reproduce the above copyright *
* notice, this list of conditions and the following disclaimer in the *
* documentation and/or other materials provided with the distribution. *
* *
* 3. Neither the name of the copyright holder nor the names of its *
* contributors may be used to endorse or promote products derived from *
* this software without specific prior written permission. *
* *
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS *
* "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED *
* TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A *
* PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER *
* OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, *
* EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, *
* PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR *
* PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF *
* LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING *
* NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS *
* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. *
* *
\*===========================================================================*/
//=============================================================================
//== INCLUDES =================================================================
#include "gltext.hh"
#include <ACG/Math/GLMatrixT.hh>
//=============================================================================
namespace ACG {
//=============================================================================
void glText(const Vec3f& _pos,
const std::string& _text,
void* _font)
{
glRasterPos3fv(_pos.data());
std::string::const_iterator s_it(_text.begin()), s_end(_text.end());
for (; s_it!=s_end; ++s_it)
glutBitmapCharacter(_font, *s_it);
}
//-----------------------------------------------------------------------------
void glText( const Vec2i& _pos,
const std::string& _text,
void* _font)
{
GLint viewport[4];
glGetIntegerv(GL_VIEWPORT, viewport);
// set raster pos
glMatrixMode(GL_PROJECTION);
glPushMatrix();
GLMatrixf orthoProj;
orthoProj.identity();
orthoProj.ortho(0.0f, float(viewport[2]), 0.0f, float(viewport[3]), -1.0f, 1.0f);
glLoadMatrixf(orthoProj.data());
glMatrixMode(GL_MODELVIEW);
glPushMatrix();
glLoadIdentity();
glRasterPos2i(_pos[0], _pos[1]);
// draw characters
std::string::const_iterator s_it(_text.begin()), s_end(_text.end());
for (; s_it!=s_end; ++s_it)
glutBitmapCharacter(_font, *s_it);
// restore matrices
glMatrixMode(GL_PROJECTION);
glPopMatrix();
glMatrixMode(GL_MODELVIEW);
glPopMatrix();
}
//=============================================================================
} // namespace ACG
//=============================================================================
/*===========================================================================*\
* *
* OpenFlipper *
* Copyright (c) 2001-2015, RWTH-Aachen University *
* Department of Computer Graphics and Multimedia *
* All rights reserved. *
* www.openflipper.org *
* *
*---------------------------------------------------------------------------*
* This file is part of OpenFlipper. *
*---------------------------------------------------------------------------*
* *
* Redistribution and use in source and binary forms, with or without *
* modification, are permitted provided that the following conditions *
* are met: *
* *
* 1. Redistributions of source code must retain the above copyright notice, *
* this list of conditions and the following disclaimer. *
* *
* 2. Redistributions in binary form must reproduce the above copyright *
* notice, this list of conditions and the following disclaimer in the *
* documentation and/or other materials provided with the distribution. *
* *
* 3. Neither the name of the copyright holder nor the names of its *
* contributors may be used to endorse or promote products derived from *
* this software without specific prior written permission. *
* *
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS *
* "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED *
* TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A *
* PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER *
* OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, *
* EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, *
* PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR *
* PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF *
* LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING *
* NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS *
* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. *
* *
\*===========================================================================*/
//=============================================================================