| @@ -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; | |||||
| } | |||||