From af809ab210182c371828b80d192e58c31cb4568f Mon Sep 17 00:00:00 2001 From: Bart van Strien Date: Sun, 15 May 2011 22:10:17 +0200 Subject: [PATCH] Switch to bitwise ops to po2ify --- src/modules/image/devil/ImageData.cpp | 16 ++++++++++++++-- 1 file changed, 14 insertions(+), 2 deletions(-) diff --git a/src/modules/image/devil/ImageData.cpp b/src/modules/image/devil/ImageData.cpp index 34c235b1a..99a46b2e5 100644 --- a/src/modules/image/devil/ImageData.cpp +++ b/src/modules/image/devil/ImageData.cpp @@ -27,6 +27,18 @@ #include #include +int toPo2(int n) +{ + n -= 1; + n |= n >> 1; + n |= n >> 2; + n |= n >> 4; + n |= n >> 8; + n |= n >> 16; + n |= n >> 32; + return n+1; +} + namespace love { namespace image @@ -42,8 +54,8 @@ namespace devil ilBindImage(image); //scale to nearest bigger po2 - width = pow(2, ceil(log((double) width)/log(2.0))); - height = pow(2, ceil(log((double) height)/log(2.0))); + width = toPo2(width); + height = toPo2(height); //create and populate the image bool success = (ilTexImage(width, height, 1, bpp, IL_RGBA, IL_UNSIGNED_BYTE, data) == IL_TRUE);