Add basic EGL support

This commit is contained in:
Jérôme Leclercq
2020-09-01 18:46:35 +02:00
parent 07a02ecfcd
commit ef737a8ecd
29 changed files with 1122 additions and 94 deletions

View File

@@ -12,6 +12,10 @@
#include <cassert>
#include <sstream>
#if defined(NAZARA_PLATFORM_WINDOWS) || defined(NAZARA_PLATFORM_LINUX)
#include <Nazara/OpenGLRenderer/Wrapper/EGL/EGLLoader.hpp>
#endif
#ifdef NAZARA_PLATFORM_WINDOWS
#include <Nazara/OpenGLRenderer/Wrapper/WGL/WGLLoader.hpp>
#endif
@@ -50,19 +54,7 @@ namespace Nz
return false;
}
std::unique_ptr<GL::Loader> loader;
#ifdef NAZARA_PLATFORM_WINDOWS
try
{
loader = std::make_unique<GL::WGLLoader>(m_opengl32Lib);
}
catch (const std::exception& e)
{
NazaraWarning(std::string("Failed to load WGL: ") + e.what());
}
#endif
std::unique_ptr<GL::Loader> loader = SelectLoader();
if (!loader)
{
NazaraError("Failed to initialize OpenGL loader");
@@ -76,6 +68,33 @@ namespace Nz
return true;
}
std::unique_ptr<GL::Loader> OpenGLRenderer::SelectLoader()
{
#if defined(NAZARA_PLATFORM_WINDOWS) || defined(NAZARA_PLATFORM_LINUX)
try
{
return std::make_unique<GL::EGLLoader>(m_opengl32Lib);
}
catch (const std::exception& e)
{
NazaraWarning(std::string("Failed to load EGL: ") + e.what());
}
#endif
#ifdef NAZARA_PLATFORM_WINDOWS
try
{
return std::make_unique<GL::WGLLoader>(m_opengl32Lib);
}
catch (const std::exception& e)
{
NazaraWarning(std::string("Failed to load WGL: ") + e.what());
}
#endif
return {};
}
RenderAPI OpenGLRenderer::QueryAPI() const
{
return RenderAPI::OpenGL;