Pica/DebugUtils: Factor out BreakPointObserverDock into its own file.
This commit is contained in:
		
							parent
							
								
									2fb1e4c9a2
								
							
						
					
					
						commit
						3f649dc9b8
					
				@ -8,6 +8,7 @@ set(SRCS
 | 
			
		||||
            debugger/callstack.cpp
 | 
			
		||||
            debugger/disassembler.cpp
 | 
			
		||||
            debugger/graphics.cpp
 | 
			
		||||
            debugger/graphics_breakpoint_observer.cpp
 | 
			
		||||
            debugger/graphics_breakpoints.cpp
 | 
			
		||||
            debugger/graphics_cmdlists.cpp
 | 
			
		||||
            debugger/graphics_framebuffer.cpp
 | 
			
		||||
@ -27,6 +28,7 @@ set(HEADERS
 | 
			
		||||
            debugger/callstack.h
 | 
			
		||||
            debugger/disassembler.h
 | 
			
		||||
            debugger/graphics.h
 | 
			
		||||
            debugger/graphics_breakpoint_observer.h
 | 
			
		||||
            debugger/graphics_breakpoints.h
 | 
			
		||||
            debugger/graphics_breakpoints_p.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 <QDebug>
 | 
			
		||||
#include <QLabel>
 | 
			
		||||
#include <QMetaType>
 | 
			
		||||
#include <QPushButton>
 | 
			
		||||
#include <QSpinBox>
 | 
			
		||||
 | 
			
		||||
@ -17,32 +16,6 @@
 | 
			
		||||
 | 
			
		||||
#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,
 | 
			
		||||
                                                     QWidget* parent)
 | 
			
		||||
    : BreakPointObserverDock(debug_context, tr("Pica Framebuffer"), parent),
 | 
			
		||||
 | 
			
		||||
@ -6,7 +6,7 @@
 | 
			
		||||
 | 
			
		||||
#include <QDockWidget>
 | 
			
		||||
 | 
			
		||||
#include "video_core/debug_utils/debug_utils.h"
 | 
			
		||||
#include "graphics_breakpoint_observer.h"
 | 
			
		||||
 | 
			
		||||
class QComboBox;
 | 
			
		||||
class QLabel;
 | 
			
		||||
@ -14,28 +14,6 @@ class QSpinBox;
 | 
			
		||||
 | 
			
		||||
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 {
 | 
			
		||||
    Q_OBJECT
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
		Loading…
	
		Reference in New Issue
	
	Block a user