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
 | 
						|
 |