mirror of
				https://github.com/ciphervance/supercell-wx.git
				synced 2025-10-31 08:40:06 +00:00 
			
		
		
		
	Use a shared GlContext for all MapWidgets
This commit is contained in:
		
							parent
							
								
									44a864f50f
								
							
						
					
					
						commit
						21e5697073
					
				
					 3 changed files with 42 additions and 28 deletions
				
			
		|  | @ -68,11 +68,13 @@ class MapWidgetImpl : public QObject | |||
|    Q_OBJECT | ||||
| 
 | ||||
| public: | ||||
|    explicit MapWidgetImpl(MapWidget*                 widget, | ||||
|                           std::size_t                id, | ||||
|                           const QMapLibre::Settings& settings) : | ||||
|    explicit MapWidgetImpl(MapWidget*                     widget, | ||||
|                           std::size_t                    id, | ||||
|                           const QMapLibre::Settings&     settings, | ||||
|                           std::shared_ptr<gl::GlContext> glContext) : | ||||
|        id_ {id}, | ||||
|        uuid_ {boost::uuids::random_generator()()}, | ||||
|        glContext_ {std::move(glContext)}, | ||||
|        widget_ {widget}, | ||||
|        settings_(settings), | ||||
|        map_(), | ||||
|  | @ -194,8 +196,7 @@ public: | |||
|    boost::uuids::uuid uuid_; | ||||
| 
 | ||||
|    std::shared_ptr<MapContext>    context_ {std::make_shared<MapContext>()}; | ||||
|    std::shared_ptr<gl::GlContext> glContext_ { | ||||
|       std::make_shared<gl::GlContext>()}; | ||||
|    std::shared_ptr<gl::GlContext> glContext_; | ||||
| 
 | ||||
|    MapWidget*                      widget_; | ||||
|    QMapLibre::Settings             settings_; | ||||
|  | @ -280,8 +281,10 @@ public slots: | |||
|    void Update(); | ||||
| }; | ||||
| 
 | ||||
| MapWidget::MapWidget(std::size_t id, const QMapLibre::Settings& settings) : | ||||
|     p(std::make_unique<MapWidgetImpl>(this, id, settings)) | ||||
| MapWidget::MapWidget(std::size_t                    id, | ||||
|                      const QMapLibre::Settings&     settings, | ||||
|                      std::shared_ptr<gl::GlContext> glContext) : | ||||
|     p(std::make_unique<MapWidgetImpl>(this, id, settings, std::move(glContext))) | ||||
| { | ||||
|    if (settings::GeneralSettings::Instance().anti_aliasing_enabled().GetValue()) | ||||
|    { | ||||
|  |  | |||
|  | @ -22,6 +22,11 @@ class QKeyEvent; | |||
| class QMouseEvent; | ||||
| class QWheelEvent; | ||||
| 
 | ||||
| namespace scwx::qt::gl | ||||
| { | ||||
| class GlContext; | ||||
| } | ||||
| 
 | ||||
| namespace scwx::qt::map | ||||
| { | ||||
| 
 | ||||
|  | @ -32,7 +37,9 @@ class MapWidget : public QOpenGLWidget | |||
|    Q_OBJECT | ||||
| 
 | ||||
| public: | ||||
|    explicit MapWidget(std::size_t id, const QMapLibre::Settings&); | ||||
|    explicit MapWidget(std::size_t id, | ||||
|                       const QMapLibre::Settings&, | ||||
|                       std::shared_ptr<gl::GlContext> glContext); | ||||
|    ~MapWidget(); | ||||
| 
 | ||||
|    void DumpLayerList() const; | ||||
|  |  | |||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue
	
	 Dan Paulat
						Dan Paulat