You can not select more than 25 topics
			Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
		
		
		
		
		
			
		
			
				
					
					
						
							63 lines
						
					
					
						
							1.3 KiB
						
					
					
				
			
		
		
	
	
							63 lines
						
					
					
						
							1.3 KiB
						
					
					
				| // Copyright (C) 2023 MapLibre contributors
 | |
| // Copyright (C) 2019 Mapbox, Inc.
 | |
| 
 | |
| // SPDX-License-Identifier: BSD-2-Clause
 | |
| 
 | |
| #pragma once
 | |
| 
 | |
| #include "settings.hpp"
 | |
| 
 | |
| #include "utils/renderer_backend.hpp"
 | |
| 
 | |
| #include <mbgl/renderer/renderer.hpp>
 | |
| #include <mbgl/renderer/renderer_observer.hpp>
 | |
| #include <mbgl/util/util.hpp>
 | |
| 
 | |
| #include <QtCore/QObject>
 | |
| 
 | |
| #include <QtGlobal>
 | |
| 
 | |
| #include <memory>
 | |
| #include <mutex>
 | |
| 
 | |
| namespace mbgl {
 | |
| class Renderer;
 | |
| class UpdateParameters;
 | |
| } // namespace mbgl
 | |
| 
 | |
| namespace QMapLibre {
 | |
| 
 | |
| class RendererBackend;
 | |
| 
 | |
| class MapRenderer : public QObject {
 | |
|     Q_OBJECT
 | |
| 
 | |
| public:
 | |
|     MapRenderer(qreal pixelRatio, Settings::GLContextMode, const QString &localFontFamily);
 | |
|     ~MapRenderer() override;
 | |
| 
 | |
|     void render();
 | |
|     void updateFramebuffer(quint32 fbo, const mbgl::Size &size);
 | |
|     void setObserver(mbgl::RendererObserver *observer);
 | |
| 
 | |
|     // Thread-safe, called by the Frontend
 | |
|     void updateParameters(std::shared_ptr<mbgl::UpdateParameters> parameters);
 | |
| 
 | |
| signals:
 | |
|     void needsRendering();
 | |
| 
 | |
| private:
 | |
|     MBGL_STORE_THREAD(tid)
 | |
| 
 | |
|     Q_DISABLE_COPY(MapRenderer)
 | |
| 
 | |
|     std::mutex m_updateMutex;
 | |
|     std::shared_ptr<mbgl::UpdateParameters> m_updateParameters;
 | |
| 
 | |
|     RendererBackend m_backend;
 | |
|     std::unique_ptr<mbgl::Renderer> m_renderer{};
 | |
| 
 | |
|     bool m_forceScheduler{};
 | |
| };
 | |
| 
 | |
| } // namespace QMapLibre
 | |
| 
 |