From af591f5c09e0e2a1ce91d94d1d0a08cfb5a54c6b Mon Sep 17 00:00:00 2001 From: Neil Roberts Date: Thu, 20 May 2010 12:37:56 +0100 Subject: [PATCH] cogl-texture-2d: Optimise _cogl_texture_2d_is_pot This takes the simple algorithm from here: http://graphics.stanford.edu/~seander/bithacks.html#DetermineIfPowerOf2 This avoids a loop and is much faster. --- cogl/cogl-texture-2d.c | 15 +-------------- 1 file changed, 1 insertion(+), 14 deletions(-) diff --git a/cogl/cogl-texture-2d.c b/cogl/cogl-texture-2d.c index 044f75d33..4ec2e0ec9 100644 --- a/cogl/cogl-texture-2d.c +++ b/cogl/cogl-texture-2d.c @@ -156,21 +156,8 @@ _cogl_texture_2d_free (CoglTexture2D *tex_2d) static gboolean _cogl_texture_2d_is_pot (unsigned int num) { - gboolean have_bit = FALSE; - /* Make sure there is only one bit set */ - while (num) - { - if (num & 1) - { - if (have_bit) - return FALSE; - have_bit = TRUE; - } - num >>= 1; - } - - return TRUE; + return (num & (num - 1)) == 0; } static gboolean