@brief Construct a runtime `Channel` from a typed configuration. The factory returns a `ChannelPtr` to the existing non-template `fl::Channel` runtime object so the rest of the system (events, manager, draw list) is unchanged.
| 81 | /// `fl::Channel` runtime object so the rest of the system (events, |
| 82 | /// manager, draw list) is unchanged. |
| 83 | static ChannelPtr create(const ChannelConfigOf<Chipset>& cfg) FL_NOEXCEPT { |
| 84 | // Naming `BusTraits<kBus>::instance` here is the ODR-use that links |
| 85 | // the driver translation unit even in the static-only `--gc-sections` |
| 86 | // mode (issue #2428 Phase 5 binary-size fix). |
| 87 | (void)&BusTraits<kBus>::instance; |
| 88 | ChannelConfig erased = cfg.toErased(); |
| 89 | return Channel::create(erased); |
| 90 | } |
| 91 | |
| 92 | /// @brief Overload accepting the (type-erased) non-template config. |
| 93 | /// |