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:
parent
ee7ebe096e
commit
5b2311aed7
@ -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
|
||||||
|
Loading…
Reference in New Issue
Block a user