From 42b7df15035b0e0eba2090a19604c7f82d49a447 Mon Sep 17 00:00:00 2001 From: Robert Osfield Date: Fri, 2 Apr 2004 15:23:56 +0000 Subject: [PATCH] Fixed computeImageResolution so that the computed num of columns and rows of the destination image are clamped to the nearest power of two equal or above the required resolution. --- src/osgTerrain/DataSet.cpp | 35 +++++++++++++++++++---------------- 1 file changed, 19 insertions(+), 16 deletions(-) diff --git a/src/osgTerrain/DataSet.cpp b/src/osgTerrain/DataSet.cpp index bc65c1e99..5da19be3d 100644 --- a/src/osgTerrain/DataSet.cpp +++ b/src/osgTerrain/DataSet.cpp @@ -1190,12 +1190,14 @@ bool DataSet::DestinationTile::computeImageResolution(unsigned int& numColumns, unsigned int numColumnsAtFullRes = 1+(unsigned int)ceilf((_extents.xMax()-_extents.xMin())/_imagery_maxSourceResolutionX); unsigned int numRowsAtFullRes = 1+(unsigned int)ceilf((_extents.yMax()-_extents.yMin())/_imagery_maxSourceResolutionY); - numColumns = osg::minimum(_imagery_maxNumColumns,numColumnsAtFullRes); - numRows = osg::minimum(_imagery_maxNumRows,numRowsAtFullRes); + unsigned int numColumnsRequired = osg::minimum(_imagery_maxNumColumns,numColumnsAtFullRes); + unsigned int numRowsRequired = osg::minimum(_imagery_maxNumRows,numRowsAtFullRes); - // round to nearest power of two - numColumns = osg::Image::computeNearestPowerOfTwo(numColumns); - numRows = osg::Image::computeNearestPowerOfTwo(numRows); + numColumns = 1; + numRows = 1; + // round to nearest power of two above or equal to the required resolution + while (numColumns