Definition at line 460 of file ease.cpp.hpp.
460 {
461
462
463
464
465
466
467
468
469 constexpr float kGammaMax = 15.99975f;
470 const float gamma_clamped = (
gamma < 0.0f) ? 0.0f
471 : (
gamma > kGammaMax) ? kGammaMax
474
475
476
477
478
479
480
481
482
483
484
486 if (key == k28) {
487 static fl::weak_ptr<const Gamma8> s28_weak;
488 if (
auto existing = s28_weak.
lock()) {
489 return existing;
490 }
493 s28_weak = ptr;
494 return ptr;
495 }
496
497
498
499
500
502 static fl::weak_ptr<const Gamma8> sCachedPtr;
503 static bool sCacheValid = false;
504
505 if (sCacheValid && key == sCachedKey) {
506 if (
auto existing = sCachedPtr.
lock()) {
507 return existing;
508 }
509 }
510
511
512
513 fl::shared_ptr<const Gamma8> ptr =
515 sCachedKey = key;
516 sCachedPtr = ptr;
517 sCacheValid = true;
518 return ptr;
519}
shared_ptr< T > lock() const FL_NO_EXCEPT
shared_ptr< T > make_shared(Args &&... args) FL_NO_EXCEPT
constexpr u32 gamma(float g) FL_NO_EXCEPT
fl::ufixed_point< 4, 12 > GammaKey
const u16 GAMMA_2_8_LUT[256]
References fl::FL_NO_EXCEPT, fl::gamma(), fl::GAMMA_2_8_LUT, getOrCreate(), fl::weak_ptr< T >::lock(), and fl::adl_barrier::make_shared().
Referenced by 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().