mirror of
https://github.com/baldurk/renderdoc.git
synced 2026-07-08 16:50:44 +00:00
Clamp currentIndex from Qt which can come back as -1 in some cases
* If this gets propagated far enough and used as an index it can cause crashes, so we clamp to 0 when we know the value should be non-negative.
This commit is contained in:
@@ -3191,7 +3191,7 @@ void BufferViewer::on_solidShading_currentIndexChanged(int index)
|
||||
m_Config.wireframeDraw = true;
|
||||
}
|
||||
|
||||
m_Config.solidShadeMode = (SolidShade)index;
|
||||
m_Config.solidShadeMode = (SolidShade)qMax(0, index);
|
||||
|
||||
m_ModelVSIn->setSecondaryColumn(m_ModelVSIn->secondaryColumn(),
|
||||
m_Config.solidShadeMode == SolidShade::Secondary,
|
||||
|
||||
@@ -149,7 +149,7 @@ void EnvironmentEditor::on_addUpdate_clicked()
|
||||
EnvironmentModification mod;
|
||||
mod.name = ui->name->text().toUtf8().data();
|
||||
mod.value = ui->value->text().toUtf8().data();
|
||||
mod.sep = (EnvSep)ui->separator->currentIndex();
|
||||
mod.sep = (EnvSep)qMax(0, ui->separator->currentIndex());
|
||||
|
||||
if(ui->appendValue->isChecked())
|
||||
mod.mod = EnvMod::Append;
|
||||
|
||||
@@ -294,7 +294,7 @@ void SettingsDialog::on_EventBrowser_TimeUnit_currentIndexChanged(int index)
|
||||
if(m_Init)
|
||||
return;
|
||||
|
||||
m_Ctx.Config().EventBrowser_TimeUnit = (TimeUnit)ui->EventBrowser_TimeUnit->currentIndex();
|
||||
m_Ctx.Config().EventBrowser_TimeUnit = (TimeUnit)qMax(0, ui->EventBrowser_TimeUnit->currentIndex());
|
||||
|
||||
if(m_Ctx.HasEventBrowser())
|
||||
m_Ctx.GetEventBrowser()->UpdateDurationColumn();
|
||||
|
||||
@@ -191,7 +191,7 @@ void TextureSaveDialog::SetFilenameFromFiletype()
|
||||
|
||||
void TextureSaveDialog::on_fileFormat_currentIndexChanged(int index)
|
||||
{
|
||||
saveData.destType = (FileType)ui->fileFormat->currentIndex();
|
||||
saveData.destType = (FileType)qMax(0, ui->fileFormat->currentIndex());
|
||||
|
||||
ui->jpegCompression->setEnabled(saveData.destType == FileType::JPG);
|
||||
|
||||
@@ -273,7 +273,7 @@ void TextureSaveDialog::on_oneMip_toggled(bool checked)
|
||||
|
||||
void TextureSaveDialog::on_mipSelect_currentIndexChanged(int index)
|
||||
{
|
||||
saveData.mip = index;
|
||||
saveData.mip = qMax(0, index);
|
||||
}
|
||||
|
||||
void TextureSaveDialog::on_mapSampleArray_toggled(bool checked)
|
||||
@@ -344,7 +344,7 @@ void TextureSaveDialog::on_oneSample_toggled(bool checked)
|
||||
|
||||
void TextureSaveDialog::on_sampleSelect_currentIndexChanged(int index)
|
||||
{
|
||||
saveData.sample.sampleIndex = (uint32_t)index;
|
||||
saveData.sample.sampleIndex = (uint32_t)qMax(0, index);
|
||||
}
|
||||
|
||||
void TextureSaveDialog::on_exportAllSlices_toggled(bool checked)
|
||||
@@ -466,7 +466,7 @@ void TextureSaveDialog::on_cubeCruciform_toggled(bool checked)
|
||||
|
||||
void TextureSaveDialog::on_sliceSelect_currentIndexChanged(int index)
|
||||
{
|
||||
saveData.slice.sliceIndex = index;
|
||||
saveData.slice.sliceIndex = qMax(0, index);
|
||||
}
|
||||
|
||||
void TextureSaveDialog::on_gridWidth_valueChanged(double arg1)
|
||||
@@ -488,7 +488,7 @@ void TextureSaveDialog::on_alphaCol_clicked()
|
||||
|
||||
void TextureSaveDialog::on_alphaMap_currentIndexChanged(int index)
|
||||
{
|
||||
saveData.alpha = (AlphaMapping)index;
|
||||
saveData.alpha = (AlphaMapping)qMax(0, index);
|
||||
|
||||
ui->alphaCol->setEnabled(saveData.alpha == AlphaMapping::BlendToColor);
|
||||
}
|
||||
@@ -546,7 +546,7 @@ void TextureSaveDialog::on_filename_textEdited(const QString &arg1)
|
||||
|
||||
void TextureSaveDialog::on_saveCancelButtons_accepted()
|
||||
{
|
||||
saveData.alpha = (AlphaMapping)ui->alphaMap->currentIndex();
|
||||
saveData.alpha = (AlphaMapping)qMax(0, ui->alphaMap->currentIndex());
|
||||
|
||||
if(saveData.alpha == AlphaMapping::BlendToCheckerboard)
|
||||
{
|
||||
@@ -556,7 +556,7 @@ void TextureSaveDialog::on_saveCancelButtons_accepted()
|
||||
if(ui->exportAllMips->isChecked())
|
||||
saveData.mip = -1;
|
||||
else
|
||||
saveData.mip = (int)ui->mipSelect->currentIndex();
|
||||
saveData.mip = (int)qMax(0, ui->mipSelect->currentIndex());
|
||||
|
||||
if(ui->resolveSamples->isChecked())
|
||||
{
|
||||
@@ -570,7 +570,7 @@ void TextureSaveDialog::on_saveCancelButtons_accepted()
|
||||
}
|
||||
else
|
||||
{
|
||||
saveData.sample.sampleIndex = (uint)ui->sampleSelect->currentIndex();
|
||||
saveData.sample.sampleIndex = (uint)qMax(0, ui->sampleSelect->currentIndex());
|
||||
saveData.sample.mapToArray = false;
|
||||
}
|
||||
|
||||
@@ -578,7 +578,7 @@ void TextureSaveDialog::on_saveCancelButtons_accepted()
|
||||
{
|
||||
saveData.slice.cubeCruciform = saveData.slice.slicesAsGrid = false;
|
||||
saveData.slice.sliceGridWidth = 1;
|
||||
saveData.slice.sliceIndex = (int)ui->sliceSelect->currentIndex();
|
||||
saveData.slice.sliceIndex = (int)qMax(0, ui->sliceSelect->currentIndex());
|
||||
}
|
||||
else
|
||||
{
|
||||
@@ -597,7 +597,7 @@ void TextureSaveDialog::on_saveCancelButtons_accepted()
|
||||
}
|
||||
}
|
||||
|
||||
saveData.destType = (FileType)ui->fileFormat->currentIndex();
|
||||
saveData.destType = (FileType)qMax(0, ui->fileFormat->currentIndex());
|
||||
saveData.jpegQuality = (int)ui->jpegCompression->value();
|
||||
|
||||
bool ok = false;
|
||||
|
||||
@@ -1058,14 +1058,14 @@ void TextureViewer::UI_OnTextureSelectionChanged(bool newdraw)
|
||||
m_TextureSettings[m_TexDisplay.texid].b = ui->channelBlue->isChecked();
|
||||
m_TextureSettings[m_TexDisplay.texid].a = ui->channelAlpha->isChecked();
|
||||
|
||||
m_TextureSettings[m_TexDisplay.texid].displayType = ui->channels->currentIndex();
|
||||
m_TextureSettings[m_TexDisplay.texid].displayType = qMax(0, ui->channels->currentIndex());
|
||||
m_TextureSettings[m_TexDisplay.texid].customShader = ui->customShader->currentText();
|
||||
|
||||
m_TextureSettings[m_TexDisplay.texid].depth = ui->depthDisplay->isChecked();
|
||||
m_TextureSettings[m_TexDisplay.texid].stencil = ui->stencilDisplay->isChecked();
|
||||
|
||||
m_TextureSettings[m_TexDisplay.texid].mip = ui->mipLevel->currentIndex();
|
||||
m_TextureSettings[m_TexDisplay.texid].slice = ui->sliceFace->currentIndex();
|
||||
m_TextureSettings[m_TexDisplay.texid].mip = qMax(0, ui->mipLevel->currentIndex());
|
||||
m_TextureSettings[m_TexDisplay.texid].slice = qMax(0, ui->sliceFace->currentIndex());
|
||||
|
||||
m_TextureSettings[m_TexDisplay.texid].minrange = ui->rangeHistogram->blackPoint();
|
||||
m_TextureSettings[m_TexDisplay.texid].maxrange = ui->rangeHistogram->whitePoint();
|
||||
@@ -3167,13 +3167,13 @@ void TextureViewer::on_mipLevel_currentIndexChanged(int index)
|
||||
|
||||
if(tex.mips > 1)
|
||||
{
|
||||
m_TexDisplay.mip = (uint32_t)index;
|
||||
m_TexDisplay.mip = (uint32_t)qMax(0, index);
|
||||
m_TexDisplay.sampleIdx = 0;
|
||||
}
|
||||
else
|
||||
{
|
||||
m_TexDisplay.mip = 0;
|
||||
m_TexDisplay.sampleIdx = (uint32_t)index;
|
||||
m_TexDisplay.sampleIdx = (uint32_t)qMax(0, index);
|
||||
if(m_TexDisplay.sampleIdx == tex.msSamp)
|
||||
m_TexDisplay.sampleIdx = ~0U;
|
||||
}
|
||||
@@ -3213,10 +3213,10 @@ void TextureViewer::on_sliceFace_currentIndexChanged(int index)
|
||||
return;
|
||||
|
||||
TextureDescription &tex = *texptr;
|
||||
m_TexDisplay.sliceFace = (uint32_t)index;
|
||||
m_TexDisplay.sliceFace = (uint32_t)qMax(0, index);
|
||||
|
||||
if(tex.depth > 1)
|
||||
m_TexDisplay.sliceFace = (uint32_t)(index << (int)m_TexDisplay.mip);
|
||||
m_TexDisplay.sliceFace = (uint32_t)(qMax(0, index) << (int)m_TexDisplay.mip);
|
||||
|
||||
INVOKE_MEMFN(RT_UpdateVisualRange);
|
||||
|
||||
|
||||
Reference in New Issue
Block a user