mirror of
https://gitlab.freedesktop.org/mesa/mesa.git
synced 2026-05-05 11:48:06 +02:00
mesa: Move [UN]CLAMPED_FLOAT_TO_UBYTE from imports.h to macros.h.
The other similar integer/float conversion macros are in macros.h.
This commit is contained in:
parent
347c00c46e
commit
343b38a692
5 changed files with 38 additions and 36 deletions
|
|
@ -42,6 +42,7 @@ USE OR OTHER DEALINGS IN THE SOFTWARE.
|
|||
#include "main/context.h"
|
||||
#include "main/enums.h"
|
||||
#include "main/colormac.h"
|
||||
#include "main/macros.h"
|
||||
#include "swrast/swrast.h"
|
||||
#include "vbo/vbo.h"
|
||||
#include "tnl/tnl.h"
|
||||
|
|
|
|||
|
|
@ -44,6 +44,7 @@ USE OR OTHER DEALINGS IN THE SOFTWARE.
|
|||
#include "main/texobj.h"
|
||||
#include "main/imports.h"
|
||||
#include "main/texobj.h"
|
||||
#include "main/macros.h"
|
||||
|
||||
#include "xmlpool.h"
|
||||
|
||||
|
|
|
|||
|
|
@ -37,6 +37,7 @@ USE OR OTHER DEALINGS IN THE SOFTWARE.
|
|||
#include "sis_lock.h"
|
||||
|
||||
#include "main/context.h"
|
||||
#include "main/macros.h"
|
||||
#include "swrast/swrast.h"
|
||||
#include "vbo/vbo.h"
|
||||
#include "tnl/tnl.h"
|
||||
|
|
|
|||
|
|
@ -444,42 +444,6 @@ _mesa_next_pow_two_64(uint64_t x)
|
|||
}
|
||||
|
||||
|
||||
/***
|
||||
*** UNCLAMPED_FLOAT_TO_UBYTE: clamp float to [0,1] and map to ubyte in [0,255]
|
||||
*** CLAMPED_FLOAT_TO_UBYTE: map float known to be in [0,1] to ubyte in [0,255]
|
||||
***/
|
||||
#if defined(USE_IEEE) && !defined(DEBUG)
|
||||
#define IEEE_0996 0x3f7f0000 /* 0.996 or so */
|
||||
/* This function/macro is sensitive to precision. Test very carefully
|
||||
* if you change it!
|
||||
*/
|
||||
#define UNCLAMPED_FLOAT_TO_UBYTE(UB, F) \
|
||||
do { \
|
||||
fi_type __tmp; \
|
||||
__tmp.f = (F); \
|
||||
if (__tmp.i < 0) \
|
||||
UB = (GLubyte) 0; \
|
||||
else if (__tmp.i >= IEEE_0996) \
|
||||
UB = (GLubyte) 255; \
|
||||
else { \
|
||||
__tmp.f = __tmp.f * (255.0F/256.0F) + 32768.0F; \
|
||||
UB = (GLubyte) __tmp.i; \
|
||||
} \
|
||||
} while (0)
|
||||
#define CLAMPED_FLOAT_TO_UBYTE(UB, F) \
|
||||
do { \
|
||||
fi_type __tmp; \
|
||||
__tmp.f = (F) * (255.0F/256.0F) + 32768.0F; \
|
||||
UB = (GLubyte) __tmp.i; \
|
||||
} while (0)
|
||||
#else
|
||||
#define UNCLAMPED_FLOAT_TO_UBYTE(ub, f) \
|
||||
ub = ((GLubyte) IROUND(CLAMP((f), 0.0F, 1.0F) * 255.0F))
|
||||
#define CLAMPED_FLOAT_TO_UBYTE(ub, f) \
|
||||
ub = ((GLubyte) IROUND((f) * 255.0F))
|
||||
#endif
|
||||
|
||||
|
||||
/**
|
||||
* Return 1 if this is a little endian machine, 0 if big endian.
|
||||
*/
|
||||
|
|
|
|||
|
|
@ -130,6 +130,41 @@ extern GLfloat _mesa_ubyte_to_float_color_tab[256];
|
|||
#define UNCLAMPED_FLOAT_TO_SHORT(s, f) \
|
||||
s = ( (GLshort) IROUND( CLAMP((f), -1.0F, 1.0F) * 32767.0F) )
|
||||
|
||||
/***
|
||||
*** UNCLAMPED_FLOAT_TO_UBYTE: clamp float to [0,1] and map to ubyte in [0,255]
|
||||
*** CLAMPED_FLOAT_TO_UBYTE: map float known to be in [0,1] to ubyte in [0,255]
|
||||
***/
|
||||
#if defined(USE_IEEE) && !defined(DEBUG)
|
||||
#define IEEE_0996 0x3f7f0000 /* 0.996 or so */
|
||||
/* This function/macro is sensitive to precision. Test very carefully
|
||||
* if you change it!
|
||||
*/
|
||||
#define UNCLAMPED_FLOAT_TO_UBYTE(UB, F) \
|
||||
do { \
|
||||
fi_type __tmp; \
|
||||
__tmp.f = (F); \
|
||||
if (__tmp.i < 0) \
|
||||
UB = (GLubyte) 0; \
|
||||
else if (__tmp.i >= IEEE_0996) \
|
||||
UB = (GLubyte) 255; \
|
||||
else { \
|
||||
__tmp.f = __tmp.f * (255.0F/256.0F) + 32768.0F; \
|
||||
UB = (GLubyte) __tmp.i; \
|
||||
} \
|
||||
} while (0)
|
||||
#define CLAMPED_FLOAT_TO_UBYTE(UB, F) \
|
||||
do { \
|
||||
fi_type __tmp; \
|
||||
__tmp.f = (F) * (255.0F/256.0F) + 32768.0F; \
|
||||
UB = (GLubyte) __tmp.i; \
|
||||
} while (0)
|
||||
#else
|
||||
#define UNCLAMPED_FLOAT_TO_UBYTE(ub, f) \
|
||||
ub = ((GLubyte) IROUND(CLAMP((f), 0.0F, 1.0F) * 255.0F))
|
||||
#define CLAMPED_FLOAT_TO_UBYTE(ub, f) \
|
||||
ub = ((GLubyte) IROUND((f) * 255.0F))
|
||||
#endif
|
||||
|
||||
/*@}*/
|
||||
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue