graphics_cmdlists.h 1.5 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061
  1. // Copyright 2014 Citra Emulator Project
  2. // Licensed under GPLv2 or any later version
  3. // Refer to the license.txt file included.
  4. #pragma once
  5. #include <QAbstractListModel>
  6. #include <QDockWidget>
  7. #include "video_core/debug_utils/debug_utils.h"
  8. #include "video_core/gpu_debugger.h"
  9. class QPushButton;
  10. class QTreeView;
  11. class GPUCommandListModel : public QAbstractListModel {
  12. Q_OBJECT
  13. public:
  14. enum {
  15. CommandIdRole = Qt::UserRole,
  16. };
  17. explicit GPUCommandListModel(QObject* parent);
  18. int columnCount(const QModelIndex& parent = QModelIndex()) const override;
  19. int rowCount(const QModelIndex& parent = QModelIndex()) const override;
  20. QVariant data(const QModelIndex& index, int role = Qt::DisplayRole) const override;
  21. QVariant headerData(int section, Qt::Orientation orientation,
  22. int role = Qt::DisplayRole) const override;
  23. public slots:
  24. void OnPicaTraceFinished(const Pica::DebugUtils::PicaTrace& trace);
  25. private:
  26. Pica::DebugUtils::PicaTrace pica_trace;
  27. };
  28. class GPUCommandListWidget : public QDockWidget {
  29. Q_OBJECT
  30. public:
  31. explicit GPUCommandListWidget(QWidget* parent = nullptr);
  32. public slots:
  33. void OnToggleTracing();
  34. void OnCommandDoubleClicked(const QModelIndex&);
  35. void SetCommandInfo(const QModelIndex&);
  36. void CopyAllToClipboard();
  37. signals:
  38. void TracingFinished(const Pica::DebugUtils::PicaTrace&);
  39. private:
  40. std::unique_ptr<Pica::DebugUtils::PicaTrace> pica_trace;
  41. QTreeView* list_widget;
  42. QWidget* command_info_widget;
  43. QPushButton* toggle_tracing;
  44. };