@@ -45,7 +45,6 @@ typedef unsigned int uint32_t; | |||||
#include <stdlib.h> | #include <stdlib.h> | ||||
#include <limits.h> | #include <limits.h> | ||||
#include <string.h> | #include <string.h> | ||||
#include <math.h> | |||||
#include "caca.h" | #include "caca.h" | ||||
#include "caca_internals.h" | #include "caca_internals.h" | ||||
@@ -338,7 +337,7 @@ void caca_set_bitmap_gamma(struct caca_bitmap *bitmap, float gammaval) | |||||
bitmap->gammaval = gammaval; | bitmap->gammaval = gammaval; | ||||
for(i = 0; i < 4096; i++) | for(i = 0; i < 4096; i++) | ||||
bitmap->gammatab[i] = 4096.0 * powf((float)i / 4096.0, 1.0 / gammaval); | |||||
bitmap->gammatab[i] = 4096.0 * caca_powf((float)i / 4096.0, 1.0 / gammaval); | |||||
} | } | ||||
/** | /** | ||||
@@ -317,6 +317,7 @@ void caca_fill_triangle(int, int, int, int, int, int, char); | |||||
* @{ */ | * @{ */ | ||||
int caca_rand(int, int); | int caca_rand(int, int); | ||||
unsigned int caca_sqrt(unsigned int); | unsigned int caca_sqrt(unsigned int); | ||||
float caca_powf(float x, float y); | |||||
/* @} */ | /* @} */ | ||||
/** \defgroup sprite Sprite handling | /** \defgroup sprite Sprite handling | ||||
@@ -78,3 +78,26 @@ unsigned int caca_sqrt(unsigned int a) | |||||
return 2 * caca_sqrt(a / 4); | return 2 * caca_sqrt(a / 4); | ||||
} | } | ||||
/** | |||||
* \brief powf substitute (x^y) | |||||
* \param x The value to be raised | |||||
* \param y The power to raise x of. | |||||
* \return \p x raised to the power of \p y | |||||
*/ | |||||
float caca_powf(float x, float y) | |||||
{ | |||||
int i=((int)y); | |||||
float r=x; | |||||
if(((int)y)==1 || ((int)x)==1) | |||||
return x; | |||||
i--; | |||||
while(i--) | |||||
{ | |||||
r*=x; | |||||
} | |||||
return r; | |||||
} |