mirror of
https://gitlab.freedesktop.org/mesa/mesa.git
synced 2026-05-05 05:18:08 +02:00
util/format: Use explicitly sized types
Both the rgb9e5 and r11g11b10 formats are defined based on how they are packed into a 32-bit integer. It makes sense that the functions that manipulate them take an explicitly sized type. Signed-off-by: Jason Ekstrand <jason@jlekstrand.net> Reviewed-by: Roland Scheidegger <sroland@vmware.com>
This commit is contained in:
parent
c7eb9a7565
commit
ffcf8e1049
2 changed files with 8 additions and 6 deletions
|
|
@ -27,6 +27,8 @@
|
|||
* below.
|
||||
*/
|
||||
|
||||
#include <stdint.h>
|
||||
|
||||
#define UF11(e, m) ((e << 6) | (m))
|
||||
#define UF11_EXPONENT_BIAS 15
|
||||
#define UF11_EXPONENT_BITS 0x1F
|
||||
|
|
@ -45,7 +47,7 @@
|
|||
|
||||
#define F32_INFINITY 0x7f800000
|
||||
|
||||
static inline unsigned f32_to_uf11(float val)
|
||||
static inline uint32_t f32_to_uf11(float val)
|
||||
{
|
||||
union {
|
||||
float f;
|
||||
|
|
@ -131,7 +133,7 @@ static inline float uf11_to_f32(uint16_t val)
|
|||
return f32.f;
|
||||
}
|
||||
|
||||
static inline unsigned f32_to_uf10(float val)
|
||||
static inline uint32_t f32_to_uf10(float val)
|
||||
{
|
||||
union {
|
||||
float f;
|
||||
|
|
@ -217,14 +219,14 @@ static inline float uf10_to_f32(uint16_t val)
|
|||
return f32.f;
|
||||
}
|
||||
|
||||
static inline unsigned float3_to_r11g11b10f(const float rgb[3])
|
||||
static inline uint32_t float3_to_r11g11b10f(const float rgb[3])
|
||||
{
|
||||
return ( f32_to_uf11(rgb[0]) & 0x7ff) |
|
||||
((f32_to_uf11(rgb[1]) & 0x7ff) << 11) |
|
||||
((f32_to_uf10(rgb[2]) & 0x3ff) << 22);
|
||||
}
|
||||
|
||||
static inline void r11g11b10f_to_float3(unsigned rgb, float retval[3])
|
||||
static inline void r11g11b10f_to_float3(uint32_t rgb, float retval[3])
|
||||
{
|
||||
retval[0] = uf11_to_f32( rgb & 0x7ff);
|
||||
retval[1] = uf11_to_f32((rgb >> 11) & 0x7ff);
|
||||
|
|
|
|||
|
|
@ -57,7 +57,7 @@ static inline int rgb9e5_ClampRange(float x)
|
|||
return f.u;
|
||||
}
|
||||
|
||||
static inline unsigned int float3_to_rgb9e5(const float rgb[3])
|
||||
static inline uint32_t float3_to_rgb9e5(const float rgb[3])
|
||||
{
|
||||
int rm, gm, bm, exp_shared;
|
||||
uint32_t revdenom_biasedexp;
|
||||
|
|
@ -104,7 +104,7 @@ static inline unsigned int float3_to_rgb9e5(const float rgb[3])
|
|||
return (exp_shared << 27) | (bm << 18) | (gm << 9) | rm;
|
||||
}
|
||||
|
||||
static inline void rgb9e5_to_float3(unsigned rgb, float retval[3])
|
||||
static inline void rgb9e5_to_float3(uint32_t rgb, float retval[3])
|
||||
{
|
||||
int exponent;
|
||||
union { float f; uint32_t u; } scale;
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue