From 467dd5e80818aa4dee7ae9017efed2cf4f6a583c Mon Sep 17 00:00:00 2001 From: baldurk Date: Wed, 22 May 2019 12:40:56 +0100 Subject: [PATCH] Fix calculation of bounding boxes for non-4 component attributes * If we only have 3 or 2 components, set the remaining bounding box values to 0 so they aren't set at +/- FLT_MAX. --- qrenderdoc/Windows/BufferViewer.cpp | 13 +++++++++++-- 1 file changed, 11 insertions(+), 2 deletions(-) diff --git a/qrenderdoc/Windows/BufferViewer.cpp b/qrenderdoc/Windows/BufferViewer.cpp index 86065d6f5..2864fbc6a 100644 --- a/qrenderdoc/Windows/BufferViewer.cpp +++ b/qrenderdoc/Windows/BufferViewer.cpp @@ -2318,8 +2318,17 @@ void BufferViewer::calcBoundingData(CalcBoundingBoxData &bbox) for(int i = 0; i < s.columns.count(); i++) { - minOutputList.push_back(FloatVector(FLT_MAX, FLT_MAX, FLT_MAX, FLT_MAX)); - maxOutputList.push_back(FloatVector(-FLT_MAX, -FLT_MAX, -FLT_MAX, -FLT_MAX)); + FloatVector maxvec(FLT_MAX, FLT_MAX, FLT_MAX, FLT_MAX); + + if(s.columns[i].format.compCount == 1) + maxvec.y = maxvec.z = maxvec.w = 0.0; + else if(s.columns[i].format.compCount == 2) + maxvec.z = maxvec.w = 0.0; + else if(s.columns[i].format.compCount == 3) + maxvec.w = 0.0; + + minOutputList.push_back(maxvec); + maxOutputList.push_back(FloatVector(-maxvec.x, -maxvec.y, -maxvec.z, -maxvec.w)); } QVector cache;