18 #ifndef PIC_COLORS_RGBE_HPP 19 #define PIC_COLORS_RGBE_HPP 29 #include "../base.hpp" 45 if(v < * (colFloat + 1)) {
49 if(v < * (colFloat + 2)) {
61 v = frexp(v, &e) * 256.0f / v;
63 *(colRGBE) =
int((*(colFloat)) * v);
64 *(colRGBE + 1) =
int((*(colFloat + 1)) * v);
65 *(colRGBE + 2) =
int((*(colFloat + 2)) * v);
66 *(colRGBE + 3) = (e + 128);
89 v = frexp(v, &e) * 256.0f / v;
91 *(colRGBE) =
int((*(colFloat)) * v);
92 *(colRGBE + 1) = *colRGBE;
93 *(colRGBE + 2) = *colRGBE;
94 *(colRGBE + 3) = (e + 128);
105 if((*(colRGBE) == 0) && (*(colRGBE + 1) == 0) &&
106 (*(colRGBE + 2) == 0)) {
116 E = *(colRGBE + 3) - 128 - 8;
119 *(colFloat) = (
float(*(colRGBE)) + 0.5f) * f;
120 *(colFloat + 1) = (
float(*(colRGBE + 1)) + 0.5f) * f;
121 *(colFloat + 2) = (
float(*(colRGBE + 2)) + 0.5f) * f;
PIC_INLINE void fromFloatToRGBE(float *colFloat, unsigned char *colRGBE)
fromFloatToRGBE
Definition: rgbe.hpp:38
PIC_INLINE void fromRGBEToFloat(unsigned char *colRGBE, float *colFloat)
fromRGBEToFloat
Definition: rgbe.hpp:102
PIC_INLINE void fromSingleFloatToRGBE(float *colFloat, unsigned char *colRGBE)
fromSingleFloatToRGBE
Definition: rgbe.hpp:74
#define PIC_INLINE
Definition: base.hpp:33
Definition: bilateral_separation.hpp:25