12 PL_ALWAYS_INLINE
static plUInt32 Float3ToRGB10(
plVec3 value)
14 const plVec3 unsignedValue = value * 0.5f +
plVec3(0.5f);
16 const plUInt32 r =
plMath::Clamp(
static_cast<plUInt32
>(unsignedValue.x * 1023.0f + 0.5f), 0u, 1023u);
17 const plUInt32 g =
plMath::Clamp(
static_cast<plUInt32
>(unsignedValue.y * 1023.0f + 0.5f), 0u, 1023u);
18 const plUInt32 b =
plMath::Clamp(
static_cast<plUInt32
>(unsignedValue.z * 1023.0f + 0.5f), 0u, 1023u);
20 return r | (g << 10) | (b << 20);
31 PL_ALWAYS_INLINE
static plUInt32 Float2ToRG16F(
plVec2 value)
39 PL_ALWAYS_INLINE
static void Float4ToRGBA16F(
plVec4 value, plUInt32& out_uiRG, plUInt32& out_uiBA)
41 out_uiRG = Float2ToRG16F(
plVec2(value.x, value.y));
42 out_uiBA = Float2ToRG16F(
plVec2(value.z, value.w));
45 enum class plBuiltinShaderType
61 PL_RENDERERFOUNDATION_DLL
static plDelegate<void(plBuiltinShaderType type,
plBuiltinShader& out_shader)> g_RequestBuiltinShaderCallback;
63 PL_ALWAYS_INLINE
static void RequestBuiltinShader(plBuiltinShaderType type,
plBuiltinShader& out_shader)
65 g_RequestBuiltinShaderCallback(type, out_shader);
constexpr PL_ALWAYS_INLINE T Clamp(T value, T min_val, T max_val)
Clamps "value" to the range [min; max]. Returns "value", if it is inside the range already.
Definition Math_inl.h:51