mirror of
https://github.com/baldurk/renderdoc.git
synced 2026-05-04 09:00:44 +00:00
Refactor qrenderdoc to provide stable, clean and deliberate API
* Note, this API is still in-flux and beta, so there may still be some more changes before it's 'stable', and even then it will still be subject to some amount of change. * This API is then exposed to python via SWIG bindings and hides internals that don't need to be visible, and means the actual API is easier to work with. * We also use this API to reduce inter-dependencies between different windows that need to interact with each other at a high level. * The naming is python/standard RenderDoc TitleCase method names, not Qt style camelCase methods. # Conflicts: # qrenderdoc/Windows/PipelineState/D3D11PipelineStateViewer.cpp # qrenderdoc/Windows/TextureViewer.cpp
This commit is contained in:
@@ -32,7 +32,7 @@ static const int EIDRole = Qt::UserRole + 1;
|
||||
class DebugMessageItemModel : public QAbstractItemModel
|
||||
{
|
||||
public:
|
||||
DebugMessageItemModel(CaptureContext &ctx, QObject *parent)
|
||||
DebugMessageItemModel(ICaptureContext &ctx, QObject *parent)
|
||||
: QAbstractItemModel(parent), m_Ctx(ctx)
|
||||
{
|
||||
}
|
||||
@@ -54,7 +54,7 @@ public:
|
||||
QModelIndex parent(const QModelIndex &index) const override { return QModelIndex(); }
|
||||
int rowCount(const QModelIndex &parent = QModelIndex()) const override
|
||||
{
|
||||
return m_Ctx.DebugMessages.count();
|
||||
return m_Ctx.DebugMessages().count();
|
||||
}
|
||||
int columnCount(const QModelIndex &parent = QModelIndex()) const override { return 6; }
|
||||
Qt::ItemFlags flags(const QModelIndex &index) const override
|
||||
@@ -93,7 +93,7 @@ public:
|
||||
|
||||
if(col >= 0 && col < columnCount() && row < rowCount())
|
||||
{
|
||||
const DebugMessage &msg = m_Ctx.DebugMessages[row];
|
||||
const DebugMessage &msg = m_Ctx.DebugMessages()[row];
|
||||
|
||||
switch(col)
|
||||
{
|
||||
@@ -109,20 +109,20 @@ public:
|
||||
}
|
||||
|
||||
if(index.isValid() && role == EIDRole && index.row() >= 0 &&
|
||||
index.row() < m_Ctx.DebugMessages.count())
|
||||
return m_Ctx.DebugMessages[index.row()].eventID;
|
||||
index.row() < m_Ctx.DebugMessages().count())
|
||||
return m_Ctx.DebugMessages()[index.row()].eventID;
|
||||
|
||||
return QVariant();
|
||||
}
|
||||
|
||||
private:
|
||||
CaptureContext &m_Ctx;
|
||||
ICaptureContext &m_Ctx;
|
||||
};
|
||||
|
||||
class DebugMessageFilterModel : public QSortFilterProxyModel
|
||||
{
|
||||
public:
|
||||
DebugMessageFilterModel(CaptureContext &ctx, QObject *parent)
|
||||
DebugMessageFilterModel(ICaptureContext &ctx, QObject *parent)
|
||||
: QSortFilterProxyModel(parent), m_Ctx(ctx)
|
||||
{
|
||||
}
|
||||
@@ -164,7 +164,7 @@ protected:
|
||||
|
||||
bool isVisibleRow(int sourceRow) const
|
||||
{
|
||||
const DebugMessage &msg = m_Ctx.DebugMessages[sourceRow];
|
||||
const DebugMessage &msg = m_Ctx.DebugMessages()[sourceRow];
|
||||
|
||||
if(m_HiddenSources.contains(msg.source))
|
||||
return false;
|
||||
@@ -183,8 +183,8 @@ protected:
|
||||
|
||||
bool lessThan(const QModelIndex &left, const QModelIndex &right) const override
|
||||
{
|
||||
const DebugMessage &leftMsg = m_Ctx.DebugMessages[left.row()];
|
||||
const DebugMessage &rightMsg = m_Ctx.DebugMessages[right.row()];
|
||||
const DebugMessage &leftMsg = m_Ctx.DebugMessages()[left.row()];
|
||||
const DebugMessage &rightMsg = m_Ctx.DebugMessages()[right.row()];
|
||||
|
||||
if(leftMsg.eventID < rightMsg.eventID)
|
||||
return true;
|
||||
@@ -205,10 +205,10 @@ protected:
|
||||
}
|
||||
|
||||
private:
|
||||
CaptureContext &m_Ctx;
|
||||
ICaptureContext &m_Ctx;
|
||||
};
|
||||
|
||||
DebugMessageView::DebugMessageView(CaptureContext &ctx, QWidget *parent)
|
||||
DebugMessageView::DebugMessageView(ICaptureContext &ctx, QWidget *parent)
|
||||
: QFrame(parent), ui(new Ui::DebugMessageView), m_Ctx(ctx)
|
||||
{
|
||||
ui->setupUi(this);
|
||||
@@ -254,7 +254,7 @@ DebugMessageView::DebugMessageView(CaptureContext &ctx, QWidget *parent)
|
||||
|
||||
DebugMessageView::~DebugMessageView()
|
||||
{
|
||||
m_Ctx.windowClosed(this);
|
||||
m_Ctx.BuiltinWindowClosed(this);
|
||||
|
||||
m_Ctx.RemoveLogViewer(this);
|
||||
delete ui;
|
||||
@@ -278,8 +278,8 @@ void DebugMessageView::RefreshMessageList()
|
||||
|
||||
ui->messages->resizeColumnsToContents();
|
||||
|
||||
if(m_Ctx.UnreadMessageCount > 0)
|
||||
setWindowTitle(tr("(%1) Errors and Warnings").arg(m_Ctx.UnreadMessageCount));
|
||||
if(m_Ctx.UnreadMessageCount() > 0)
|
||||
setWindowTitle(tr("(%1) Errors and Warnings").arg(m_Ctx.UnreadMessageCount()));
|
||||
else
|
||||
setWindowTitle(tr("Errors and Warnings"));
|
||||
}
|
||||
@@ -348,7 +348,7 @@ void DebugMessageView::messages_contextMenu(const QPoint &pos)
|
||||
{
|
||||
index = m_FilterModel->mapToSource(index);
|
||||
|
||||
const DebugMessage &msg = m_Ctx.DebugMessages[index.row()];
|
||||
const DebugMessage &msg = m_Ctx.DebugMessages()[index.row()];
|
||||
|
||||
QString hide = tr("Hide");
|
||||
QString show = tr("Show");
|
||||
@@ -375,9 +375,9 @@ void DebugMessageView::messages_contextMenu(const QPoint &pos)
|
||||
|
||||
void DebugMessageView::paintEvent(QPaintEvent *e)
|
||||
{
|
||||
if(m_Ctx.UnreadMessageCount > 0)
|
||||
if(m_Ctx.UnreadMessageCount() > 0)
|
||||
{
|
||||
m_Ctx.UnreadMessageCount = 0;
|
||||
m_Ctx.MarkMessagesRead();
|
||||
RefreshMessageList();
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user