mirror of
https://github.com/luanti-org/luanti.git
synced 2025-06-27 16:36:03 +00:00
Add display_gamma option for client
This commit is contained in:
parent
2414580754
commit
3d29be24e0
7 changed files with 108 additions and 42 deletions
30
src/light.h
30
src/light.h
|
@ -63,7 +63,21 @@ inline u8 undiminish_light(u8 light)
|
|||
return light + 1;
|
||||
}
|
||||
|
||||
extern u8 light_decode_table[LIGHT_MAX+1];
|
||||
#ifndef SERVER
|
||||
|
||||
/**
|
||||
* \internal
|
||||
*
|
||||
* \warning DO NOT USE this directly; it is here simply so that decode_light()
|
||||
* can be inlined.
|
||||
*
|
||||
* Array size is #LIGHTMAX+1
|
||||
*
|
||||
* The array is a lookup table to convert the internal representation of light
|
||||
* (brightness) to the display brightness.
|
||||
*
|
||||
*/
|
||||
extern const u8 *light_decode_table;
|
||||
|
||||
// 0 <= light <= LIGHT_SUN
|
||||
// 0 <= return value <= 255
|
||||
|
@ -93,6 +107,10 @@ inline float decode_light_f(float light_f)
|
|||
return f * v2 + (1.0 - f) * v1;
|
||||
}
|
||||
|
||||
void set_light_table(float gamma);
|
||||
|
||||
#endif // ifndef SERVER
|
||||
|
||||
// 0 <= daylight_factor <= 1000
|
||||
// 0 <= lightday, lightnight <= LIGHT_SUN
|
||||
// 0 <= return value <= LIGHT_SUN
|
||||
|
@ -105,15 +123,5 @@ inline u8 blend_light(u32 daylight_factor, u8 lightday, u8 lightnight)
|
|||
return l;
|
||||
}
|
||||
|
||||
// 0.0 <= daylight_factor <= 1.0
|
||||
// 0 <= lightday, lightnight <= LIGHT_SUN
|
||||
// 0 <= return value <= 255
|
||||
inline u8 blend_light_f1(float daylight_factor, u8 lightday, u8 lightnight)
|
||||
{
|
||||
u8 l = ((daylight_factor * decode_light(lightday) +
|
||||
(1.0-daylight_factor) * decode_light(lightnight)));
|
||||
return l;
|
||||
}
|
||||
|
||||
#endif
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue