graphics_cmdlists.h 2.0 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283
  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/gpu_debugger.h"
  8. #include "video_core/debug_utils/debug_utils.h"
  9. class QPushButton;
  10. class QTreeView;
  11. class GPUCommandListModel : public QAbstractListModel
  12. {
  13. Q_OBJECT
  14. public:
  15. enum {
  16. CommandIdRole = Qt::UserRole,
  17. };
  18. GPUCommandListModel(QObject* parent);
  19. int columnCount(const QModelIndex& parent = QModelIndex()) const override;
  20. int rowCount(const QModelIndex& parent = QModelIndex()) const override;
  21. QVariant data(const QModelIndex& index, int role = Qt::DisplayRole) const override;
  22. QVariant headerData(int section, Qt::Orientation orientation, 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. {
  30. Q_OBJECT
  31. public:
  32. GPUCommandListWidget(QWidget* parent = 0);
  33. public slots:
  34. void OnToggleTracing();
  35. void OnCommandDoubleClicked(const QModelIndex&);
  36. void SetCommandInfo(const QModelIndex&);
  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. };
  45. class TextureInfoDockWidget : public QDockWidget {
  46. Q_OBJECT
  47. public:
  48. TextureInfoDockWidget(const Pica::DebugUtils::TextureInfo& info, QWidget* parent = nullptr);
  49. signals:
  50. void UpdatePixmap(const QPixmap& pixmap);
  51. private slots:
  52. void OnAddressChanged(qint64 value);
  53. void OnFormatChanged(int value);
  54. void OnWidthChanged(int value);
  55. void OnHeightChanged(int value);
  56. void OnStrideChanged(int value);
  57. private:
  58. QPixmap ReloadPixmap() const;
  59. Pica::DebugUtils::TextureInfo info;
  60. };