mirror of
https://github.com/baldurk/renderdoc.git
synced 2026-08-25 16:06:31 +00:00
Expose shader printf messages in the UI
This commit is contained in:
@@ -294,6 +294,7 @@ void EventBrowser::OnCaptureClosed()
|
||||
void EventBrowser::OnEventChanged(uint32_t eventId)
|
||||
{
|
||||
SelectEvent(eventId);
|
||||
RefreshShaderMessages();
|
||||
repopulateBookmarks();
|
||||
highlightBookmarks();
|
||||
}
|
||||
@@ -540,6 +541,8 @@ void EventBrowser::on_events_currentItemChanged(RDTreeWidgetItem *current, RDTre
|
||||
|
||||
m_Ctx.SetEventID({this}, tag.EID, tag.lastEID);
|
||||
|
||||
RefreshShaderMessages();
|
||||
|
||||
const DrawcallDescription *draw = m_Ctx.GetDrawcall(tag.lastEID);
|
||||
|
||||
ui->stepPrev->setEnabled(draw && draw->previous);
|
||||
@@ -1127,6 +1130,33 @@ void EventBrowser::RefreshIcon(RDTreeWidgetItem *item, EventItemTag tag)
|
||||
item->setIcon(COL_NAME, QIcon());
|
||||
}
|
||||
|
||||
void EventBrowser::RefreshShaderMessages()
|
||||
{
|
||||
uint32_t eventId = m_Ctx.CurEvent();
|
||||
|
||||
RDTreeWidgetItem *item = ui->events->currentItem();
|
||||
|
||||
if(item->tag().value<EventItemTag>().EID != eventId)
|
||||
return;
|
||||
|
||||
const DrawcallDescription *draw = m_Ctx.GetDrawcall(eventId);
|
||||
const rdcarray<ShaderMessage> &msgs = m_Ctx.CurPipelineState().GetShaderMessages();
|
||||
|
||||
if(draw)
|
||||
{
|
||||
QString name(draw->name);
|
||||
|
||||
if(!msgs.empty())
|
||||
name += lit(" __rd_msgs::%1:%2").arg(draw->eventId).arg(msgs.count());
|
||||
|
||||
QVariant v = name;
|
||||
|
||||
RichResourceTextInitialise(v, &m_Ctx);
|
||||
|
||||
item->setText(0, v);
|
||||
}
|
||||
}
|
||||
|
||||
bool EventBrowser::FindEventNode(RDTreeWidgetItem *&found, RDTreeWidgetItem *parent, uint32_t eventId)
|
||||
{
|
||||
// do a reverse search to find the last match (in case of 'set' markers that
|
||||
|
||||
Reference in New Issue
Block a user