// Copyright (C) 2023 Jérôme "Lynix" Leclercq (lynix680@gmail.com) // This file is part of the "Nazara Engine - OpenGL renderer" // For conditions of distribution and use, see copyright notice in Config.hpp #pragma once #ifndef NAZARA_OPENGLRENDERER_HPP #define NAZARA_OPENGLRENDERER_HPP #include #include #include #include #include #include namespace Nz { class NAZARA_OPENGLRENDERER_API OpenGLRenderer : public RendererImpl { public: OpenGLRenderer() = default; ~OpenGLRenderer(); std::shared_ptr InstanciateRenderDevice(std::size_t deviceIndex, const RenderDeviceFeatures& enabledFeatures) override; RenderAPI QueryAPI() const override; std::string QueryAPIString() const override; UInt32 QueryAPIVersion() const override; const std::vector& QueryRenderDevices() const override; bool Prepare(const Renderer::Config& config) override; private: std::unique_ptr SelectLoader(const Renderer::Config& config); std::shared_ptr m_device; std::unique_ptr m_loader; std::vector m_deviceInfos; }; } #include #endif // NAZARA_OPENGLRENDERER_HPP