Definition at line 459 of file ease.cpp.hpp.
459 {
460
461
462
463
464
465
466
467
468 constexpr float kGammaMax = 15.99975f;
469 const float gamma_clamped = (
gamma < 0.0f) ? 0.0f
470 : (
gamma > kGammaMax) ? kGammaMax
473
474
475
476
477
478
479
480
481
482
483
485 if (key == k28) {
486 static fl::weak_ptr<const Gamma8> s28_weak;
487 if (
auto existing = s28_weak.
lock()) {
488 return existing;
489 }
492 s28_weak = ptr;
493 return ptr;
494 }
495
496
497
498
499
501 static fl::weak_ptr<const Gamma8> sCachedPtr;
502 static bool sCacheValid = false;
503
504 if (sCacheValid && key == sCachedKey) {
505 if (
auto existing = sCachedPtr.
lock()) {
506 return existing;
507 }
508 }
509
510
511
512 fl::shared_ptr<const Gamma8> ptr =
514 sCachedKey = key;
515 sCachedPtr = ptr;
516 sCacheValid = true;
517 return ptr;
518}
shared_ptr< T > lock() const FL_NOEXCEPT
fl::ufixed_point< 4, 12 > GammaKey
const u16 GAMMA_2_8_LUT[256]
shared_ptr< T > make_shared(Args &&... args) FL_NOEXCEPT
constexpr u32 gamma(float g) FL_NOEXCEPT
References fl::gamma(), fl::GAMMA_2_8_LUT, getOrCreate(), fl::weak_ptr< T >::lock(), and fl::make_shared().
Referenced by buildExpectedUCS7604(), fl::encodeUCS7604(), getOrCreate(), fl::UCS7604ControllerT< DATA_PIN, RGB_ORDER, fl::UCS7604Mode::UCS7604_MODE_8BIT_800KHZ, fl::TIMING_UCS7604_800KHZ, CLOCKLESS_CONTROLLER >::showPixels(), and fl::anonymous_namespace{channel.cpp.hpp}::writeUCS7604().