Drop GLEW support

pull/721/head
Hleb Valoshka 2020-05-05 11:42:08 +03:00
parent b86c4aba4e
commit ae27c1a1b0
7 changed files with 10 additions and 64 deletions

View File

@ -32,7 +32,6 @@ option(NATIVE_OSX_APP "Support native OSX paths read data from (Default: off)" O
option(FAST_MATH "Build with unsafe fast-math compiller option (Default: off)" OFF) option(FAST_MATH "Build with unsafe fast-math compiller option (Default: off)" OFF)
option(ENABLE_TTF "Use TrueType fonts instead of TXF (Default: off)" OFF) option(ENABLE_TTF "Use TrueType fonts instead of TXF (Default: off)" OFF)
option(ENABLE_TESTS "Enable unit tests? (Default: off)" OFF) option(ENABLE_TESTS "Enable unit tests? (Default: off)" OFF)
option(ENABLE_GLEW "Use GLEW instead of libepoxy? (Default: on)" ON)
option(ENABLE_DATA "Install data from content submodule? (Default: on)" ON) option(ENABLE_DATA "Install data from content submodule? (Default: on)" ON)
if(NOT CMAKE_BUILD_TYPE) if(NOT CMAKE_BUILD_TYPE)
@ -176,16 +175,9 @@ find_package(OpenGL REQUIRED)
include_directories(${OPENGL_INCLUDE_DIRS}) include_directories(${OPENGL_INCLUDE_DIRS})
link_libraries(${OPENGL_LIBRARIES}) link_libraries(${OPENGL_LIBRARIES})
if(ENABLE_GLEW) find_package(Libepoxy REQUIRED)
find_package(GLEW REQUIRED) link_libraries(libepoxy::libepoxy)
link_libraries(GLEW::GLEW) include_directories(${LIBEPOXY_INCLUDE_DIR})
include_directories(${GLEW_INCLUDE_DIRS})
add_definitions(-DUSE_GLEW)
else()
find_package(Libepoxy REQUIRED)
link_libraries(libepoxy::libepoxy)
include_directories(${LIBEPOXY_INCLUDE_DIR})
endif()
find_package(Eigen3 3.3 NO_MODULE) # -DEigen3_DIR=... find_package(Eigen3 3.3 NO_MODULE) # -DEigen3_DIR=...
if(TARGET Eigen3::Eigen) if(TARGET Eigen3::Eigen)

View File

@ -96,11 +96,11 @@ First you need a C++ compiler able to compile C++11 code (GCC 4.8.1 or later,
Clang 3.3 or later), CMake, GNU Make or Ninja. Clang 3.3 or later), CMake, GNU Make or Ninja.
Then you need to have the following devel components installed before Celestia Then you need to have the following devel components installed before Celestia
will build: OpenGL, glu, glew, theora, libjpeg, and libpng. Optional packages will build: OpenGL, glu, libepoxy, theora, libjpeg, and libpng. Optional
are fmtlib, Eigen3, Qt5, Gtk2 and glut. packages are fmtlib, Eigen3, Qt5, Gtk2 and glut.
For example on modern Debian-derived system you need to install the following For example on modern Debian-derived system you need to install the following
packages: libglew-dev, libjpeg-dev, libpng-dev, libtheora-dev, libgl1-mesa-dev, packages: libepoxy-dev, libjpeg-dev, libpng-dev, libtheora-dev, libgl1-mesa-dev,
libglu1-mesa-dev. Then you may want to install libeigen3-dev, libfmt-dev; libglu1-mesa-dev. Then you may want to install libeigen3-dev, libfmt-dev;
qtbase5-dev, qtbase5-dev-tools and libqt5opengl5-dev if you want to build with qtbase5-dev, qtbase5-dev-tools and libqt5opengl5-dev if you want to build with
Qt5 interface; libgtk2.0-dev and libgtkglext1-dev to build with legacy Gtk2 Qt5 interface; libgtk2.0-dev and libgtkglext1-dev to build with legacy Gtk2
@ -159,7 +159,7 @@ and vcpkg (*).
Install required packages: Install required packages:
``` ```
vcpkg install libpng libjpeg-turbo gettext lua fmt glew eigen3 vcpkg install libpng libjpeg-turbo gettext lua fmt libepoxy eigen3
``` ```
Install optional packages: Install optional packages:
@ -220,7 +220,7 @@ pacman -S base-devel
pacman -S git pacman -S git
pacman -S mingw-w64-x86_64-cmake pacman -S mingw-w64-x86_64-cmake
pacman -S mingw-w64-x86_64-qt5 pacman -S mingw-w64-x86_64-qt5
pacman -S mingw-w64-x86_64-freeglut mingw-w64-x86_64-glew mingw-w64-x86_64-lua pacman -S mingw-w64-x86_64-freeglut mingw-w64-x86_64-libepoxy mingw-w64-x86_64-lua
pacman -S mingw-w64-x86_64-libtheora mingw-w64-x86_64-mesa pacman -S mingw-w64-x86_64-libtheora mingw-w64-x86_64-mesa
``` ```
@ -274,7 +274,7 @@ Install Homebrew
Install required packages: Install required packages:
``` ```
brew install cmake glew fmt gettext libpng lua qt5 jpeg eigen brew install cmake fmt gettext libepoxy libpng lua qt5 jpeg eigen
``` ```
Install optional packages: Install optional packages:

2
debian/control vendored
View File

@ -7,7 +7,7 @@ Build-Depends: debhelper (>= 10~),
libeigen3-dev (>= 3.3~), libeigen3-dev (>= 3.3~),
libfmt-dev (>= 4), libfmt-dev (>= 4),
libfreetype6-dev, libfreetype6-dev,
libglew-dev, libepoxy-dev,
libglu1-mesa-dev, libglu1-mesa-dev,
libgtk2.0-dev, libgtk2.0-dev,
libgtkglext1-dev, libgtkglext1-dev,

View File

@ -15,21 +15,12 @@ namespace
{ {
inline bool has_extension(const char* name) noexcept inline bool has_extension(const char* name) noexcept
{ {
#ifdef USE_GLEW
return glewIsSupported(name);
#else
return epoxy_has_gl_extension(name); return epoxy_has_gl_extension(name);
#endif
} }
} }
bool init() noexcept bool init() noexcept
{ {
#ifdef USE_GLEW
GLenum glewErr = glewInit();
if (glewErr != GLEW_OK)
return false;
#endif
ARB_shader_texture_lod = has_extension("GL_ARB_shader_texture_lod"); ARB_shader_texture_lod = has_extension("GL_ARB_shader_texture_lod");
ARB_vertex_array_object = has_extension("GL_ARB_vertex_array_object"); ARB_vertex_array_object = has_extension("GL_ARB_vertex_array_object");
EXT_framebuffer_object = has_extension("GL_EXT_framebuffer_object"); EXT_framebuffer_object = has_extension("GL_EXT_framebuffer_object");
@ -41,17 +32,7 @@ bool init() noexcept
bool checkVersion(int v) noexcept bool checkVersion(int v) noexcept
{ {
#ifdef USE_GLEW
switch (v)
{
case GL_2_1:
return GLEW_VERSION_2_1 != GL_FALSE;
default:
return false;
}
#else
return epoxy_gl_version() >= v; return epoxy_gl_version() >= v;
#endif
} }
} // gl } // gl
} // celestia } // celestia

View File

@ -1,8 +1,5 @@
#pragma once #pragma once
#ifdef USE_GLEW
#include <GL/glew.h>
#else
#ifdef _WIN32 #ifdef _WIN32
#include <windows.h> #include <windows.h>
#endif #endif
@ -12,7 +9,6 @@
#else #else
#include <GL/glu.h> #include <GL/glu.h>
#endif #endif
#endif
namespace celestia namespace celestia
{ {

View File

@ -13,21 +13,12 @@ namespace
{ {
inline bool has_extension(const char* name) noexcept inline bool has_extension(const char* name) noexcept
{ {
#ifdef USE_GLEW
return glewIsSupported(name);
#else
return epoxy_has_gl_extension(name); return epoxy_has_gl_extension(name);
#endif
} }
} }
bool init() noexcept bool init() noexcept
{ {
#ifdef USE_GLEW
GLenum glewErr = glewInit();
if (glewErr != GLEW_OK)
return false;
#endif
ARB_shader_objects = has_extension("GL_ARB_shader_objects"); ARB_shader_objects = has_extension("GL_ARB_shader_objects");
ARB_shading_language_100 = has_extension("GL_ARB_shading_language_100"); ARB_shading_language_100 = has_extension("GL_ARB_shading_language_100");
EXT_framebuffer_object = has_extension("GL_EXT_framebuffer_object"); EXT_framebuffer_object = has_extension("GL_EXT_framebuffer_object");
@ -37,17 +28,7 @@ bool init() noexcept
bool checkVersion(int v) noexcept bool checkVersion(int v) noexcept
{ {
#ifdef USE_GLEW
switch (v)
{
case GL_2_1:
return GLEW_VERSION_2_1 != GL_FALSE;
default:
return false;
}
#else
return epoxy_gl_version() >= v; return epoxy_gl_version() >= v;
#endif
} }
} // gl } // gl
} // celestia } // celestia

View File

@ -1,8 +1,5 @@
#pragma once #pragma once
#ifdef USE_GLEW
#include <GL/glew.h>
#else
#ifdef _WIN32 #ifdef _WIN32
#include <windows.h> #include <windows.h>
#endif #endif
@ -12,7 +9,6 @@
#else #else
#include <GL/glu.h> #include <GL/glu.h>
#endif #endif
#endif
namespace celestia namespace celestia
{ {