- Setup EGL context for Wayland. Test window now opens as black rectangle.

This commit is contained in:
2025-12-15 13:20:08 -05:00
parent 5dcb58f53c
commit 1acf00138a
36 changed files with 992 additions and 80 deletions

View File

@@ -133,6 +133,13 @@ namespace fennec::detail
template<typename T>
auto _is_mappable(...) -> false_type;
template<typename B> auto _ptr_conv(const volatile B*) -> true_type;
template<typename> auto _ptr_conv(const volatile void*) -> false_type;
template<typename B, typename D> auto _is_base_of(int) -> decltype(detail::_ptr_conv<B>(static_cast<D*>(nullptr)));
template<typename, typename> auto _is_base_of(...) -> false_type;
}
#endif // FENNEC_LANG_DETAIL_TYPE_TRAITS_H

View File

@@ -790,6 +790,25 @@ template<typename T> struct is_same<T, T> : true_type {};
/// \tparam T1 second type to check
template<typename T0, typename T1> constexpr bool_t is_same_v = is_same<T0, T1> {};
// fennec::is_base_of =====================================================================================================
///
/// \brief Check if `Derived` has a base type of `Base`
///
/// \details Checks if `Base` is a base type of `Derived` and stores it in `is_base_of::value`
/// \tparam Base base type to check
/// \tparam Derived derived type to check
template<typename Base, typename Derived> struct is_base_of : bool_constant<
is_class_v<Base> and is_class_v<Derived> and decltype(detail::_is_base_of<Base, Derived>(0))::value
> {};
///
/// \brief Shorthand for ```is_base_of<T0, T1>::value```
/// \tparam Base base type to check
/// \tparam Derived derived type to check
template<typename Base, typename Derived> constexpr bool_t is_base_of_v = is_base_of<Base, Derived> {};
// fennec::is_complete ==============================================================================================
///