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.
This commit is contained in:
Neil Roberts 2010-05-20 12:37:56 +01:00
parent ee7ebe096e
commit 5b2311aed7

View File

@ -156,21 +156,8 @@ _cogl_texture_2d_free (CoglTexture2D *tex_2d)
static gboolean static gboolean
_cogl_texture_2d_is_pot (unsigned int num) _cogl_texture_2d_is_pot (unsigned int num)
{ {
gboolean have_bit = FALSE;
/* Make sure there is only one bit set */ /* Make sure there is only one bit set */
while (num) return (num & (num - 1)) == 0;
{
if (num & 1)
{
if (have_bit)
return FALSE;
have_bit = TRUE;
}
num >>= 1;
}
return TRUE;
} }
static gboolean static gboolean