Hack around slow row-colour setting in pipeline state

This commit is contained in:
baldurk
2017-01-26 23:31:57 +00:00
parent 738dbafdfe
commit bac0c011cd
4 changed files with 192 additions and 0 deletions
@@ -1983,6 +1983,8 @@ void D3D11PipelineStateViewer::highlightIABind(int slot)
QColor col = QColor::fromHslF(float(idx) / 32.0f, 1.0f, 0.95f);
ui->iaLayouts->model()->blockSignals(true);
ui->iaBuffers->model()->blockSignals(true);
if(slot < m_VBNodes.count())
{
QTreeWidgetItem *item = m_VBNodes[(int)slot];
@@ -2009,6 +2011,20 @@ void D3D11PipelineStateViewer::highlightIABind(int slot)
item->setForeground(c, QBrush(QColor(0, 0, 0)));
}
}
ui->iaLayouts->model()->blockSignals(false);
ui->iaBuffers->model()->blockSignals(false);
if(ui->iaLayouts->topLevelItemCount() > 0)
{
ui->iaLayouts->topLevelItem(0)->setDisabled(true);
ui->iaLayouts->topLevelItem(0)->setDisabled(false);
}
if(ui->iaBuffers->topLevelItemCount() > 0)
{
ui->iaBuffers->topLevelItem(0)->setDisabled(true);
ui->iaBuffers->topLevelItem(0)->setDisabled(false);
}
}
void D3D11PipelineStateViewer::on_iaLayouts_mouseMove(QMouseEvent *e)
@@ -2042,6 +2058,8 @@ void D3D11PipelineStateViewer::on_iaBuffers_mouseMove(QMouseEvent *e)
vertex_leave(NULL);
ui->iaLayouts->model()->blockSignals(true);
ui->iaBuffers->model()->blockSignals(true);
if(item)
{
int idx = m_VBNodes.indexOf(item);
@@ -2058,10 +2076,26 @@ void D3D11PipelineStateViewer::on_iaBuffers_mouseMove(QMouseEvent *e)
}
}
}
ui->iaLayouts->model()->blockSignals(false);
ui->iaBuffers->model()->blockSignals(false);
if(ui->iaLayouts->topLevelItemCount() > 0)
{
ui->iaLayouts->topLevelItem(0)->setDisabled(true);
ui->iaLayouts->topLevelItem(0)->setDisabled(false);
}
if(ui->iaBuffers->topLevelItemCount() > 0)
{
ui->iaBuffers->topLevelItem(0)->setDisabled(true);
ui->iaBuffers->topLevelItem(0)->setDisabled(false);
}
}
void D3D11PipelineStateViewer::vertex_leave(QEvent *e)
{
ui->iaLayouts->model()->blockSignals(true);
ui->iaBuffers->model()->blockSignals(true);
for(int i = 0; i < ui->iaLayouts->topLevelItemCount(); i++)
{
QTreeWidgetItem *item = ui->iaLayouts->topLevelItem(i);
@@ -2081,6 +2115,20 @@ void D3D11PipelineStateViewer::vertex_leave(QEvent *e)
item->setForeground(c, QBrush());
}
}
ui->iaLayouts->model()->blockSignals(false);
ui->iaBuffers->model()->blockSignals(false);
if(ui->iaLayouts->topLevelItemCount() > 0)
{
ui->iaLayouts->topLevelItem(0)->setDisabled(true);
ui->iaLayouts->topLevelItem(0)->setDisabled(false);
}
if(ui->iaBuffers->topLevelItemCount() > 0)
{
ui->iaBuffers->topLevelItem(0)->setDisabled(true);
ui->iaBuffers->topLevelItem(0)->setDisabled(false);
}
}
void D3D11PipelineStateViewer::shaderView_clicked()
@@ -1984,6 +1984,8 @@ void D3D12PipelineStateViewer::highlightIABind(int slot)
QColor col = QColor::fromHslF(float(idx) / 32.0f, 1.0f, 0.95f);
ui->iaLayouts->model()->blockSignals(true);
ui->iaBuffers->model()->blockSignals(true);
if(slot < m_VBNodes.count())
{
QTreeWidgetItem *item = m_VBNodes[(int)slot];
@@ -2010,6 +2012,20 @@ void D3D12PipelineStateViewer::highlightIABind(int slot)
item->setForeground(c, QBrush(QColor(0, 0, 0)));
}
}
ui->iaLayouts->model()->blockSignals(false);
ui->iaBuffers->model()->blockSignals(false);
if(ui->iaLayouts->topLevelItemCount() > 0)
{
ui->iaLayouts->topLevelItem(0)->setDisabled(true);
ui->iaLayouts->topLevelItem(0)->setDisabled(false);
}
if(ui->iaBuffers->topLevelItemCount() > 0)
{
ui->iaBuffers->topLevelItem(0)->setDisabled(true);
ui->iaBuffers->topLevelItem(0)->setDisabled(false);
}
}
void D3D12PipelineStateViewer::on_iaLayouts_mouseMove(QMouseEvent *e)
@@ -2043,6 +2059,8 @@ void D3D12PipelineStateViewer::on_iaBuffers_mouseMove(QMouseEvent *e)
vertex_leave(NULL);
ui->iaLayouts->model()->blockSignals(true);
ui->iaBuffers->model()->blockSignals(true);
if(item)
{
int idx = m_VBNodes.indexOf(item);
@@ -2059,10 +2077,26 @@ void D3D12PipelineStateViewer::on_iaBuffers_mouseMove(QMouseEvent *e)
}
}
}
ui->iaLayouts->model()->blockSignals(false);
ui->iaBuffers->model()->blockSignals(false);
if(ui->iaLayouts->topLevelItemCount() > 0)
{
ui->iaLayouts->topLevelItem(0)->setDisabled(true);
ui->iaLayouts->topLevelItem(0)->setDisabled(false);
}
if(ui->iaBuffers->topLevelItemCount() > 0)
{
ui->iaBuffers->topLevelItem(0)->setDisabled(true);
ui->iaBuffers->topLevelItem(0)->setDisabled(false);
}
}
void D3D12PipelineStateViewer::vertex_leave(QEvent *e)
{
ui->iaLayouts->model()->blockSignals(true);
ui->iaBuffers->model()->blockSignals(true);
for(int i = 0; i < ui->iaLayouts->topLevelItemCount(); i++)
{
QTreeWidgetItem *item = ui->iaLayouts->topLevelItem(i);
@@ -2082,6 +2116,20 @@ void D3D12PipelineStateViewer::vertex_leave(QEvent *e)
item->setForeground(c, QBrush());
}
}
ui->iaLayouts->model()->blockSignals(false);
ui->iaBuffers->model()->blockSignals(false);
if(ui->iaLayouts->topLevelItemCount() > 0)
{
ui->iaLayouts->topLevelItem(0)->setDisabled(true);
ui->iaLayouts->topLevelItem(0)->setDisabled(false);
}
if(ui->iaBuffers->topLevelItemCount() > 0)
{
ui->iaBuffers->topLevelItem(0)->setDisabled(true);
ui->iaBuffers->topLevelItem(0)->setDisabled(false);
}
}
void D3D12PipelineStateViewer::shaderView_clicked()
@@ -2100,6 +2100,8 @@ void GLPipelineStateViewer::highlightIABind(int slot)
QColor col = QColor::fromHslF(float(idx) / 32.0f, 1.0f, 0.95f);
ui->viAttrs->model()->blockSignals(true);
ui->viBuffers->model()->blockSignals(true);
if(slot < m_VBNodes.count())
{
QTreeWidgetItem *item = m_VBNodes[(int)slot];
@@ -2120,6 +2122,20 @@ void GLPipelineStateViewer::highlightIABind(int slot)
for(int c = 0; c < item->columnCount(); c++)
item->setBackground(c, itemBrush);
}
ui->viAttrs->model()->blockSignals(false);
ui->viBuffers->model()->blockSignals(false);
if(ui->viAttrs->topLevelItemCount() > 0)
{
ui->viAttrs->topLevelItem(0)->setDisabled(true);
ui->viAttrs->topLevelItem(0)->setDisabled(false);
}
if(ui->viBuffers->topLevelItemCount() > 0)
{
ui->viBuffers->topLevelItem(0)->setDisabled(true);
ui->viBuffers->topLevelItem(0)->setDisabled(false);
}
}
void GLPipelineStateViewer::on_viAttrs_mouseMove(QMouseEvent *e)
@@ -2153,6 +2169,8 @@ void GLPipelineStateViewer::on_viBuffers_mouseMove(QMouseEvent *e)
vertex_leave(NULL);
ui->viAttrs->model()->blockSignals(true);
ui->viBuffers->model()->blockSignals(true);
if(item)
{
int idx = m_VBNodes.indexOf(item);
@@ -2166,10 +2184,26 @@ void GLPipelineStateViewer::on_viBuffers_mouseMove(QMouseEvent *e)
item->setBackground(c, QBrush(ui->viBuffers->palette().color(QPalette::Window)));
}
}
ui->viAttrs->model()->blockSignals(false);
ui->viBuffers->model()->blockSignals(false);
if(ui->viAttrs->topLevelItemCount() > 0)
{
ui->viAttrs->topLevelItem(0)->setDisabled(true);
ui->viAttrs->topLevelItem(0)->setDisabled(false);
}
if(ui->viBuffers->topLevelItemCount() > 0)
{
ui->viBuffers->topLevelItem(0)->setDisabled(true);
ui->viBuffers->topLevelItem(0)->setDisabled(false);
}
}
void GLPipelineStateViewer::vertex_leave(QEvent *e)
{
ui->viAttrs->model()->blockSignals(true);
ui->viBuffers->model()->blockSignals(true);
for(int i = 0; i < ui->viAttrs->topLevelItemCount(); i++)
{
QTreeWidgetItem *item = ui->viAttrs->topLevelItem(i);
@@ -2183,6 +2217,20 @@ void GLPipelineStateViewer::vertex_leave(QEvent *e)
for(int c = 0; c < item->columnCount(); c++)
item->setBackground(c, QBrush());
}
ui->viAttrs->model()->blockSignals(false);
ui->viBuffers->model()->blockSignals(false);
if(ui->viAttrs->topLevelItemCount() > 0)
{
ui->viAttrs->topLevelItem(0)->setDisabled(true);
ui->viAttrs->topLevelItem(0)->setDisabled(false);
}
if(ui->viBuffers->topLevelItemCount() > 0)
{
ui->viBuffers->topLevelItem(0)->setDisabled(true);
ui->viBuffers->topLevelItem(0)->setDisabled(false);
}
}
void GLPipelineStateViewer::shaderView_clicked()
@@ -2194,6 +2194,8 @@ void VulkanPipelineStateViewer::highlightIABind(int slot)
QColor col = QColor::fromHslF(float(idx) / 32.0f, 1.0f, 0.95f);
ui->viAttrs->model()->blockSignals(true);
ui->viBuffers->model()->blockSignals(true);
if(slot < m_VBNodes.count())
{
QTreeWidgetItem *item = m_VBNodes[(int)slot];
@@ -2222,6 +2224,20 @@ void VulkanPipelineStateViewer::highlightIABind(int slot)
for(int c = 0; c < item->columnCount(); c++)
item->setBackground(c, itemBrush);
}
ui->viAttrs->model()->blockSignals(false);
ui->viBuffers->model()->blockSignals(false);
if(ui->viAttrs->topLevelItemCount() > 0)
{
ui->viAttrs->topLevelItem(0)->setDisabled(true);
ui->viAttrs->topLevelItem(0)->setDisabled(false);
}
if(ui->viBuffers->topLevelItemCount() > 0)
{
ui->viBuffers->topLevelItem(0)->setDisabled(true);
ui->viBuffers->topLevelItem(0)->setDisabled(false);
}
}
void VulkanPipelineStateViewer::on_viAttrs_mouseMove(QMouseEvent *e)
@@ -2255,6 +2271,8 @@ void VulkanPipelineStateViewer::on_viBuffers_mouseMove(QMouseEvent *e)
vertex_leave(NULL);
ui->viAttrs->model()->blockSignals(true);
ui->viBuffers->model()->blockSignals(true);
if(item)
{
int idx = m_VBNodes.indexOf(item);
@@ -2268,10 +2286,26 @@ void VulkanPipelineStateViewer::on_viBuffers_mouseMove(QMouseEvent *e)
item->setBackground(c, QBrush(ui->viBuffers->palette().color(QPalette::Window)));
}
}
ui->viAttrs->model()->blockSignals(false);
ui->viBuffers->model()->blockSignals(false);
if(ui->viAttrs->topLevelItemCount() > 0)
{
ui->viAttrs->topLevelItem(0)->setDisabled(true);
ui->viAttrs->topLevelItem(0)->setDisabled(false);
}
if(ui->viBuffers->topLevelItemCount() > 0)
{
ui->viBuffers->topLevelItem(0)->setDisabled(true);
ui->viBuffers->topLevelItem(0)->setDisabled(false);
}
}
void VulkanPipelineStateViewer::vertex_leave(QEvent *e)
{
ui->viAttrs->model()->blockSignals(true);
ui->viBuffers->model()->blockSignals(true);
for(int i = 0; i < ui->viAttrs->topLevelItemCount(); i++)
{
QTreeWidgetItem *item = ui->viAttrs->topLevelItem(i);
@@ -2285,6 +2319,20 @@ void VulkanPipelineStateViewer::vertex_leave(QEvent *e)
for(int c = 0; c < item->columnCount(); c++)
item->setBackground(c, QBrush());
}
ui->viAttrs->model()->blockSignals(false);
ui->viBuffers->model()->blockSignals(false);
if(ui->viAttrs->topLevelItemCount() > 0)
{
ui->viAttrs->topLevelItem(0)->setDisabled(true);
ui->viAttrs->topLevelItem(0)->setDisabled(false);
}
if(ui->viBuffers->topLevelItemCount() > 0)
{
ui->viBuffers->topLevelItem(0)->setDisabled(true);
ui->viBuffers->topLevelItem(0)->setDisabled(false);
}
}
void VulkanPipelineStateViewer::shaderView_clicked()