Merge pull request #1930 from rextimmy/texture_crash

Texture crash
This commit is contained in:
Anis 2017-01-16 15:55:34 +01:00 committed by GitHub
commit 0911311e98
3 changed files with 14 additions and 16 deletions

View file

@ -327,7 +327,10 @@ void GBitmap::allocateBitmap(const U32 in_width, const U32 in_height, const bool
mNumMipLevels++; mNumMipLevels++;
allocPixels += currWidth * currHeight * mBytesPerPixel; allocPixels += currWidth * currHeight * mBytesPerPixel;
} while (currWidth != 1 && currHeight != 1); } while (currWidth != 1 || currHeight != 1);
U32 expectedMips = mFloor(mLog2(mMax(in_width, in_height))) + 1;
AssertFatal(mNumMipLevels == expectedMips, "GBitmap::allocateBitmap: mipmap count wrong");
} }
AssertFatal(mNumMipLevels <= c_maxMipLevels, "GBitmap::allocateBitmap: too many miplevels"); AssertFatal(mNumMipLevels <= c_maxMipLevels, "GBitmap::allocateBitmap: too many miplevels");

View file

@ -1085,21 +1085,7 @@ void GFXTextureManager::_validateTexParams( const U32 width, const U32 height,
// NOTE: Does this belong here? // NOTE: Does this belong here?
if( inOutNumMips == 0 && !autoGenSupp ) if( inOutNumMips == 0 && !autoGenSupp )
{ {
U32 currWidth = width; inOutNumMips = mFloor(mLog2(mMax(width, height))) + 1;
U32 currHeight = height;
inOutNumMips = 1;
do
{
currWidth >>= 1;
currHeight >>= 1;
if( currWidth == 0 )
currWidth = 1;
if( currHeight == 0 )
currHeight = 1;
inOutNumMips++;
} while ( currWidth != 1 && currHeight != 1 );
} }
} }
} }

View file

@ -320,6 +320,11 @@ inline F32 mLog(const F32 val)
return (F32) log(val); return (F32) log(val);
} }
inline F32 mLog2(const F32 val)
{
return (F32) log2(val);
}
inline F32 mExp(const F32 val) inline F32 mExp(const F32 val)
{ {
return (F32) exp(val); return (F32) exp(val);
@ -380,6 +385,10 @@ inline F64 mLog(const F64 val)
return (F64) log(val); return (F64) log(val);
} }
inline F64 mLog2(const F64 val)
{
return (F64) log2(val);
}
inline F32 mCatmullrom(F32 t, F32 p0, F32 p1, F32 p2, F32 p3) inline F32 mCatmullrom(F32 t, F32 p0, F32 p1, F32 p2, F32 p3)
{ {