mirror of
				https://github.com/PabloMK7/citra.git
				synced 2025-10-31 05:40:04 +00:00 
			
		
		
		
	Pica/DebugUtils: Factor out BreakPointObserverDock into its own file.
This commit is contained in:
		
							parent
							
								
									2fb1e4c9a2
								
							
						
					
					
						commit
						3f649dc9b8
					
				
					 5 changed files with 68 additions and 50 deletions
				
			
		|  | @ -8,6 +8,7 @@ set(SRCS | ||||||
|             debugger/callstack.cpp |             debugger/callstack.cpp | ||||||
|             debugger/disassembler.cpp |             debugger/disassembler.cpp | ||||||
|             debugger/graphics.cpp |             debugger/graphics.cpp | ||||||
|  |             debugger/graphics_breakpoint_observer.cpp | ||||||
|             debugger/graphics_breakpoints.cpp |             debugger/graphics_breakpoints.cpp | ||||||
|             debugger/graphics_cmdlists.cpp |             debugger/graphics_cmdlists.cpp | ||||||
|             debugger/graphics_framebuffer.cpp |             debugger/graphics_framebuffer.cpp | ||||||
|  | @ -27,6 +28,7 @@ set(HEADERS | ||||||
|             debugger/callstack.h |             debugger/callstack.h | ||||||
|             debugger/disassembler.h |             debugger/disassembler.h | ||||||
|             debugger/graphics.h |             debugger/graphics.h | ||||||
|  |             debugger/graphics_breakpoint_observer.h | ||||||
|             debugger/graphics_breakpoints.h |             debugger/graphics_breakpoints.h | ||||||
|             debugger/graphics_breakpoints_p.h |             debugger/graphics_breakpoints_p.h | ||||||
|             debugger/graphics_cmdlists.h |             debugger/graphics_cmdlists.h | ||||||
|  |  | ||||||
							
								
								
									
										32
									
								
								src/citra_qt/debugger/graphics_breakpoint_observer.cpp
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										32
									
								
								src/citra_qt/debugger/graphics_breakpoint_observer.cpp
									
										
									
									
									
										Normal file
									
								
							|  | @ -0,0 +1,32 @@ | ||||||
|  | // Copyright 2014 Citra Emulator Project
 | ||||||
|  | // Licensed under GPLv2 or any later version
 | ||||||
|  | // Refer to the license.txt file included.
 | ||||||
|  | 
 | ||||||
|  | #include <QMetaType> | ||||||
|  | 
 | ||||||
|  | #include "graphics_breakpoint_observer.h" | ||||||
|  | 
 | ||||||
|  | BreakPointObserverDock::BreakPointObserverDock(std::shared_ptr<Pica::DebugContext> debug_context, | ||||||
|  |                                                const QString& title, QWidget* parent) | ||||||
|  |     : QDockWidget(title, parent), BreakPointObserver(debug_context) | ||||||
|  | { | ||||||
|  |     qRegisterMetaType<Pica::DebugContext::Event>("Pica::DebugContext::Event"); | ||||||
|  | 
 | ||||||
|  |     connect(this, SIGNAL(Resumed()), this, SLOT(OnResumed())); | ||||||
|  | 
 | ||||||
|  |     // NOTE: This signal is emitted from a non-GUI thread, but connect() takes
 | ||||||
|  |     //       care of delaying its handling to the GUI thread.
 | ||||||
|  |     connect(this, SIGNAL(BreakPointHit(Pica::DebugContext::Event,void*)), | ||||||
|  |             this, SLOT(OnBreakPointHit(Pica::DebugContext::Event,void*)), | ||||||
|  |             Qt::BlockingQueuedConnection); | ||||||
|  | } | ||||||
|  | 
 | ||||||
|  | void BreakPointObserverDock::OnPicaBreakPointHit(Pica::DebugContext::Event event, void* data) | ||||||
|  | { | ||||||
|  |     emit BreakPointHit(event, data); | ||||||
|  | } | ||||||
|  | 
 | ||||||
|  | void BreakPointObserverDock::OnPicaResume() | ||||||
|  | { | ||||||
|  |     emit Resumed(); | ||||||
|  | } | ||||||
							
								
								
									
										33
									
								
								src/citra_qt/debugger/graphics_breakpoint_observer.h
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										33
									
								
								src/citra_qt/debugger/graphics_breakpoint_observer.h
									
										
									
									
									
										Normal file
									
								
							|  | @ -0,0 +1,33 @@ | ||||||
|  | // Copyright 2014 Citra Emulator Project
 | ||||||
|  | // Licensed under GPLv2 or any later version
 | ||||||
|  | // Refer to the license.txt file included.
 | ||||||
|  | 
 | ||||||
|  | #pragma once | ||||||
|  | 
 | ||||||
|  | #include <QDockWidget> | ||||||
|  | 
 | ||||||
|  | #include "video_core/debug_utils/debug_utils.h" | ||||||
|  | 
 | ||||||
|  | /**
 | ||||||
|  |  * Utility class which forwards calls to OnPicaBreakPointHit and OnPicaResume to public slots. | ||||||
|  |  * This is because the Pica breakpoint callbacks are called from a non-GUI thread, while | ||||||
|  |  * the widget usually wants to perform reactions in the GUI thread. | ||||||
|  |  */ | ||||||
|  | class BreakPointObserverDock : public QDockWidget, private Pica::DebugContext::BreakPointObserver { | ||||||
|  |     Q_OBJECT | ||||||
|  | 
 | ||||||
|  | public: | ||||||
|  |     BreakPointObserverDock(std::shared_ptr<Pica::DebugContext> debug_context, const QString& title, | ||||||
|  |                            QWidget* parent = nullptr); | ||||||
|  | 
 | ||||||
|  |     void OnPicaBreakPointHit(Pica::DebugContext::Event event, void* data) override; | ||||||
|  |     void OnPicaResume() override; | ||||||
|  | 
 | ||||||
|  | private slots: | ||||||
|  |     virtual void OnBreakPointHit(Pica::DebugContext::Event event, void* data) = 0; | ||||||
|  |     virtual void OnResumed() = 0; | ||||||
|  | 
 | ||||||
|  | signals: | ||||||
|  |     void Resumed(); | ||||||
|  |     void BreakPointHit(Pica::DebugContext::Event event, void* data); | ||||||
|  | }; | ||||||
|  | @ -6,7 +6,6 @@ | ||||||
| #include <QComboBox> | #include <QComboBox> | ||||||
| #include <QDebug> | #include <QDebug> | ||||||
| #include <QLabel> | #include <QLabel> | ||||||
| #include <QMetaType> |  | ||||||
| #include <QPushButton> | #include <QPushButton> | ||||||
| #include <QSpinBox> | #include <QSpinBox> | ||||||
| 
 | 
 | ||||||
|  | @ -17,32 +16,6 @@ | ||||||
| 
 | 
 | ||||||
| #include "util/spinbox.h" | #include "util/spinbox.h" | ||||||
| 
 | 
 | ||||||
| BreakPointObserverDock::BreakPointObserverDock(std::shared_ptr<Pica::DebugContext> debug_context, |  | ||||||
|                                                const QString& title, QWidget* parent) |  | ||||||
|     : QDockWidget(title, parent), BreakPointObserver(debug_context) |  | ||||||
| { |  | ||||||
|     qRegisterMetaType<Pica::DebugContext::Event>("Pica::DebugContext::Event"); |  | ||||||
| 
 |  | ||||||
|     connect(this, SIGNAL(Resumed()), this, SLOT(OnResumed())); |  | ||||||
| 
 |  | ||||||
|     // NOTE: This signal is emitted from a non-GUI thread, but connect() takes
 |  | ||||||
|     //       care of delaying its handling to the GUI thread.
 |  | ||||||
|     connect(this, SIGNAL(BreakPointHit(Pica::DebugContext::Event,void*)), |  | ||||||
|             this, SLOT(OnBreakPointHit(Pica::DebugContext::Event,void*)), |  | ||||||
|             Qt::BlockingQueuedConnection); |  | ||||||
| } |  | ||||||
| 
 |  | ||||||
| void BreakPointObserverDock::OnPicaBreakPointHit(Pica::DebugContext::Event event, void* data) |  | ||||||
| { |  | ||||||
|     emit BreakPointHit(event, data); |  | ||||||
| } |  | ||||||
| 
 |  | ||||||
| void BreakPointObserverDock::OnPicaResume() |  | ||||||
| { |  | ||||||
|     emit Resumed(); |  | ||||||
| } |  | ||||||
| 
 |  | ||||||
| 
 |  | ||||||
| GraphicsFramebufferWidget::GraphicsFramebufferWidget(std::shared_ptr<Pica::DebugContext> debug_context, | GraphicsFramebufferWidget::GraphicsFramebufferWidget(std::shared_ptr<Pica::DebugContext> debug_context, | ||||||
|                                                      QWidget* parent) |                                                      QWidget* parent) | ||||||
|     : BreakPointObserverDock(debug_context, tr("Pica Framebuffer"), parent), |     : BreakPointObserverDock(debug_context, tr("Pica Framebuffer"), parent), | ||||||
|  |  | ||||||
|  | @ -6,7 +6,7 @@ | ||||||
| 
 | 
 | ||||||
| #include <QDockWidget> | #include <QDockWidget> | ||||||
| 
 | 
 | ||||||
| #include "video_core/debug_utils/debug_utils.h" | #include "graphics_breakpoint_observer.h" | ||||||
| 
 | 
 | ||||||
| class QComboBox; | class QComboBox; | ||||||
| class QLabel; | class QLabel; | ||||||
|  | @ -14,28 +14,6 @@ class QSpinBox; | ||||||
| 
 | 
 | ||||||
| class CSpinBox; | class CSpinBox; | ||||||
| 
 | 
 | ||||||
| // Utility class which forwards calls to OnPicaBreakPointHit and OnPicaResume to public slots.
 |  | ||||||
| // This is because the Pica breakpoint callbacks are called from a non-GUI thread, while
 |  | ||||||
| // the widget usually wants to perform reactions in the GUI thread.
 |  | ||||||
| class BreakPointObserverDock : public QDockWidget, Pica::DebugContext::BreakPointObserver { |  | ||||||
|     Q_OBJECT |  | ||||||
| 
 |  | ||||||
| public: |  | ||||||
|     BreakPointObserverDock(std::shared_ptr<Pica::DebugContext> debug_context, const QString& title, |  | ||||||
|                            QWidget* parent = nullptr); |  | ||||||
| 
 |  | ||||||
|     void OnPicaBreakPointHit(Pica::DebugContext::Event event, void* data) override; |  | ||||||
|     void OnPicaResume() override; |  | ||||||
| 
 |  | ||||||
| private slots: |  | ||||||
|     virtual void OnBreakPointHit(Pica::DebugContext::Event event, void* data) = 0; |  | ||||||
|     virtual void OnResumed() = 0; |  | ||||||
| 
 |  | ||||||
| signals: |  | ||||||
|     void Resumed(); |  | ||||||
|     void BreakPointHit(Pica::DebugContext::Event event, void* data); |  | ||||||
| }; |  | ||||||
| 
 |  | ||||||
| class GraphicsFramebufferWidget : public BreakPointObserverDock { | class GraphicsFramebufferWidget : public BreakPointObserverDock { | ||||||
|     Q_OBJECT |     Q_OBJECT | ||||||
| 
 | 
 | ||||||
|  |  | ||||||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue