HikoGUI
A low latency retained GUI
Loading...
Searching...
No Matches
Namespaces | Data Structures | Typedefs | Enumerations | Functions | Variables
hi Namespace Reference

The HikoGUI namespace. More...

Namespaces

namespace  v1
 The HikoGUI API version 1.
 

Data Structures

class  aarectangle
 Class which represents an axis-aligned rectangle. More...
 
class  abstract_button_widget
 Base class for implementing button widgets. More...
 
class  alignment
 Horizontal/Vertical alignment combination. More...
 
struct  array_generic
 Intrinsic operations on arrays. More...
 
struct  array_intrinsic
 Intrinsic operations on arrays. More...
 
class  async_delegate
 A button delegate controls the state of a button widget. More...
 
class  async_widget
 A GUI widget that permits the user to make a binary choice. More...
 
class  audio_block
 A block of audio data. More...
 
class  audio_channel
 
class  audio_device
 A set of audio channels which can be rendered and/or captures at the same time. More...
 
class  audio_device_asio
 A class representing an audio device on the system. More...
 
class  audio_device_delegate
 
class  audio_device_widget
 Audio device configuration widget. More...
 
class  audio_device_win32
 
class  audio_format_range
 
struct  audio_sample_format
 Audio sample format. More...
 
class  audio_sample_packer
 
class  audio_sample_unpacker
 
struct  audio_stream_config
 
struct  audio_stream_format
 The format of a stream of audio. More...
 
class  audio_system
 
class  audio_system_aggregate
 
class  audio_system_asio
 
class  audio_system_win32
 
struct  audio_system_win32_event
 
struct  bezier_curve
 
struct  bezier_point
 
struct  box_constraints
 2D constraints. More...
 
struct  box_shape
 
class  button_delegate
 A button delegate controls the state of a button widget. More...
 
class  callback
 
class  callback< ResultType(ArgTypes...)>
 A callback function. More...
 
class  cancel_error
 Cancel error is caused by user pressing cancel. More...
 
struct  cancel_features
 Type trait to retrieve the cancel feautes of a invokable. More...
 
struct  char_converter
 A converter between character encodings. More...
 
struct  char_map
 Character encoder/decoder template. More...
 
struct  char_map<"ascii">
 ASCII (7-bit) character map. More...
 
struct  char_map<"cp-1252">
 CP-1252 / Windows-1252 character map. More...
 
struct  char_map<"iso-8859-1">
 ISO-8859-1 / Latin-1 character map. More...
 
struct  char_map<"utf-16">
 Unicode UTF-16 encoding. More...
 
struct  char_map<"utf-32">
 Unicode UTF-32 encoding. More...
 
struct  char_map<"utf-8">
 Unicode UTF-8 encoding. More...
 
class  checkbox_widget
 A GUI widget that permits the user to make a binary choice. More...
 
class  circle
 A type defining a 2D circle. More...
 
struct  cmake_install
 
class  color
 This is a RGBA floating point color. More...
 
class  const_resource_view
 A read-only view of a resource. More...
 
struct  convertible_to_any
 A type that can be implicitly converted to any type. More...
 
struct  copy_cv
 Type-trait to copy const volatile qualifiers from one type to another. More...
 
struct  copy_cv< To, From >
 
class  corner_radii
 The 4 radii of the corners of a quad or rectangle. More...
 
struct  cpu_id_result
 
class  datum
 A dynamic data type. More...
 
class  default_async_delegate
 A default async button delegate. More...
 
class  default_radio_delegate
 A default radio button delegate. More...
 
class  default_selection_delegate
 A delegate that control the state of a selection_widget. More...
 
class  default_tab_delegate
 A delegate that control the state of a tab_widget. More...
 
class  default_text_delegate
 A default text delegate. More...
 
class  default_text_delegate< char const * >
 A default text delegate specialization for std::string. More...
 
class  default_text_delegate< gstring >
 A default text delegate specialization for gstring. More...
 
class  default_text_delegate< std::string >
 A default text delegate specialization for std::string. More...
 
class  default_text_delegate< txt >
 A default text delegate specialization for translate. More...
 
class  default_text_field_delegate
 A default text delegate. More...
 
class  default_text_field_delegate< T >
 A default text delegate specialization for std::integral<T>. More...
 
class  default_toggle_delegate
 A default toggle button delegate. More...
 
struct  default_values
 A type traits for generating default values of a type. More...
 
struct  default_values< T >
 
class  defer
 Defer execution of a lambda to the end of the scope. More...
 
struct  DeviceIndependentPixelLengthDim
 
struct  Dips
 Device Independent Pixel. More...
 
struct  DipsPerEm
 
struct  draw_attributes
 The draw attributes used to draw shaped into the draw context. More...
 
class  draw_context
 Draw context for drawing using the HikoGUI shaders. More...
 
struct  EmSquares
 
struct  endian_buf_t
 
class  enum_metadata
 A object that holds enum-values and strings. More...
 
struct  enum_metadata_name
 
struct  enum_metadata_name< char * >
 
struct  enum_metadata_name< char const * >
 
struct  enum_metadata_name< char const[N]>
 
struct  enum_metadata_name< char[N]>
 
class  extent2
 A high-level geometric extent. More...
 
class  extent3
 A high-level geometric extent. More...
 
class  file
 A File object. More...
 
class  file_view
 Map a file into virtual memory. More...
 
struct  fixed_string
 A string which may be used as a none-type template parameter. More...
 
class  font_char_map
 Character map of a font. More...
 
class  font_size_quantity
 
struct  forward_copy_or_ref
 
class  gfx_error
 
class  gfx_pipeline_box
 
class  gfx_pipeline_image
 
class  gfx_pipeline_override
 
class  gfx_pipeline_SDF
 
class  gfx_pipeline_tone_mapper
 
class  glob_pattern
 A glob pattern. More...
 
struct  graphic_path
 A path is a vector graphics object. More...
 
class  grid_layout
 Grid layout algorithm. More...
 
class  grid_widget
 A GUI widget that lays out child-widgets in a grid with variable sized cells. More...
 
class  gui_error
 
class  gui_event
 A user interface event. More...
 
struct  half
 
struct  has_add_callback
 
struct  has_floatxx
 Has an float of a specific size. More...
 
struct  has_intxx
 Has an signed integer of a specific size. More...
 
struct  has_native_floatxx
 Has an float of a specific size, natively supported by the compiler. More...
 
struct  has_native_floatxx< 32 >
 
struct  has_native_floatxx< 64 >
 
struct  has_native_intxx
 Has an signed integer of a specific size, natively supported by the compiler. More...
 
struct  has_native_intxx< 16 >
 
struct  has_native_intxx< 32 >
 
struct  has_native_intxx< 64 >
 
struct  has_native_intxx< 8 >
 
struct  has_native_uintxx
 Has an unsigned integer of a specific size, natively supported by the compiler. More...
 
struct  has_native_uintxx< 16 >
 
struct  has_native_uintxx< 32 >
 
struct  has_native_uintxx< 64 >
 
struct  has_native_uintxx< 8 >
 
struct  has_uintxx
 Has an unsigned integer of a specific size. More...
 
struct  has_value_type
 
struct  hresult_error_category
 
class  huffman_tree
 
class  icon_widget
 An simple GUI widget that displays an icon. More...
 
class  id_factory
 A factory for unique IDs. More...
 
class  indent
 Indentation for writing out text files. More...
 
class  io_error
 Exception thrown during I/O on an error. More...
 
struct  is_atomic
 
struct  is_atomic< std::atomic< T > >
 
struct  is_byte_like
 An array of this type will implicitly create objects within that array. More...
 
struct  is_byte_like< char >
 
struct  is_byte_like< char const >
 
struct  is_byte_like< std::byte >
 
struct  is_byte_like< std::byte const >
 
struct  is_byte_like< unsigned char >
 
struct  is_byte_like< unsigned char const >
 
struct  is_character
 
struct  is_character< char >
 
struct  is_character< char const >
 
struct  is_character< char16_t >
 
struct  is_character< char16_t const >
 
struct  is_character< char32_t >
 
struct  is_character< char32_t const >
 
struct  is_character< char8_t >
 
struct  is_character< char8_t const >
 
struct  is_character< wchar_t >
 
struct  is_character< wchar_t const >
 
struct  is_checkbox_widget_attribute
 
class  is_datum_type
 
class  is_datum_type< bool >
 
class  is_datum_type< bstring >
 
class  is_datum_type< double >
 
class  is_datum_type< long long >
 
class  is_datum_type< std::chrono::year_month_day >
 
class  is_datum_type< std::string >
 
struct  is_decayed_base_of
 
struct  is_decayed_derived_from
 
struct  is_derived_from
 
struct  is_forward_of
 Is context a form of the expected type. More...
 
struct  is_forward_of< Context, Expected * >
 
struct  is_forward_of< Context, Expected >
 
struct  is_forward_of< Context, Expected, FirstOtherExpected, OtherExpected... >
 
struct  is_forward_of< Context, observer< Expected > >
 
struct  is_forward_of< Context, Result(Args...)>
 
struct  is_forward_of< Context, std::shared_ptr< Expected > >
 
struct  is_forward_of< Context, std::unique_ptr< Expected > >
 
struct  is_forward_of< Context, std::weak_ptr< Expected > >
 
struct  is_numeric
 Is a numeric. More...
 
struct  is_numeric< double >
 
struct  is_numeric< float >
 
struct  is_numeric< long double >
 
struct  is_numeric< signed char >
 
struct  is_numeric< signed int >
 
struct  is_numeric< signed long >
 
struct  is_numeric< signed long long >
 
struct  is_numeric< signed short >
 
struct  is_numeric< unsigned char >
 
struct  is_numeric< unsigned int >
 
struct  is_numeric< unsigned long >
 
struct  is_numeric< unsigned long long >
 
struct  is_numeric< unsigned short >
 
struct  is_numeric_integral
 Is a numeric integer. More...
 
struct  is_numeric_integral< signed char >
 
struct  is_numeric_integral< signed int >
 
struct  is_numeric_integral< signed long >
 
struct  is_numeric_integral< signed long long >
 
struct  is_numeric_integral< signed short >
 
struct  is_numeric_integral< unsigned char >
 
struct  is_numeric_integral< unsigned int >
 
struct  is_numeric_integral< unsigned long >
 
struct  is_numeric_integral< unsigned long long >
 
struct  is_numeric_integral< unsigned short >
 
struct  is_numeric_signed_integral
 Is a numeric signed integer. More...
 
struct  is_numeric_signed_integral< signed char >
 
struct  is_numeric_signed_integral< signed int >
 
struct  is_numeric_signed_integral< signed long >
 
struct  is_numeric_signed_integral< signed long long >
 
struct  is_numeric_signed_integral< signed short >
 
struct  is_numeric_unsigned_integral
 Is a numeric unsigned integer. More...
 
struct  is_numeric_unsigned_integral< unsigned char >
 
struct  is_numeric_unsigned_integral< unsigned int >
 
struct  is_numeric_unsigned_integral< unsigned long >
 
struct  is_numeric_unsigned_integral< unsigned long long >
 
struct  is_numeric_unsigned_integral< unsigned short >
 
class  iso_15924
 ISO-15924 script code. More...
 
class  jsonpath
 
class  key_error
 
class  keyboard_bindings
 
struct  keyboard_target_data
 
class  label_widget
 The GUI widget displays and lays out text together with an icon. More...
 
class  language_tag
 The IETF BCP 47 language tag. More...
 
class  lean_vector
 Lean-vector with (SVO) short-vector-optimization. More...
 
class  length_quantity
 
struct  lexer_config
 
class  line_segment
 Line segment. More...
 
class  log
 
class  lookahead_iterator
 Lookahead iterator. More...
 
class  lookat
 Perspective transform. More...
 
struct  make_floatxx
 Make an floating point. More...
 
struct  make_floatxx< 32 >
 
struct  make_floatxx< 64 >
 
struct  make_intmax
 
struct  make_intmax< T >
 
struct  make_intxx
 Make an signed integer. More...
 
struct  make_intxx< 16 >
 
struct  make_intxx< 32 >
 
struct  make_intxx< 64 >
 
struct  make_intxx< 8 >
 
struct  make_promote
 
struct  make_string
 type-trait to convert a character to a string type. More...
 
struct  make_string< char >
 
struct  make_string< char16_t >
 
struct  make_string< char32_t >
 
struct  make_string< char8_t >
 
struct  make_string< wchar_t >
 
struct  make_string_view
 type-trait to convert a character to a string_view type. More...
 
struct  make_string_view< char >
 
struct  make_string_view< char16_t >
 
struct  make_string_view< char32_t >
 
struct  make_string_view< char8_t >
 
struct  make_string_view< wchar_t >
 
struct  make_uintxx
 Make an unsigned integer. More...
 
struct  make_uintxx< 16 >
 
struct  make_uintxx< 32 >
 
struct  make_uintxx< 64 >
 
struct  make_uintxx< 8 >
 
class  margins
 The left, bottom, right and top margins. More...
 
class  matrix2
 A 2D or 3D homogenius matrix for transforming homogenious vectors and points. More...
 
class  matrix3
 A 2D or 3D homogenius matrix for transforming homogenious vectors and points. More...
 
class  menu_button_widget
 Add menu-button around a small-button. More...
 
class  momentary_button_widget
 A momentary button widget. More...
 
struct  mouse_event_data
 Information for a mouse event. More...
 
class  not_found_error
 Exception thrown when an item was not found. More...
 
struct  number_of_data_members
 
struct  observable_msg
 
class  observed
 
class  observed_base
 An abstract observed object. More...
 
class  observer
 A observer pointing to the whole or part of a observed_base. More...
 
struct  observer_decay
 A type-trait for observer arguments. More...
 
struct  observer_decay< observer< T > & >
 
struct  observer_decay< observer< T > && >
 
struct  observer_decay< observer< T > >
 
struct  observer_decay< observer< T > const & >
 
class  operation_error
 Exception thrown during execution of a dynamic operation. More...
 
class  os_error
 Exception thrown during an operating system call. More...
 
struct  otype_fbyte_buf_t
 Open-type for 8 signed integer that must be scaled by the EM-scale. More...
 
struct  otype_fixed15_16_buf_t
 Open-type 16.16 signed fixed point, range between -32768.0 and 32767.999. More...
 
struct  otype_fixed1_14_buf_t
 Open-type 16-bit signed fraction, range between -2.0 and 1.999. More...
 
struct  otype_fuword_buf_t
 Open-type for 16 unsigned integer that must be scaled by the EM-scale. More...
 
struct  otype_fword_buf_t
 Open-type for 16 signed integer that must be scaled by the EM-scale. More...
 
struct  otype_glyf_component
 
class  overlay_widget
 A GUI widget which may exist anywhere on a window overlaid above any other widget. More...
 
struct  overloaded
 Helper type to turn a set of lambdas into a single overloaded type to pass to std::visit(). More...
 
class  parse_error
 Exception thrown during parsing on an error. More...
 
class  pcm_format
 
class  perspective
 Perspective transform. More...
 
struct  pickle
 Encode and decode a type to and from a UTF-8 string. More...
 
struct  pickle< bool >
 
struct  pickle< speaker_mapping >
 
struct  pickle< std::string >
 
struct  pickle< T >
 
struct  pixel_density
 
struct  PixelLengthDim
 
struct  Pixels
 
struct  PixelsPerEm
 
struct  PixelsPerInch
 
class  pixmap
 A 2D pixel-based image. More...
 
class  pixmap_span
 A non-owning 2D pixel-based image. More...
 
struct  plurality
 Plurality of a number. More...
 
class  png
 
struct  Points
 
struct  PointsPerEm
 
class  progress_sink
 A sink to read the current progress of a function. More...
 
class  progress_token
 Token to pass to a function to report its progress. More...
 
class  quad_color
 A color for each corner of a quad. More...
 
class  radio_delegate
 A radio delegate controls the state of a radio button widget. More...
 
class  radio_widget
 A GUI widget that permits the user to make a binary choice. More...
 
class  rectangle
 A rectangle / parallelogram in 3D space. More...
 
class  recursive_iterator
 An iterator which recursively iterates through nested containers. More...
 
struct  RelativeFontLengthDim
 
struct  remove_cvptr
 
class  rotate2
 
class  rotate3
 
class  row_column_layout
 
class  scale2
 
class  scale3
 
class  scroll_aperture_widget
 A scroll aperture widget. More...
 
class  scroll_bar_widget
 Scroll bar widget This widget is used in a pair of a vertical and horizontal scrollbar as a child of the scroll_widget. More...
 
class  scroll_widget
 The scroll widget allows a content widget to be shown in less space than is required. More...
 
class  selection_delegate
 A delegate that controls the state of a selection_widget. More...
 
class  selection_widget
 A graphical control element that allows the user to choose only one of a predefined set of mutually exclusive options. More...
 
struct  selector
 This selector allows access to member variable by name. More...
 
class  SHA2
 
class  SHA224
 
class  SHA256
 
class  SHA384
 
class  SHA512
 
class  SHA512_224
 
class  SHA512_256
 
struct  simd
 
class  spacer_widget
 This GUI widget is used as a spacer between other widget for layout purposes. More...
 
class  system_menu_widget
 The system menu widget. More...
 
class  tab_delegate
 A delegate that controls the state of a tab_widget. More...
 
class  tab_widget
 A graphical element that shows only one of a predefined set of mutually exclusive child widgets. More...
 
class  task_controller
 A task controller. More...
 
class  task_running_error
 
class  text_delegate
 A delegate that controls the state of a text_widget. More...
 
class  text_field_delegate
 A delegate that controls the state of a text_field_widget. More...
 
class  text_field_widget
 A single line text field. More...
 
class  text_widget
 A text widget. More...
 
class  theme_length
 
class  theme_variable
 
struct  three_way_comparison
 A functor to safely compare two arithmetic values. More...
 
struct  three_way_comparison< Lhs, Rhs >
 
class  toggle_delegate
 A button delegate controls the state of a button widget. More...
 
class  toggle_widget
 A GUI widget that permits the user to make a binary choice. More...
 
struct  token
 
class  toolbar_button_widget
 A momentary button used as a child in the toolbar. More...
 
class  toolbar_tab_button_widget
 A graphical control element that allows the user to choose only one of a predefined set of mutually exclusive views of a tab_widget. More...
 
class  toolbar_widget
 A toolbar widget is located at the top of a window and lays out its children horizontally. More...
 
struct  transform2
 
struct  transform2< matrix2 >
 
struct  transform2< rotate2 >
 
struct  transform2< scale2 >
 
struct  transform2< translate2 >
 
struct  transform3
 
struct  transform3< matrix3 >
 
struct  transform3< perspective >
 
struct  transform3< rotate3 >
 
struct  transform3< scale3 >
 
struct  transform3< translate3 >
 
class  translate2
 
class  translate3
 
struct  translation_key
 
class  txt
 A localizable message. More...
 
struct  type_documentation
 Documentation of a type. More...
 
struct  ucd_decomposition_info
 The decomposition info is used to determine how to decompose a code-point. More...
 
class  unfair_mutex_impl
 An unfair mutex This is a fast implementation of a mutex which does not fairly arbitrate between multiple blocking threads. More...
 
class  unfair_recursive_mutex
 An unfair recursive-mutex This is a fast implementation of a recursive-mutex which does not fairly arbitrate between multiple blocking threads. More...
 
struct  unusable_t
 A type that can not be constructed, copied, moved or destructed. More...
 
class  URI
 A Uniform Resource Identifier. More...
 
class  uri_error
 
class  URL
 Universal Resource Locator. More...
 
class  url_error
 
struct  use_first
 
struct  variant_decay
 Decays types for use as elements in std::variant. More...
 
struct  variant_decay< void >
 
class  vector2
 A high-level geometric vector Part of the high-level vector, point, mat and color types. More...
 
class  vector3
 A high-level geometric vector Part of the high-level vector, point, mat and color types. More...
 
class  weak_callback
 
class  weak_callback< ResultType(ArgTypes...)>
 
class  widget
 An interactive graphical object as part of the user-interface. More...
 
class  widget_intf
 
class  widget_layout
 The layout of a widget. More...
 
class  widget_state
 The state the widget is in. More...
 
class  win32_device_interface
 
struct  win32_error_category
 
class  win32_wave_device
 
class  window_controls_macos_widget
 Window control button widget. More...
 
class  window_controls_win32_widget
 Window control button widget. More...
 
class  window_widget
 The top-level window widget. More...
 
class  with_label_widget
 Add labels to a button. More...
 

Typedefs

using i8x1 = simd<int8_t, 1>
 
using i8x2 = simd<int8_t, 2>
 
using i8x4 = simd<int8_t, 4>
 
using i8x8 = simd<int8_t, 8>
 
using i8x16 = simd<int8_t, 16>
 
using i8x32 = simd<int8_t, 32>
 
using i8x64 = simd<int8_t, 64>
 
using u8x1 = simd<uint8_t, 1>
 
using u8x2 = simd<uint8_t, 2>
 
using u8x4 = simd<uint8_t, 4>
 
using u8x8 = simd<uint8_t, 8>
 
using u8x16 = simd<uint8_t, 16>
 
using u8x32 = simd<uint8_t, 32>
 
using u8x64 = simd<uint8_t, 64>
 
using i16x1 = simd<int16_t, 1>
 
using i16x2 = simd<int16_t, 2>
 
using i16x4 = simd<int16_t, 4>
 
using i16x8 = simd<int16_t, 8>
 
using i16x16 = simd<int16_t, 16>
 
using i16x32 = simd<int16_t, 32>
 
using u16x1 = simd<uint16_t, 1>
 
using u16x2 = simd<uint16_t, 2>
 
using u16x4 = simd<uint16_t, 4>
 
using u16x8 = simd<uint16_t, 8>
 
using u16x16 = simd<uint16_t, 16>
 
using u16x32 = simd<uint16_t, 32>
 
using f16x4 = simd<half, 4>
 
using i32x1 = simd<int32_t, 1>
 
using i32x2 = simd<int32_t, 2>
 
using i32x4 = simd<int32_t, 4>
 
using i32x8 = simd<int32_t, 8>
 
using i32x16 = simd<int32_t, 16>
 
using u32x1 = simd<uint32_t, 1>
 
using u32x2 = simd<uint32_t, 2>
 
using u32x4 = simd<uint32_t, 4>
 
using u32x8 = simd<uint32_t, 8>
 
using u32x16 = simd<uint32_t, 16>
 
using f32x1 = simd<float, 1>
 
using f32x2 = simd<float, 2>
 
using f32x4 = simd<float, 4>
 
using f32x8 = simd<float, 8>
 
using f32x16 = simd<float, 16>
 
using i64x1 = simd<int64_t, 1>
 
using i64x2 = simd<int64_t, 2>
 
using i64x4 = simd<int64_t, 4>
 
using i64x8 = simd<int64_t, 8>
 
using u64x1 = simd<uint64_t, 1>
 
using u64x2 = simd<uint64_t, 2>
 
using u64x4 = simd<uint64_t, 4>
 
using u64x8 = simd<uint64_t, 8>
 
using f64x1 = simd<double, 1>
 
using f64x2 = simd<double, 2>
 
using f64x4 = simd<double, 4>
 
using f64x8 = simd<double, 8>
 
using unfair_mutex = unfair_mutex_impl<true>
 
template<typename T >
using row_layout = row_column_layout<axis::x, T>
 
template<typename T >
using column_layout = row_column_layout<axis::y, T>
 
template<typename T >
using observer_decay_t = observer_decay<T>::type
 
using margin_left = theme_variable<"margin-left", theme_length>
 
using margin_right = theme_variable<"margin-right", theme_length>
 
using margin_top = theme_variable<"margin-top", theme_length>
 
using margin_bottom = theme_variable<"margin-bottom", theme_length>
 
using margin = theme_variable<"margin", theme_length_quad>
 
using dips_d = au::Quantity<Dips, double>
 
using dips_f = au::Quantity<Dips, float>
 
using dips_i = au::Quantity<Dips, int>
 
using dips_per_em_d = au::Quantity<DipsPerEm, double>
 
using dips_per_em_f = au::Quantity<DipsPerEm, float>
 
using dips_per_em_i = au::Quantity<DipsPerEm, int>
 
using dips_per_em_s = au::Quantity<DipsPerEm, short>
 
using em_squares_d = au::Quantity<EmSquares, double>
 
using em_squares_f = au::Quantity<EmSquares, float>
 
using em_squares_i = au::Quantity<EmSquares, int>
 
template<typename T >
using font_size_variant = std::variant<au::Quantity<PointsPerEm, T>, au::Quantity<PixelsPerEm, T>, au::Quantity<DipsPerEm, T>>
 
using font_size_f = font_size_quantity<float>
 
using font_size_s = font_size_quantity<short>
 
template<typename T >
using length_variant
 
using length_f = length_quantity<float>
 
using length_s = length_quantity<short>
 
using pixels_d = au::Quantity<Pixels, double>
 
using pixels_f = au::Quantity<Pixels, float>
 
using pixels_i = au::Quantity<Pixels, int>
 
using pixels_per_em_d = au::Quantity<PixelsPerEm, double>
 
using pixels_per_em_f = au::Quantity<PixelsPerEm, float>
 
using pixels_per_em_i = au::Quantity<PixelsPerEm, int>
 
using pixels_per_em_s = au::Quantity<PixelsPerEm, short>
 
using pixels_per_inch_d = au::Quantity<PixelsPerInch, double>
 
using pixels_per_inch_f = au::Quantity<PixelsPerInch, float>
 
using pixels_per_inch_i = au::Quantity<PixelsPerInch, int>
 
using points_d = au::Quantity<Points, double>
 
using points_f = au::Quantity<Points, float>
 
using points_i = au::Quantity<Points, int>
 
using points_s = au::Quantity<Points, short>
 
using points_per_em_d = au::Quantity<PointsPerEm, double>
 
using points_per_em_f = au::Quantity<PointsPerEm, float>
 
using points_per_em_i = au::Quantity<PointsPerEm, int>
 
using points_per_em_s = au::Quantity<PointsPerEm, short>
 
using big_uint64_buf_t = endian_buf_t<uint64_t, std::endian::big, 1>
 
using big_uint32_buf_t = endian_buf_t<uint32_t, std::endian::big, 1>
 
using big_uint16_buf_t = endian_buf_t<uint16_t, std::endian::big, 1>
 
using big_int64_buf_t = endian_buf_t<int64_t, std::endian::big, 1>
 
using big_int32_buf_t = endian_buf_t<int32_t, std::endian::big, 1>
 
using big_int16_buf_t = endian_buf_t<int16_t, std::endian::big, 1>
 
using little_uint64_buf_t = endian_buf_t<uint64_t, std::endian::little, 1>
 
using little_uint32_buf_t = endian_buf_t<uint32_t, std::endian::little, 1>
 
using little_uint16_buf_t = endian_buf_t<uint16_t, std::endian::little, 1>
 
using little_int64_buf_t = endian_buf_t<int64_t, std::endian::little, 1>
 
using little_int32_buf_t = endian_buf_t<int32_t, std::endian::little, 1>
 
using little_int16_buf_t = endian_buf_t<int16_t, std::endian::little, 1>
 
using native_uint64_buf_t = endian_buf_t<uint64_t, std::endian::native, 1>
 
using native_uint32_buf_t = endian_buf_t<uint32_t, std::endian::native, 1>
 
using native_uint16_buf_t = endian_buf_t<uint16_t, std::endian::native, 1>
 
using native_int64_buf_t = endian_buf_t<int64_t, std::endian::native, 1>
 
using native_int32_buf_t = endian_buf_t<int32_t, std::endian::native, 1>
 
using native_int16_buf_t = endian_buf_t<int16_t, std::endian::native, 1>
 
using big_uint64_buf_at = endian_buf_t<uint64_t, std::endian::big>
 
using big_uint32_buf_at = endian_buf_t<uint32_t, std::endian::big>
 
using big_uint16_buf_at = endian_buf_t<uint16_t, std::endian::big>
 
using big_int64_buf_at = endian_buf_t<int64_t, std::endian::big>
 
using big_int32_buf_at = endian_buf_t<int32_t, std::endian::big>
 
using big_int16_buf_at = endian_buf_t<int16_t, std::endian::big>
 
using little_uint64_buf_at = endian_buf_t<uint64_t, std::endian::little>
 
using little_uint32_buf_at = endian_buf_t<uint32_t, std::endian::little>
 
using little_uint16_buf_at = endian_buf_t<uint16_t, std::endian::little>
 
using little_int64_buf_at = endian_buf_t<int64_t, std::endian::little>
 
using little_int32_buf_at = endian_buf_t<int32_t, std::endian::little>
 
using little_int16_buf_at = endian_buf_t<int16_t, std::endian::little>
 
using native_uint64_buf_at = endian_buf_t<uint64_t, std::endian::native>
 
using native_uint32_buf_at = endian_buf_t<uint32_t, std::endian::native>
 
using native_uint16_buf_at = endian_buf_t<uint16_t, std::endian::native>
 
using native_int64_buf_at = endian_buf_t<int64_t, std::endian::native>
 
using native_int32_buf_at = endian_buf_t<int32_t, std::endian::native>
 
using native_int16_buf_at = endian_buf_t<int16_t, std::endian::native>
 
template<typename T >
using enum_metadata_name_t = enum_metadata_name<T>::type
 
using ssize_t = std::ptrdiff_t
 Signed size/index into an array.
 
template<typename T >
using make_string_t = typename make_string<T>::type
 type-trait to convert a character to a string type.
 
template<typename T >
using make_string_view_t = typename make_string_view<T>::type
 type-trait to convert a character to a string_view type.
 
template<typename T , typename U >
using make_promote_t = typename make_promote<T, U>::type
 
template<typename T >
using make_intmax_t = typename make_intmax<T>::type
 
template<std::size_t N>
using make_intxx_t = typename make_intxx<N>::type
 
template<std::size_t N>
using make_uintxx_t = typename make_uintxx<N>::type
 
template<std::size_t N>
using make_floatxx_t = typename make_floatxx<N>::type
 
template<typename T >
using remove_cvptr_t = remove_cvptr<T>::type
 
template<typename To , typename From >
using copy_cv_t = typename copy_cv<To, From>::type
 Type-trait to copy const volatile qualifiers from one type to another.
 
template<typename First , typename Second >
using use_first_t = use_first<First, Second>
 
template<typename Context >
using forward_copy_or_ref_t = forward_copy_or_ref<Context>::type
 
template<typename T >
using variant_decay_t = variant_decay<T>::type
 
template<typename FuncType , typename... ArgTypes>
using default_async_delegate_result_type
 
using async_with_label_widget = with_label_widget<async_widget>
 
using async_menu_button_widget = menu_button_widget<async_widget>
 
using checkbox_with_label_widget = with_label_widget<checkbox_widget>
 
using checkbox_menu_button_widget = menu_button_widget<checkbox_widget>
 
using radio_with_label_widget = with_label_widget<radio_widget>
 
using radio_menu_button_widget = menu_button_widget<radio_widget>
 
using vertical_scroll_widget = scroll_widget<axis::vertical>
 Vertical scroll widget.
 
using horizontal_scroll_widget = scroll_widget<axis::horizontal>
 Horizontal scroll widget.
 
using toggle_with_label_widget = with_label_widget<toggle_widget>
 

Enumerations

enum class  cpu_feature : uint8_t {
  cmov , cx8 , fpu , fxsr ,
  mmx , osfxsr , sce , sse ,
  sse2 , cx16 , lahf , popcnt ,
  sse3 , sse4_1 , sse4_2 , ssse3 ,
  avx , avx2 , bmi1 , bmi2 ,
  f16c , fma , lzcnt , movbe ,
  osxsave , avx512f , avx512bw , avx512cd ,
  avx512dq , avx512vl , avx512pf , avx512er ,
  sha , aes , pclmul , rdrnd ,
  rdseed
}
 Possible features of x86 CPUs. More...
 
enum class  cpu_feature_mask : uint64_t {
  none = 0 , cmov = 1 << cpu_feature::cmov , cx8 = 1 << cpu_feature::cx8 , fpu = 1 << cpu_feature::fpu ,
  fxsr = 1 << cpu_feature::fxsr , mmx = 1 << cpu_feature::mmx , osfxsr = 1 << cpu_feature::osfxsr , sce = 1 << cpu_feature::sce ,
  sse = 1 << cpu_feature::sse , sse2 = 1 << cpu_feature::sse2 , x86_64_v1 = cmov | cx8 | fpu | fxsr | mmx | osfxsr | sce | sse | sse2 , cx16 = 1 << cpu_feature::cx16 ,
  lahf = 1 << cpu_feature::lahf , popcnt = 1 << cpu_feature::popcnt , sse3 = 1 << cpu_feature::sse3 , sse4_1 = 1 << cpu_feature::sse4_1 ,
  sse4_2 = 1 << cpu_feature::sse4_2 , ssse3 = 1 << cpu_feature::ssse3 , x86_64_v2 = x86_64_v1 | cx16 | lahf | popcnt | sse3 | sse4_1 | sse4_2 | ssse3 , avx = 1 << cpu_feature::avx ,
  avx2 = 1 << cpu_feature::avx2 , bmi1 = 1 << cpu_feature::bmi1 , bmi2 = 1 << cpu_feature::bmi2 , f16c = 1 << cpu_feature::f16c ,
  fma = 1 << cpu_feature::fma , lzcnt = 1 << cpu_feature::lzcnt , movbe = 1 << cpu_feature::movbe , osxsave = 1 << cpu_feature::osxsave ,
  x86_64_v3 = x86_64_v2 | avx | avx2 | bmi1 | bmi2 | f16c | fma | lzcnt | movbe | osxsave , avx512f = 1 << cpu_feature::avx512f , avx512bw = 1 << cpu_feature::avx512bw , avx512cd = 1 << cpu_feature::avx512cd ,
  avx512dq = 1 << cpu_feature::avx512dq , avx512vl = 1 << cpu_feature::avx512vl , x86_64_v4 = x86_64_v3 | avx512f | avx512bw | avx512cd | avx512dq | avx512vl , avx512pf = 1 << cpu_feature::avx512pf ,
  avx512er = 1 << cpu_feature::avx512er , sha = 1 << cpu_feature::sha , aes = 1 << cpu_feature::aes , pclmul = 1 << cpu_feature::pclmul ,
  rdrnd = 1 << cpu_feature::rdrnd , rdseed = 1 << cpu_feature::rdseed
}
 A mask of features. More...
 
enum class  audio_block_state { normal , silent , corrupt }
 
enum class  audio_device_state {
  uninitialized , active , disabled , not_present ,
  unplugged
}
 
enum class  audio_direction : unsigned char { none = 0b00 , input = 0b01 , output = 0b10 , bidirectional = 0b11 }
 
enum class  speaker_mapping : uint32_t {
  none = 0 , front_left = 0x0'0001 , front_right = 0x0'0002 , front_center = 0x0'0004 ,
  low_frequency = 0x0'0008 , back_left = 0x0'0010 , back_right = 0x0'0020 , front_left_of_center = 0x0'0040 ,
  front_right_of_center = 0x0'0080 , back_center = 0x0'0100 , side_left = 0x0'0200 , side_right = 0x0'0400 ,
  top_center = 0x0'0800 , top_front_left = 0x0'1000 , top_front_center = 0x0'2000 , top_front_right = 0x0'4000 ,
  top_back_left = 0x0'8000 , top_back_center = 0x1'0000 , top_back_right = 0x2'0000 , mono_1_0 = front_center ,
  stereo_2_0 = front_left | front_right , stereo_2_1 = stereo_2_0 | low_frequency , stereo_3_0 = stereo_2_0 | front_center , stereo_3_1 = stereo_3_0 | low_frequency ,
  quad_4_0 = stereo_2_0 | back_left | back_right , quad_side_4_0 = stereo_2_0 | side_left | side_right , hexagonal_6_0 = quad_4_0 | front_center | back_center , hexagonal_6_1 = hexagonal_6_0 | low_frequency ,
  octagonal_8_0 = hexagonal_6_0 | side_left | side_right , surround_3_0 = stereo_2_0 | back_center , surround_4_0 = surround_3_0 | front_center , surround_4_1 = surround_4_0 | low_frequency ,
  surround_5_0 = quad_4_0 | front_center , surround_5_1 = surround_5_0 | low_frequency , surround_7_0 = surround_5_0 | side_left | side_right , surround_7_1 = surround_7_0 | low_frequency ,
  surround_9_0 = surround_7_0 | top_front_left | top_front_right , surround_9_1 = surround_9_0 | low_frequency , surround_11_0 = surround_9_0 | front_left_of_center | front_right_of_center , surround_11_1 = surround_11_0 | low_frequency ,
  surround_side_5_0 = quad_side_4_0 | front_center , surround_side_5_1 = surround_side_5_0 | low_frequency , surround_side_6_0 = surround_side_5_0 | back_center , surround_side_6_1 = surround_side_6_0 | low_frequency ,
  surround_side_7_0 = surround_side_5_0 | front_left_of_center | front_right_of_center , surround_side_7_1 = surround_side_7_0 | low_frequency , surround_wide_6_0 = surround_4_0 | front_left_of_center | front_right_of_center , surround_wide_6_1 = surround_wide_6_0 | low_frequency ,
  surround_wide_7_0 = surround_5_0 | front_left_of_center | front_right_of_center , surround_wide_7_1 = surround_wide_7_0 | low_frequency , surround_atmos_5_1_4 = surround_5_1 | top_front_left | top_front_right | top_back_left | top_back_right , surround_atmos_7_1_4 = surround_7_1 | top_front_left | top_front_right | top_back_left | top_back_right
}
 
enum class  surround_mode : uint64_t {
  none = 0 , mono_1_0 = uint64_t{1} << 0 , stereo_2_0 = uint64_t{1} << 1 , stereo_2_1 = uint64_t{1} << 2 ,
  stereo_3_0 = uint64_t{1} << 3 , stereo_3_1 = uint64_t{1} << 4 , quad_4_0 = uint64_t{1} << 5 , quad_side_4_0 = uint64_t{1} << 6 ,
  hexagonal_6_0 = uint64_t{1} << 7 , hexagonal_6_1 = uint64_t{1} << 8 , octagonal_8_0 = uint64_t{1} << 9 , surround_3_0 = uint64_t{1} << 10 ,
  surround_4_0 = uint64_t{1} << 11 , surround_4_1 = uint64_t{1} << 12 , surround_5_0 = uint64_t{1} << 13 , surround_5_1 = uint64_t{1} << 14 ,
  surround_7_0 = uint64_t{1} << 15 , surround_7_1 = uint64_t{1} << 16 , surround_9_0 = uint64_t{1} << 17 , surround_9_1 = uint64_t{1} << 18 ,
  surround_11_0 = uint64_t{1} << 19 , surround_11_1 = uint64_t{1} << 20 , surround_side_5_0 = uint64_t{1} << 21 , surround_side_5_1 = uint64_t{1} << 22 ,
  surround_side_6_0 = uint64_t{1} << 23 , surround_side_6_1 = uint64_t{1} << 24 , surround_side_7_0 = uint64_t{1} << 25 , surround_side_7_1 = uint64_t{1} << 26 ,
  surround_wide_6_0 = uint64_t{1} << 27 , surround_wide_6_1 = uint64_t{1} << 28 , surround_wide_7_0 = uint64_t{1} << 29 , surround_wide_7_1 = uint64_t{1} << 30 ,
  surround_atmos_5_1_4 = uint64_t{1} << 31 , surround_atmos_7_1_4 = uint64_t{1} << 32
}
 
enum class  semantic_color : unsigned char {
  blue , green , indigo , orange ,
  pink , purple , red , teal ,
  yellow , gray , gray2 , gray3 ,
  gray4 , gray5 , gray6 , foreground ,
  border , fill , accent , text_select ,
  primary_cursor , secondary_cursor
}
 Semantic colors. More...
 
enum class  global_state_type : uint64_t {
  log_debug = 0x01 , log_info = 0x02 , log_statistics = 0x04 , log_trace = 0x08 ,
  log_audit = 0x10 , log_warning = 0x20 , log_error = 0x40 , log_fatal = 0x80 ,
  log_mask = log_debug | log_info | log_statistics | log_trace | log_audit | log_warning | log_error | log_fatal , log_level_default = log_audit | log_error | log_fatal , log_level_fatal = log_audit | log_fatal , log_level_error = log_trace | log_error | log_level_fatal ,
  log_level_warning = log_warning | log_level_error , log_level_info = log_info | log_statistics | log_level_warning , log_level_debug = log_debug | log_level_info , log_is_running = 0x1'00 ,
  time_stamp_utc_is_running = 0x2'00 , system_is_running = 0x1'000000'00 , system_is_shutting_down = 0x2'000000'00 , system_mask = system_is_running | system_is_shutting_down
}
 The flag-type used for global state. More...
 
enum class  cancel_features_type { none = 0 , stop = 1 , progress = 2 , stop_and_progress = 3 }
 Features of an invocable. More...
 
enum class  access_mode {
  access_mode::read = 0x1 , access_mode::write = 0x2 , access_mode::rename = 0x4 , access_mode::read_lock = 0x10 ,
  access_mode::write_lock = 0x20 , access_mode::open = 0x100 , access_mode::create = 0x200 , access_mode::truncate = 0x400 ,
  access_mode::random = 0x1000 , access_mode::sequential = 0x2000 , access_mode::no_reuse = 0x4000 , access_mode::write_through = 0x8000 ,
  access_mode::create_directories = 0x10000 , access_mode::open_for_read = open | read , access_mode::open_for_read_and_write = open | read | write , truncate_or_create_for_write = create_directories | open | create | truncate | write
}
 The mode in which way to open a file. More...
 
enum class  seek_whence { seek_whence::begin , seek_whence::current , seek_whence::end }
 The position in the file to seek from. More...
 
enum class  font_style { normal = 0 , italic = 1 , oblique = 1 }
 The different styles a font-family comes with. More...
 
enum class  vertical_alignment : uint8_t { vertical_alignment::none = 0 , vertical_alignment::top = 1 , vertical_alignment::middle = 2 , vertical_alignment::bottom = 3 }
 Vertical alignment. More...
 
enum class  horizontal_alignment : uint8_t {
  horizontal_alignment::none = 0 , horizontal_alignment::flush = 1 , horizontal_alignment::left = 2 , horizontal_alignment::center = 3 ,
  horizontal_alignment::justified = 4 , horizontal_alignment::right = 5
}
 Horizontal alignment. More...
 
enum class  axis : unsigned char {
  none = 0 , x = 1 , y = 2 , z = 4 ,
  both = x | y , all = x | y | z , horizontal = x , vertical = y
}
 An enumeration of the 3 axis for 3D geometry. More...
 
enum class  line_end_cap { line_end_cap::flat , line_end_cap::round }
 The way two lines should be joined. More...
 
enum class  line_join_style { line_join_style::none , line_join_style::bevel , line_join_style::miter , line_join_style::round }
 The way two lines should be joined. More...
 
enum class  border_side { on , inside , outside }
 The side where the border is drawn. More...
 
enum class  gui_event_type {
  none , keyboard_down , keyboard_up , keyboard_grapheme ,
  keyboard_partial_grapheme , keyboard_enter , keyboard_exit , mouse_move ,
  mouse_drag , mouse_down , mouse_up , mouse_wheel ,
  mouse_enter , mouse_exit , mouse_exit_window , gui_event_type::window_redraw ,
  gui_event_type::window_relayout , gui_event_type::window_reconstrain , gui_event_type::window_resize , gui_event_type::window_minimize ,
  gui_event_type::window_maximize , gui_event_type::window_normalize , gui_event_type::window_close , gui_event_type::window_open_sysmenu ,
  gui_event_type::window_set_keyboard_target , gui_event_type::window_set_clipboard , gui_event_type::window_activate , gui_event_type::window_deactivate ,
  text_cursor_left_char , text_cursor_right_char , text_cursor_down_char , text_cursor_up_char ,
  text_cursor_left_word , text_cursor_right_word , text_cursor_begin_line , text_cursor_end_line ,
  text_cursor_begin_sentence , text_cursor_end_sentence , text_cursor_begin_document , text_cursor_end_document ,
  text_select_left_char , text_select_right_char , text_select_down_char , text_select_up_char ,
  text_select_word , text_select_left_word , text_select_right_word , text_select_begin_line ,
  text_select_end_line , text_select_begin_sentence , text_select_end_sentence , text_select_document ,
  text_select_begin_document , text_select_end_document , text_delete_char_prev , text_delete_char_next ,
  text_delete_word_prev , text_delete_word_next , text_swap_chars , text_edit_paste ,
  text_edit_copy , text_edit_cut , text_undo , text_redo ,
  text_insert_line , text_insert_line_up , text_insert_line_down , text_mode_insert ,
  gui_widget_next , gui_widget_prev , gui_menu_next , gui_menu_prev ,
  gui_toolbar_open , gui_toolbar_next , gui_toolbar_prev , gui_activate ,
  gui_activate_stay , gui_activate_next , gui_cancel
}
 GUI event type. More...
 
enum class  gui_event_variant {
  gui_event_variant::other , gui_event_variant::mouse , gui_event_variant::keyboard , gui_event_variant::keyboard_target ,
  gui_event_variant::grapheme , gui_event_variant::rectangle , gui_event_variant::clipboard_data
}
 A granular gui event type. More...
 
enum class  widget_id : uint32_t
 
enum class  transform_command { level , increment , menu_item , overlay }
 
enum class  widget_mode {
  widget_mode::collapse = 0 , widget_mode::invisible = 1 , widget_mode::disabled = 2 , widget_mode::display = 3 ,
  widget_mode::select = 4 , widget_mode::partial = 5 , widget_mode::enabled = 6
}
 The mode that the widget is operating at. More...
 
enum class  widget_value { off = 0 , on = 1 , other = 2 }
 
enum class  widget_phase { inactive = 0 , normal = 1 , hover = 2 , pressed = 3 }
 
enum class  unicode_bidi_class : uint8_t {
  ON = 0 , L = 1 , R = 2 , BN = 3 ,
  S = 4 , B = 5 , WS = 6 , ET = 7 ,
  ES = 8 , CS = 9 , EN = 10 , NSM = 11 ,
  AN = 12 , AL = 13 , LRE = 14 , RLE = 15 ,
  PDF = 16 , LRO = 17 , RLO = 18 , LRI = 19 ,
  RLI = 20 , FSI = 21 , PDI = 22
}
 Bidirectional class Unicode Standard Annex #9: https://unicode.org/reports/tr9/. More...
 
enum class  unicode_bidi_paired_bracket_type : uint8_t { n = 0 , o = 1 , c = 2 }
 
enum class  unicode_decomposition_type : uint8_t {
  canonical = 0 , noBreak = 1 , compat = 2 , super = 3 ,
  fraction = 4 , sub = 5 , font = 6 , circle = 7 ,
  wide = 8 , vertical = 9 , square = 10 , isolated = 11 ,
  _final = 12 , initial = 13 , medial = 14 , small = 15 ,
  narrow = 16
}
 The decomposition type determines if a code-point should be decomposed canonically or for a compatibility. More...
 
enum class  unicode_east_asian_width : uint8_t {
  N = 0 , Na = 1 , A = 2 , W = 3 ,
  H = 4 , F = 5
}
 
enum class  unicode_general_category : uint8_t {
  Cn = 0 , Cc = 1 , Cf = 2 , Co = 3 ,
  Cs = 4 , Ll = 5 , Lm = 6 , Lo = 7 ,
  Lt = 8 , Lu = 9 , Mc = 10 , Me = 11 ,
  Mn = 12 , Nd = 13 , Nl = 14 , No = 15 ,
  Pc = 16 , Pd = 17 , Pe = 18 , Pf = 19 ,
  Pi = 20 , Po = 21 , Ps = 22 , Sc = 23 ,
  Sk = 24 , Sm = 25 , So = 26 , Zl = 27 ,
  Zp = 28 , Zs = 29
}
 
enum class  unicode_grapheme_cluster_break : uint8_t {
  Other = 0 , Control = 1 , LF = 2 , CR = 3 ,
  Extended_Pictographic = 4 , Extend = 5 , Prepend = 6 , SpacingMark = 7 ,
  L = 8 , V = 9 , T = 10 , ZWJ = 11 ,
  LV = 12 , LVT = 13 , Regional_Indicator = 14
}
 
enum class  unicode_lexical_class : uint8_t {
  other = 0 , id_continue = 1 , id_start = 2 , syntax = 3 ,
  white_space = 4
}
 
enum class  unicode_line_break_class : uint8_t {
  XX = 0 , CM = 1 , BA = 2 , LF = 3 ,
  BK = 4 , CR = 5 , SP = 6 , EX = 7 ,
  QU = 8 , AL = 9 , PR = 10 , PO = 11 ,
  OP = 12 , CP = 13 , IS = 14 , HY = 15 ,
  SY = 16 , NU = 17 , CL = 18 , NL = 19 ,
  GL = 20 , AI = 21 , BB = 22 , HL = 23 ,
  SA = 24 , JL = 25 , JV = 26 , JT = 27 ,
  NS = 28 , ZW = 29 , ZWJ = 30 , B2 = 31 ,
  IN = 32 , WJ = 33 , ID = 34 , EB = 35 ,
  CJ = 36 , H2 = 37 , H3 = 38 , SG = 39 ,
  CB = 40 , RI = 41 , EM = 42
}
 Unicode line break class. More...
 
enum class  unicode_script : uint16_t {
  Adlam = 166 , Ahom = 338 , Anatolian_Hieroglyphs = 80 , Arabic = 160 ,
  Armenian = 230 , Avestan = 134 , Balinese = 360 , Bamum = 435 ,
  Bassa_Vah = 259 , Batak = 365 , Bengali = 325 , Bhaiksuki = 334 ,
  Bopomofo = 285 , Brahmi = 300 , Braille = 570 , Buginese = 367 ,
  Buhid = 372 , Canadian_Aboriginal = 440 , Carian = 201 , Caucasian_Albanian = 239 ,
  Chakma = 349 , Cham = 358 , Cherokee = 445 , Chorasmian = 109 ,
  Common = 994 , Coptic = 204 , Cuneiform = 20 , Cypriot = 403 ,
  Cypro_Minoan = 402 , Cyrillic = 220 , Deseret = 250 , Devanagari = 315 ,
  Dives_Akuru = 342 , Dogra = 328 , Duployan = 755 , Egyptian_Hieroglyphs = 50 ,
  Elbasan = 226 , Elymaic = 128 , Ethiopic = 430 , Georgian = 240 ,
  Glagolitic = 225 , Gothic = 206 , Grantha = 343 , Greek = 200 ,
  Gujarati = 320 , Gunjala_Gondi = 312 , Gurmukhi = 310 , Han = 500 ,
  Hangul = 286 , Hanifi_Rohingya = 167 , Hanunoo = 371 , Hatran = 127 ,
  Hebrew = 125 , Hiragana = 410 , Imperial_Aramaic = 124 , Inherited = 994 ,
  Inscriptional_Pahlavi = 131 , Inscriptional_Parthian = 130 , Javanese = 361 , Kaithi = 317 ,
  Kannada = 345 , Katakana = 411 , Kawi = 368 , Kayah_Li = 357 ,
  Kharoshthi = 305 , Khitan_Small_Script = 288 , Khmer = 355 , Khojki = 322 ,
  Khudawadi = 318 , Lao = 356 , Latin = 215 , Lepcha = 335 ,
  Limbu = 336 , Linear_A = 400 , Linear_B = 401 , Lisu = 399 ,
  Lycian = 202 , Lydian = 116 , Mahajani = 314 , Makasar = 366 ,
  Malayalam = 347 , Mandaic = 140 , Manichaean = 139 , Marchen = 332 ,
  Masaram_Gondi = 313 , Medefaidrin = 265 , Meetei_Mayek = 337 , Mende_Kikakui = 438 ,
  Meroitic_Cursive = 101 , Meroitic_Hieroglyphs = 100 , Miao = 282 , Modi = 324 ,
  Mongolian = 145 , Mro = 264 , Multani = 323 , Myanmar = 350 ,
  Nabataean = 159 , Nag_Mundari = 295 , Nandinagari = 311 , New_Tai_Lue = 354 ,
  Newa = 333 , Nko = 165 , Nushu = 499 , Nyiakeng_Puachue_Hmong = 451 ,
  Ogham = 212 , Ol_Chiki = 261 , Old_Hungarian = 176 , Old_Italic = 210 ,
  Old_North_Arabian = 106 , Old_Permic = 227 , Old_Persian = 30 , Old_Sogdian = 142 ,
  Old_South_Arabian = 105 , Old_Turkic = 175 , Old_Uyghur = 143 , Oriya = 327 ,
  Osage = 219 , Osmanya = 260 , Pahawh_Hmong = 450 , Palmyrene = 126 ,
  Pau_Cin_Hau = 263 , Phags_Pa = 331 , Phoenician = 115 , Psalter_Pahlavi = 132 ,
  Rejang = 363 , Runic = 211 , Samaritan = 123 , Saurashtra = 344 ,
  Sharada = 319 , Shavian = 281 , Siddham = 302 , SignWriting = 95 ,
  Sinhala = 348 , Sogdian = 141 , Sora_Sompeng = 398 , Soyombo = 329 ,
  Sundanese = 362 , Syloti_Nagri = 316 , Syriac = 135 , Tagalog = 370 ,
  Tagbanwa = 373 , Tai_Le = 353 , Tai_Tham = 351 , Tai_Viet = 359 ,
  Takri = 321 , Tamil = 346 , Tangsa = 520 , Tangut = 520 ,
  Telugu = 340 , Thaana = 170 , Thai = 352 , Tibetan = 330 ,
  Tifinagh = 120 , Tirhuta = 326 , Toto = 294 , Ugaritic = 40 ,
  Vai = 470 , Vithkuqi = 228 , Wancho = 283 , Warang_Citi = 262 ,
  Yezidi = 192 , Yi = 460 , Zanabazar_Square = 339 , Zzzz = 0
}
 
enum class  unicode_sentence_break_property : uint8_t {
  Other = 0 , Sp = 1 , LF = 2 , CR = 3 ,
  STerm = 4 , Close = 5 , SContinue = 6 , ATerm = 7 ,
  Numeric = 8 , Upper = 9 , Lower = 10 , Sep = 11 ,
  Format = 12 , OLetter = 13 , Extend = 14
}
 
enum class  unicode_word_break_property : uint8_t {
  Other = 0 , LF = 1 , Newline = 2 , CR = 3 ,
  WSegSpace = 4 , Double_Quote = 5 , Single_Quote = 6 , MidNum = 7 ,
  MidNumLet = 8 , Numeric = 9 , MidLetter = 10 , ALetter = 11 ,
  ExtendNumLet = 12 , Format = 13 , Extend = 14 , Hebrew_Letter = 15 ,
  ZWJ = 16 , Katakana = 17 , Regional_Indicator = 18
}
 
enum class  plurality_value : uint8_t {
  zero = 0 , one = 1 , two = 2 , few = 3 ,
  many = 4 , other = 5
}
 The plurality value of a cardinal or ordinal number. More...
 
enum class  plurality_mask : uint8_t {
  zero = 1 << std::to_underlying(plurality_value::zero) , one = 1 << std::to_underlying(plurality_value::one) , two = 1 << std::to_underlying(plurality_value::two) , few = 1 << std::to_underlying(plurality_value::few) ,
  many = 1 << std::to_underlying(plurality_value::many) , other = 1 << std::to_underlying(plurality_value::other)
}
 A mask of plurality values that this language supports. More...
 
enum class  device_type : unsigned char {
  desktop = 120 , server = 121 , watch = 160 , phone = 161 ,
  tablet = 162 , game_console = 208 , television = 209
}
 The device type this application is running on. More...
 
enum class  dialog_button {
  no , yes , cancel , ok ,
  retry , _continue
}
 
enum class  dialog_button_mask : uint64_t {
  no = 1 << dialog_button::no , yes = 1 << dialog_button::yes , cancel = 1 << dialog_button::cancel , ok = 1 << dialog_button::ok ,
  retry = 1 << dialog_button::retry , _continue = 1 << dialog_button::_continue , cancel_retry_continue = cancel | retry | _continue , yes_no = yes | no ,
  ok_cancel = ok | cancel , retry_cancel = retry | cancel , yes_no_cancel = yes | no | cancel
}
 
enum class  policy { unspecified , low_power , high_performance }
 The performance policy to use. More...
 
enum class  hresult_error : int32_t { ok = S_OK , unspecified_error = E_FAIL , invalid_argument = E_INVALIDARG }
 
enum class  win32_error : uint32_t {
  success = ERROR_SUCCESS , file_not_found = ERROR_FILE_NOT_FOUND , more_data = ERROR_MORE_DATA , invalid_data = ERROR_INVALID_DATA ,
  insufficient_buffer = ERROR_INSUFFICIENT_BUFFER , status_pending = STATUS_PENDING , not_supported = ERROR_NOT_SUPPORTED , invalid_parameter = ERROR_INVALID_PARAMETER
}
 

Functions

constexpr auto cpu_feature_metadata_init () noexcept
 
template<std::integral Lhs>
constexpr unsigned long long operator<< (Lhs const &lhs, cpu_feature const &rhs)
 
constexpr cpu_feature_mask operator| (cpu_feature_mask const &lhs, cpu_feature_mask const &rhs) noexcept
 
constexpr cpu_feature_mask operator& (cpu_feature_mask const &lhs, cpu_feature_mask const &rhs) noexcept
 
constexpr cpu_feature_mask operator- (cpu_feature_mask const &lhs, cpu_feature_mask const &rhs) noexcept
 
constexpr bool to_bool (cpu_feature_mask const &rhs) noexcept
 
constexpr cpu_feature_mask operator| (cpu_feature_mask const &lhs, cpu_feature const &rhs) noexcept
 
constexpr cpu_feature_mask operator& (cpu_feature_mask const &lhs, cpu_feature const &rhs) noexcept
 
constexpr cpu_feature_maskoperator|= (cpu_feature_mask &lhs, cpu_feature const &rhs) noexcept
 
cpu_id_result cpu_id (uint32_t leaf_id, uint32_t index=0) noexcept
 A generic x86 cpu-id instruction.
 
cpu_feature_mask cpu_features () noexcept
 Get a list of features of the current CPU.
 
bool has_cmov () noexcept
 This CPU has the CMOV (Conditional Move) instruction.
 
bool has_cx8 () noexcept
 This CPU has the CMPXCG8 (Compare and exchange 8 bytes) instruction.
 
bool has_fpu () noexcept
 This CPU has a floating-point co-processor.
 
bool has_fxsr () noexcept
 This CPU has the fxsave instruction.
 
bool has_osfxsr () noexcept
 This operating system uses the FXSAVE instruction.
 
bool has_sce () noexcept
 This operating system uses the SYSCALL instruction.
 
bool has_mmx () noexcept
 This CPU has the MMX instruction set.
 
bool has_sse () noexcept
 This CPU has the SSE instruction set.
 
bool has_sse2 () noexcept
 This CPU has the SSE2 instruction set.
 
bool has_x86_64_v1 () noexcept
 This CPU has all the features for x86-64-v1 microarchitecture level.
 
bool has_cx16 () noexcept
 This CPU has the CMPXCG16 (Compare and exchange 16 bytes) instruction.
 
bool has_lahf () noexcept
 This CPU has the LAHF and SAHF instructions.
 
bool has_popcnt () noexcept
 This CPU has the POPCNT instructions.
 
bool has_sse3 () noexcept
 This CPU has the SSE3 instruction set.
 
bool has_ssse3 () noexcept
 This CPU has the SSSE3 instruction set.
 
bool has_sse4_1 () noexcept
 This CPU has the SSE4.1 instruction set.
 
bool has_sse4_2 () noexcept
 This CPU has the SSE4.2 instruction set.
 
bool has_x86_64_v2 () noexcept
 This CPU has all the features for x86-64-v2 microarchitecture level.
 
bool has_f16c () noexcept
 This CPU has float-16 conversion instructions.
 
bool has_fma () noexcept
 This CPU has fused-multiply-accumulate instructions.
 
bool has_bmi1 () noexcept
 This CPU has the BMI1 instruction set.
 
bool has_bmi2 () noexcept
 This CPU has the BMI2 instruction set.
 
bool has_lzcnt () noexcept
 This CPU has the LZCNT instruction.
 
bool has_movbe () noexcept
 This CPU has the MOVBE (Move Big Endian) instruction.
 
bool has_osxsave () noexcept
 This operating system uses the SXSAVE instruction.
 
bool has_avx () noexcept
 This CPU has the AVX instruction set.
 
bool has_avx2 () noexcept
 This CPU has the AVX2 instruction set.
 
bool has_x86_64_v3 () noexcept
 This CPU has all the features for x86-64-v3 microarchitecture level.
 
bool has_avx512f () noexcept
 This CPU has the AVX512F instruction set.
 
bool has_avx512bw () noexcept
 This CPU has the AVX512BW instruction set.
 
bool has_avx512cd () noexcept
 This CPU has the AVX512CD instruction set.
 
bool has_avx512dq () noexcept
 This CPU has the AVX512DQ instruction set.
 
bool has_avx512vl () noexcept
 This CPU has the AVX512VL instruction set.
 
bool has_x86_64_v4 () noexcept
 This CPU has all the features for x86-64-v4 microarchitecture level.
 
bool has_avx512pf () noexcept
 This CPU has the AVX512PF instruction set.
 
bool has_avx512er () noexcept
 This CPU has the AVX512ER instruction set.
 
bool has_sha () noexcept
 This CPU has the SHA cryptographical secure hash instruction set.
 
bool has_aes () noexcept
 This CPU has the AES-NI block cypher instruction set.
 
bool has_pclmul () noexcept
 This CPU has the PCLMUL carry-less multiply instruction.
 
bool has_rdrnd () noexcept
 This CPU has the RDRAND on-chip random number generator instruction.
 
bool has_rdseed () noexcept
 This CPU has the RDSEED access to the conditioned on-chip entropy.
 
constexpr std::array< uint16_t, 4 > float_to_half_generic (std::array< float, 4 > a) noexcept
 
constexpr uint16_t float_to_half (float v) noexcept
 
constexpr std::array< uint16_t, 4 > float_to_half (std::array< float, 4 > v) noexcept
 
constexpr float half_to_float_generic (uint16_t u16) noexcept
 Convert half to float.
 
constexpr std::array< float, 4 > half_to_float (std::array< uint16_t, 4 > v) noexcept
 
constexpr float half_to_float (uint16_t v) noexcept
 
template<typename Container >
constexpr auto recursive_iterator_begin (Container &rhs) noexcept
 Get a recursive iterator from the begin of a recursive container.
 
template<typename Container >
constexpr auto recursive_iterator_end (Container &rhs) noexcept
 Get a recursive iterator from one beyond the end of a recursive container.
 
template<typename Container >
constexpr auto recursive_iterator_begin (Container const &rhs) noexcept
 Get a recursive iterator from the begin of a recursive container.
 
template<typename Container >
constexpr auto recursive_iterator_end (Container const &rhs) noexcept
 Get a recursive iterator from one beyond the end of a recursive container.
 
hi_export constexpr std::string_view to_string (audio_device_state const &rhs) noexcept
 
hi_export constexpr audio_direction operator& (audio_direction const &lhs, audio_direction const &rhs) noexcept
 
hi_export constexpr audio_direction operator| (audio_direction const &lhs, audio_direction const &rhs) noexcept
 
hi_export constexpr bool to_bool (audio_direction const &rhs) noexcept
 
hi_export bool win32_use_extensible (audio_stream_format x) noexcept
 
hi_export WAVEFORMATEXTENSIBLE audio_stream_format_to_win32 (audio_stream_format stream_format, bool extensible) noexcept
 
hi_export audio_stream_format audio_stream_format_from_win32 (WAVEFORMATEXTENSIBLE const &wave_format)
 
hi_export audio_stream_format audio_stream_format_from_win32 (WAVEFORMATEX const &wave_format)
 
constexpr bool match_audio_device (audio_device const &device) noexcept
 
template<audio_device_filter FirstFilter, audio_device_filter... Filters>
bool match_audio_device (audio_device const &device, FirstFilter &&first_filter, Filters &&...filters) noexcept
 
template<audio_device_filter... Filters>
generator< audio_device & > audio_devices (Filters &&...filters) noexcept
 Get audio devices matching the filter arguments.
 
hi_export constexpr bool to_bool (speaker_mapping const &rhs) noexcept
 
hi_export constexpr unsigned int popcount (speaker_mapping const &rhs) noexcept
 
hi_export constexpr speaker_mapping operator| (speaker_mapping const &lhs, speaker_mapping const &rhs) noexcept
 
hi_export constexpr speaker_mapping operator& (speaker_mapping const &lhs, speaker_mapping const &rhs) noexcept
 
hi_export constexpr speaker_mapping & operator|= (speaker_mapping &lhs, speaker_mapping const &rhs) noexcept
 
hi_export constexpr speaker_mapping & operator&= (speaker_mapping &lhs, speaker_mapping const &rhs) noexcept
 
hi_export std::string to_string (speaker_mapping rhs) noexcept
 
hi_export speaker_mapping speaker_mapping_from_win32 (DWORD from)
 
hi_export DWORD speaker_mapping_to_win32 (speaker_mapping from) noexcept
 
hi_export constexpr surround_mode operator& (surround_mode const &lhs, surround_mode const &rhs) noexcept
 
hi_export constexpr surround_mode operator| (surround_mode const &lhs, surround_mode const &rhs) noexcept
 
hi_export constexpr surround_mode & operator|= (surround_mode &lhs, surround_mode const &rhs) noexcept
 
hi_export constexpr bool to_bool (surround_mode const &rhs) noexcept
 
hi_export constexpr speaker_mapping to_speaker_mapping (surround_mode const &rhs) noexcept
 
hi_export generator< surround_mode > enumerate_surround_modes () noexcept
 
hi_export constexpr std::string_view to_string_view_one (surround_mode const &mode) noexcept
 
hi_export constexpr std::string to_string (surround_mode const &mask) noexcept
 
char32_t random_char () noexcept
 
constexpr std::u32string to_u32string (std::u32string_view rhs) noexcept
 Identity conversion from UTF-32 to UTF-32.
 
constexpr std::u32string to_u32string (std::u16string_view rhs) noexcept
 Conversion from UTF-16 to UTF-32.
 
constexpr std::u32string to_u32string (std::u8string_view rhs) noexcept
 Conversion from UTF-8 to UTF-32.
 
constexpr std::u32string to_u32string (std::wstring_view rhs) noexcept
 Conversion from wide-string (UTF-16/32) to UTF-32.
 
constexpr std::u32string to_u32string (std::string_view rhs) noexcept
 Conversion from UTF-8 to UTF-32.
 
constexpr std::u16string to_u16string (std::u32string_view rhs) noexcept
 Conversion from UTF-32 to UTF-16.
 
constexpr std::u16string to_u16string (std::u16string_view rhs) noexcept
 Identity conversion from UTF-16 to UTF-16.
 
constexpr std::u16string to_u16string (std::u8string_view rhs) noexcept
 Conversion from UTF-8 to UTF-16.
 
constexpr std::u16string to_u16string (std::wstring_view rhs) noexcept
 Conversion from wide-string (UTF-16/32) to UTF-16.
 
constexpr std::u16string to_u16string (std::string_view rhs) noexcept
 Conversion from UTF-8 to UTF-16.
 
constexpr std::u8string to_u8string (std::u32string_view rhs) noexcept
 Conversion from UTF-32 to UTF-8.
 
constexpr std::u8string to_u8string (std::u16string_view rhs) noexcept
 Conversion from UTF-16 to UTF-8.
 
constexpr std::u8string to_u8string (std::u8string_view rhs) noexcept
 Identity conversion from UTF-8 to UTF-8.
 
constexpr std::u8string to_u8string (std::wstring_view rhs) noexcept
 Conversion from wide-string (UTF-16/32) to UTF-8.
 
constexpr std::u8string to_u8string (std::string_view rhs) noexcept
 Conversion from UTF-8 to UTF-8.
 
constexpr std::wstring to_wstring (std::u32string_view rhs) noexcept
 Conversion from UTF-32 to wide-string (UTF-16/32).
 
constexpr std::wstring to_wstring (std::u16string_view rhs) noexcept
 Conversion from UTF-16 to wide-string (UTF-16/32).
 
constexpr std::wstring to_wstring (std::u8string_view rhs) noexcept
 Conversion from UTF-8 to wide-string (UTF-16/32).
 
constexpr std::wstring to_wstring (std::wstring_view rhs) noexcept
 Identity conversion from wide-string (UTF-16/32) to wide-string (UTF-16/32).
 
constexpr std::wstring to_wstring (std::string_view rhs) noexcept
 Conversion from UTF-8 to wide-string (UTF-16/32).
 
constexpr std::string to_string (std::u32string_view rhs) noexcept
 Conversion from UTF-32 to UTF-8.
 
constexpr std::string to_string (std::u16string_view rhs) noexcept
 Conversion from UTF-16 to UTF-8.
 
constexpr std::string to_string (std::u8string_view rhs) noexcept
 Identity conversion from UTF-8 to UTF-8.
 
constexpr std::string to_string (std::wstring_view rhs) noexcept
 Conversion from wide-string (UTF-16/32) to UTF-8.
 
constexpr std::string to_string (std::string_view rhs) noexcept
 Conversion from UTF-8 to UTF-8.
 
hi_export bstring gzip_decompress (std::span< std::byte const > bytes, std::size_t max_size)
 
hi_export bstring gzip_decompress (std::filesystem::path const &path, std::size_t max_size=0x01000000)
 
hi_export bstring inflate (std::span< std::byte const > bytes, std::size_t &offset, std::size_t max_size=0x0100 '0000)
 Inflate compressed data using the deflate algorithm bytes should include at least 32 bit of trailer, for the overflow check which will slightly overrun the actual compressed data for performance reasons.
 
bstring zlib_decompress (std::span< std::byte const > bytes, std::size_t max_size)
 
bstring zlib_decompress (std::filesystem::path const &path, std::size_t max_size=0x01000000)
 
constexpr matrix3 color_primaries_to_RGBtoXYZ (float wx, float wy, float rx, float ry, float gx, float gy, float bx, float by) noexcept
 Create a color space conversion matrix.
 
float Rec2100_linear_to_gamma (float L) noexcept
 Rec.2100 linear to gamma transfer function.
 
float Rec2100_gamma_to_linear (float N) noexcept
 Rec.2100 gamma to linear transfer function.
 
std::string_view to_string (semantic_color rhs) noexcept
 Convert a semantic color to a string.
 
semantic_color semantic_color_from_string (std::string_view str)
 Convert a string to a semantic color.
 
float sRGB_linear_to_gamma (float u) noexcept
 sRGB linear to gamma transfer function.
 
float sRGB_gamma_to_linear (float u) noexcept
 sRGB gamma to linear transfer function.
 
uint8_t sRGB_linear16_to_gamma8 (half u) noexcept
 sRGB linear float-16 to gamma transfer function.
 
half sRGB_gamma8_to_linear16 (uint8_t u) noexcept
 sRGB gamma to linear float-16 transfer function.
 
color color_from_sRGB (float r, float g, float b, float a) noexcept
 Convert gama corrected sRGB color to the linear color.
 
color color_from_sRGB (uint8_t r, uint8_t g, uint8_t b, uint8_t a) noexcept
 Convert gama corrected sRGB color to the linear color.
 
color color_from_sRGB (std::string_view str)
 
constexpr global_state_type operator| (global_state_type lhs, global_state_type rhs) noexcept
 
constexpr global_state_type operator& (global_state_type lhs, global_state_type rhs) noexcept
 
constexpr global_state_type operator~ (global_state_type rhs) noexcept
 
constexpr bool to_bool (global_state_type rhs) noexcept
 
constexpr bool is_system_running (global_state_type rhs) noexcept
 
constexpr bool is_system_shutting_down (global_state_type rhs) noexcept
 
bool is_system_running () noexcept
 Check if the HikoGUI system is running.
 
bool is_system_shutting_down () noexcept
 Check if the HikoGUI system is being shut down.
 
void set_log_level (global_state_type log_level) noexcept
 Set the logging level.
 
bool global_state_disable (global_state_type subsystem, std::memory_order order=std::memory_order::seq_cst) noexcept
 Disable a subsystem.
 
bool global_state_enable (global_state_type subsystem, std::memory_order order=std::memory_order::seq_cst) noexcept
 Enable a subsystem.
 
template<typename T >
requires (is_atomic_v<T>)
T::value_type start_subsystem (T &check_variable, typename T::value_type off_value, typename T::value_type(*init_function)(), void(*deinit_function)())
 Start a sub-system.
 
bool start_subsystem (global_state_type state_bit, bool(*init_function)(), void(*deinit_function)())
 Start a sub-system.
 
template<typename T >
requires (is_atomic_v<T>)
T::value_type start_subsystem_or_terminate (T &check_variable, typename T::value_type off_value, typename T::value_type(*init_function)(), void(*deinit_function)())
 Start a sub-system.
 
void stop_subsystem (void(*deinit_function)())
 Stop a sub-system.
 
void start_system () noexcept
 Start the system.
 
void shutdown_system () noexcept
 Shutdown the system.
 
thread_id current_thread_id () noexcept
 Get the current thread id.
 
void set_thread_name (std::string_view name) noexcept
 Set the name of the current thread.
 
std::string get_thread_name (thread_id id) noexcept
 Get the thread name of a thread id.
 
std::vector< bool > process_affinity_mask ()
 Get the current process CPU affinity mask.
 
std::vector< bool > set_thread_affinity_mask (std::vector< bool > const &mask)
 Set the current thread CPU affinity mask.
 
std::vector< bool > set_thread_affinity (std::size_t cpu_id)
 Set the current thread CPU affinity to a single CPU.
 
std::size_t advance_thread_affinity (std::size_t &cpu) noexcept
 Advance thread affinity to the next CPU.
 
std::size_t current_cpu_id () noexcept
 Get the current CPU id.
 
hi_export void * unfair_mutex_deadlock_lock (void *object) noexcept
 Lock an object on this thread.
 
hi_export bool unfair_mutex_deadlock_unlock (void *object) noexcept
 Unlock an object on this thread.
 
hi_export void unfair_mutex_deadlock_remove_object (void *object) noexcept
 Remove the object from the detection.
 
hi_export void unfair_mutex_deadlock_clear_stack () noexcept
 Clear the stack.
 
hi_export void unfair_mutex_deadlock_clear_graph () noexcept
 Clear the graph.
 
template<std::input_iterator It, std::input_iterator ItEnd>
 lean_vector (It first, ItEnd last) -> lean_vector< typename std::iterator_traits< It >::value_type >
 
template<typename T , std::convertible_to< T >... Args>
lean_vector< T > make_lean_vector (Args &&...args) noexcept
 
hi_export char * make_cstr (char const *c_str, std::size_t size=-1) noexcept
 Copy a std::string to new memory.
 
hi_export char * make_cstr (std::string const &s) noexcept
 Copy a std::string to new memory.
 
hi_export std::pair< int, char ** > crt_start (int, char **, void *instance, int show_cmd)
 
int crt_finish (int argc, char **argv, int exit_code)
 
template<typename Func , typename... Args>
requires (is_invocable_task_v<Func, Args...>)
std::invoke_result_t< Func, Args... > async_task (Func func, Args... args)
 Run a function asynchronously as a co-routine task.
 
template<typename Func , typename... Args>
requires (not is_invocable_task_v<Func, Args...>)
task< std::invoke_result_t< Func, Args... > > async_task (Func func, Args... args)
 Run a function asynchronously as a co-routine task.
 
template<typename Func , typename... Args>
auto cancelable_async_task (Func func, std::stop_token stop_token, ::hi::progress_token progress_token, Args... args)
 Run a function asynchronously as a co-routine task.
 
template<typename T , typename Op >
void dsp_visit (std::span< T > r, std::span< T const > a, std::span< T const > b, Op op) noexcept
 
template<typename T , typename Op >
void dsp_visit (std::span< T > r, std::span< T const > a, T b, Op op) noexcept
 
template<typename T , typename Op >
void dsp_visit (std::span< float > r, float a, Op op) noexcept
 
void dsp_add (dsp_argument auto... args) noexcept
 
void dsp_sub (dsp-argument auto... args) noexcept
 
void dsp_mul (dsp-argument auto... args) noexcept
 
constexpr void dsp_mul (float const *a, float const *b, float *o, size_t n) noexcept
 Multiply two float arrays into another array.
 
constexpr void dsp_mul (float const *a, float b, float *o, size_t n) noexcept
 Multiply a float array with a scalar into another array.
 
constexpr void dsp_mul_acc (float const *a, float const *b, float *o, size_t n) noexcept
 Multiply two float arrays and accumulate into another array.
 
constexpr void dsp_mul_acc (float const *a, float b, float *o, size_t n) noexcept
 Multiply a float array with a scalar and accumulate into another array.
 
hi_export constexpr access_mode operator| (access_mode const &lhs, access_mode const &rhs) noexcept
 
hi_export constexpr access_mode operator& (access_mode const &lhs, access_mode const &rhs) noexcept
 
hi_export constexpr bool to_bool (access_mode const &rhs) noexcept
 
hi_export generator< font_stylealternatives (font_style start) noexcept
 
std::span< std::byte const > otype_cmap_find (std::span< std::byte const > bytes, uint16_t platform_id, uint16_t platform_specific_id)
 
font_char_map otype_cmap_parse_map_4 (std::span< std::byte const > over_sized_bytes)
 
font_char_map otype_cmap_parse_map_6 (std::span< std::byte const > over_sized_bytes)
 
font_char_map otype_cmap_parse_map_12 (std::span< std::byte const > over_sized_bytes)
 
font_char_map otype_cmap_parse_map (std::span< std::byte const > bytes)
 
font_char_map otype_cmap_parse (std::span< std::byte const > bytes)
 
graphic_path otype_glyf_get_path (std::span< std::byte const > bytes, float em_scale)
 Get the graphic-path of a simple glyph.
 
generator< otype_glyf_componentotype_glyf_get_compound (std::span< std::byte const > bytes, float em_scale)
 Get the components of a compound glyph.
 
bool otype_glyf_is_compound (std::span< std::byte const > bytes)
 Check if this glyph is a compound or simple glyph.
 
aarectangle otype_glyf_get_bounding_box (std::span< std::byte const > bytes, float em_scale)
 Get the bounding box of a simple glyph.
 
auto otype_head_parse (std::span< std::byte const > bytes)
 
auto otype_hhea_parse (std::span< std::byte const > bytes, float em_scale)
 
auto otype_hmtx_get (std::span< std::byte const > bytes, hi::glyph_id glyph_id, uint16_t num_horizontal_metrics, float em_scale)
 
std::optional< float > otype_kern_sub0_find (size_t &offset, std::span< std::byte const > bytes, glyph_id first_glyph_id, glyph_id second_glyph_id, float em_scale)
 
vector2 otype_kern_v0_find (std::span< std::byte const > bytes, glyph_id first_glyph_id, glyph_id second_glyph_id, float em_scale)
 'kern' version 0 find.
 
vector2 otype_kern_v1_find (std::span< std::byte const > bytes, glyph_id first_glyph_id, glyph_id second_glyph_id, float em_scale)
 
vector2 otype_kern_find (std::span< std::byte const > bytes, glyph_id first_glyph_id, glyph_id second_glyph_id, float em_scale)
 
std::pair< size_t, size_t > otype_loca16_get (std::span< std::byte const > bytes, hi::glyph_id glyph_id)
 
std::pair< size_t, size_t > otype_loca32_get (std::span< std::byte const > bytes, hi::glyph_id glyph_id)
 
std::pair< size_t, size_t > otype_loca_get (std::span< std::byte const > loca_bytes, hi::glyph_id glyph_id, bool loca_is_offset32)
 
std::span< std::byte const > otype_loca_get (std::span< std::byte const > loca_bytes, std::span< std::byte const > glyf_bytes, hi::glyph_id glyph_id, bool loca_is_offset32)
 
auto otype_maxp_parse (std::span< std::byte const > bytes)
 
std::optional< std::stringotype_name_search (std::span< std::byte const > bytes, uint16_t name_id, language_tag language=language_tag{"en"})
 Get a name from the name table.
 
auto otype_name_get_family (std::span< std::byte const > bytes)
 
auto otype_parse_os2 (std::span< std::byte const > bytes, float em_scale)
 
template<fixed_string Name>
std::span< std::byte const > otype_sfnt_search (std::span< std::byte const > bytes)
 
std::optional< std::stringotype_get_string (std::span< std::byte const > bytes, uint16_t platform_id, uint16_t platform_specific_id)
 
constexpr std::optional< float > make_guideline (vertical_alignment alignment, float bottom, float top, float guideline_width)
 Create a guideline between two points.
 
constexpr std::optional< float > make_guideline (horizontal_alignment alignment, float left, float right, float guideline_width=0.0f)
 Create a guideline between two points.
 
constexpr horizontal_alignment mirror (horizontal_alignment const &rhs) noexcept
 Mirror the horizontal alignment.
 
constexpr horizontal_alignment mirror (horizontal_alignment const &rhs, bool left_to_right) noexcept
 Mirror the horizontal alignment.
 
constexpr horizontal_alignment resolve (horizontal_alignment const &rhs, bool left_to_right) noexcept
 
constexpr horizontal_alignment resolve_mirror (horizontal_alignment const &rhs, bool left_to_right) noexcept
 
constexpr alignment operator| (horizontal_alignment lhs, vertical_alignment rhs) noexcept
 Combine vertical and horizontal alignment.
 
constexpr alignment operator| (vertical_alignment lhs, horizontal_alignment rhs) noexcept
 Combine vertical and horizontal alignment.
 
constexpr axis operator& (axis const &lhs, axis const &rhs) noexcept
 AND the axis.
 
constexpr axis operator| (axis const &lhs, axis const &rhs) noexcept
 OR the axis.
 
constexpr bool to_bool (axis const &rhs) noexcept
 Check if any of the axis are set.
 
constexpr matrix2 operator* (matrix2 const &lhs, matrix2 const &rhs) noexcept
 Matrix/Matrix multiplication.
 
constexpr aarectangle operator* (scale2 const &lhs, aarectangle const &rhs) noexcept
 Scale a rectangle around it's center.
 
constexpr matrix2 operator* (translate2 const &lhs, scale2 const &rhs) noexcept
 
constexpr matrix3 operator* (matrix3 const &lhs, matrix3 const &rhs) noexcept
 Matrix/Matrix multiplication.
 
constexpr matrix3 operator* (translate3 const &lhs, scale3 const &rhs) noexcept
 
constexpr matrix3 operator* (translate3 const &lhs, rotate3 const &rhs) noexcept
 
constexpr scale2 operator/ (extent2 const &lhs, extent2 const &rhs) noexcept
 
constexpr scale3 operator/ (extent3 const &lhs, extent3 const &rhs) noexcept
 
constexpr matrix2 operator* (translate2 const &lhs, matrix2 const &rhs) noexcept
 
constexpr matrix3 operator* (translate3 const &lhs, matrix3 const &rhs) noexcept
 
constexpr translate2 operator* (translate2 const &lhs, translate2 const &rhs) noexcept
 
constexpr translate3 operator* (translate3 const &lhs, translate3 const &rhs) noexcept
 
constexpr matrix2 operator* (translate2 const &lhs, rotate2 const &rhs) noexcept
 
constexpr matrix2 operator* (scale2 const &lhs, translate2 const &rhs) noexcept
 
constexpr matrix3 operator* (scale3 const &lhs, translate3 const &rhs) noexcept
 
constexpr scale2 operator* (scale2 const &lhs, scale2 const &rhs) noexcept
 
constexpr scale3 operator* (scale3 const &lhs, scale3 const &rhs) noexcept
 
float operator* (matrix2 const &lhs, float const &rhs) noexcept
 Transform a float by the scaling factor of the matrix.
 
float operator* (matrix3 const &lhs, float const &rhs) noexcept
 Transform a float by the scaling factor of the matrix.
 
constexpr float operator* (translate2 const &, float const &rhs) noexcept
 
constexpr float operator* (translate3 const &, float const &rhs) noexcept
 
constexpr float operator* (scale2 const &lhs, float const &rhs) noexcept
 
constexpr float operator* (scale3 const &lhs, float const &rhs) noexcept
 
constexpr float operator* (rotate2 const &, float const &rhs) noexcept
 
constexpr float operator* (rotate3 const &, float const &rhs) noexcept
 
constexpr vector2 operator* (matrix2 const &lhs, vector2 const &rhs) noexcept
 Transform a vector by the matrix.
 
constexpr vector2 operator* (translate2 const &, vector2 const &rhs) noexcept
 
constexpr vector2 operator* (translate3 const &, vector2 const &rhs) noexcept
 
constexpr vector2 operator* (scale2 const &lhs, vector2 const &rhs) noexcept
 
constexpr vector2 operator* (scale3 const &lhs, vector2 const &rhs) noexcept
 
constexpr vector3 operator* (matrix3 const &lhs, vector3 const &rhs) noexcept
 Transform a vector by the matrix.
 
constexpr vector3 operator* (translate3 const &, vector3 const &rhs) noexcept
 
constexpr vector3 operator* (scale3 const &lhs, vector3 const &rhs) noexcept
 
constexpr point2 operator* (matrix2 const &lhs, point2 const &rhs) noexcept
 Transform a point by the matrix.
 
constexpr point2 operator* (translate2 const &lhs, point2 const &rhs) noexcept
 
constexpr point2 operator* (scale2 const &lhs, point2 const &rhs) noexcept
 
constexpr point2 operator* (scale3 const &lhs, point2 const &rhs) noexcept
 
constexpr point3 operator* (matrix3 const &lhs, point3 const &rhs) noexcept
 Transform a point by the matrix.
 
constexpr point3 operator* (translate3 const &lhs, point3 const &rhs) noexcept
 
constexpr point3 operator* (scale3 const &lhs, point3 const &rhs) noexcept
 
constexpr extent2 operator* (transformer2 auto const &lhs, extent2 const &rhs) noexcept
 
constexpr extent3 operator* (transformer3 auto const &lhs, std::convertible_to< extent3 > auto const &rhs) noexcept
 
constexpr aarectangle operator* (translate2 const &lhs, aarectangle const &rhs) noexcept
 
constexpr rectangle operator* (transformer auto const &lhs, aarectangle const &rhs) noexcept
 Transform an axis-aligned rectangle by the matrix.
 
constexpr rectangle operator* (matrix2 const &lhs, aarectangle const &rhs) noexcept
 Transform an axis-aligned rectangle without rotation by the matrix.
 
constexpr rectangle full_mul (matrix2 const &lhs, aarectangle const &rhs) noexcept
 Transform an axis-aligned rectangle without rotation by the matrix.
 
constexpr aarectangle fast_mul (matrix2 const &lhs, aarectangle const &rhs) noexcept
 Transform an axis-aligned rectangle without rotation by the matrix.
 
constexpr rectangle operator* (transformer auto const &lhs, rectangle const &rhs) noexcept
 Transform a rectangle by the matrix.
 
constexpr quad operator* (transformer auto const &lhs, quad const &rhs) noexcept
 Transform a quad by the matrix.
 
constexpr circle operator* (transformer auto const &lhs, circle const &rhs) noexcept
 Transform a circle by the matrix.
 
constexpr line_segment operator* (transformer auto const &lhs, line_segment const &rhs) noexcept
 Transform a line-segment by the matrix.
 
constexpr corner_radii operator* (matrix3 const &lhs, corner_radii const &rhs) noexcept
 Transform a float by the scaling factor of the matrix.
 
template<typename Lhs , transformer Rhs>
requires requires(Lhs& a, Rhs const& b) { a = b * a; }
constexpr Lhs & operator*= (Lhs &lhs, Rhs const &rhs) noexcept
 Inplace geometric translation.
 
constexpr aarectangle fit (aarectangle const &bounds, aarectangle const &rectangle) noexcept
 
constexpr quad scale_from_center (quad const &lhs, scale2 const &rhs) noexcept
 scale the quad.
 
constexpr translate3 translate_z (float z) noexcept
 
point3 get_atlas_position (std::size_t page) noexcept
 Get the coordinate in the atlas from a page index.
 
point2 get_staging_position (const gfx_pipeline_image::paged_image &image, std::size_t page_index)
 Get the position in the staging texture map to copy from.
 
void render_doc_set_overlay (bool frameRate, bool frameNumber, bool captureList) noexcept
 
void start_render_doc () noexcept
 
template<typename T >
constexpr std::array< T, 2 > bezierToPolynomial (T P1, T P2) noexcept
 
template<typename T >
constexpr std::array< T, 3 > bezierToPolynomial (T P1, T C, T P2) noexcept
 
template<typename T >
constexpr std::array< T, 4 > bezierToPolynomial (T P1, T C1, T C2, T P2) noexcept
 
constexpr point2 bezierPointAt (point2 P1, point2 P2, float t) noexcept
 
constexpr point2 bezierPointAt (point2 P1, point2 C, point2 P2, float t) noexcept
 
constexpr point2 bezierPointAt (point2 P1, point2 C1, point2 C2, point2 P2, float t) noexcept
 
constexpr vector2 bezierTangentAt (point2 P1, point2 P2, float t) noexcept
 
constexpr vector2 bezierTangentAt (point2 P1, point2 C, point2 P2, float t) noexcept
 
constexpr vector2 bezierTangentAt (point2 P1, point2 C1, point2 C2, point2 P2, float t) noexcept
 
lean_vector< float > bezierFindT (float P1, float P2, float x) noexcept
 
lean_vector< float > bezierFindT (float P1, float C, float P2, float x) noexcept
 
lean_vector< float > bezierFindT (float P1, float C1, float C2, float P2, float x) noexcept
 
lean_vector< float > bezierFindTForNormalsIntersectingPoint (point2 P1, point2 P2, point2 P) noexcept
 Find t on the line P1->P2 which is closest to P.
 
lean_vector< float > bezierFindTForNormalsIntersectingPoint (point2 P1, point2 C, point2 P2, point2 P) noexcept
 Find t on the curve P1->C->P2 which is closest to P.
 
lean_vector< float > bezierFindX (point2 P1, point2 P2, float y) noexcept
 
lean_vector< float > bezierFindX (point2 P1, point2 C, point2 P2, float y) noexcept
 
lean_vector< float > bezierFindX (point2 P1, point2 C1, point2 C2, point2 P2, float y) noexcept
 
float bezierFlatness (point2 P1, point2 P2) noexcept
 
float bezierFlatness (point2 P1, point2 C, point2 P2) noexcept
 
float bezierFlatness (point2 P1, point2 C1, point2 C2, point2 P2) noexcept
 
std::pair< point2, point2 > parallelLine (point2 P1, point2 P2, float distance) noexcept
 
std::optional< point2 > getIntersectionPoint (point2 A1, point2 A2, point2 B1, point2 B2) noexcept
 
std::optional< point2 > getExtrapolatedIntersectionPoint (point2 A1, point2 A2, point2 B1, point2 B2) noexcept
 
constexpr std::vector< bezier_curvemakeContourFromPoints (std::vector< bezier_point >::const_iterator begin, std::vector< bezier_point >::const_iterator end) noexcept
 Make a contour of Bezier curves from a list of points.
 
constexpr std::vector< bezier_curvemakeInverseContour (std::vector< bezier_curve > const &contour) noexcept
 Inverse a contour.
 
constexpr std::vector< bezier_curvemakeParallelContour (std::vector< bezier_curve > const &contour, float offset, hi::line_join_style line_join_style, float tolerance) noexcept
 
constexpr void fill (pixmap_span< uint8_t > image, std::vector< bezier_curve > const &curves) noexcept
 Fill a linear gray scale image by filling a curve with anti-aliasing.
 
constexpr void fill (pixmap_span< sdf_r8 > image, std::vector< bezier_curve > const &curves) noexcept
 Fill a signed distance field image from the given contour.
 
hi_export void fill (pixmap_span< sdf_r8 > dst, graphic_path const &path) noexcept
 Fill a signed distance field image from the given path.
 
std::string_view to_string (gui_event_type rhs) noexcept
 Convert a GUI event type to a string.
 
constexpr gui_event_type to_gui_event_type (std::string_view name) noexcept
 Convert a name to a GUI event type.
 
constexpr gui_event_variant to_gui_event_variant (gui_event_type type) noexcept
 Convert a gui event type, to an gui event variant.
 
void load_user_keyboard_bindings (std::filesystem::path const &path)
 
void load_system_keyboard_bindings (std::filesystem::path const &path)
 
generator< gui_eventtranslate_keyboard_event (gui_event event) noexcept
 
widget_id make_widget_id () noexcept
 
void release_widget_id (widget_id id) noexcept
 
constexpr bool operator== (widget_id const &lhs, std::integral auto const &rhs) noexcept
 
constexpr std::strong_ordering operator<=> (widget_id const &lhs, std::integral auto const &rhs) noexcept
 
widget_intfget_if (widget_intf *start, widget_id id, bool include_invisible) noexcept
 
widget_intfget (widget_intf &start, widget_id id, bool include_invisible)
 
std::vector< language_tagvariants (std::vector< language_tag > languages)
 Add variants to the list of languages.
 
template<typename T >
 pixmap (pixmap_span< T > const &other) -> pixmap< std::remove_const_t< T >, std::allocator< std::remove_const_t< T > > >
 
template<typename T , typename Allocator >
 pixmap (pixmap_span< T > const &other, Allocator allocator) -> pixmap< std::remove_const_t< T >, Allocator >
 
template<typename T , typename Allocator >
 pixmap_span (pixmap< T, Allocator > const &other) -> pixmap_span< T const >
 
template<typename T , typename Allocator >
 pixmap_span (pixmap< T, Allocator > &other) -> pixmap_span< T >
 
template<std::input_iterator It, std::sentinel_for< It > ItEnd>
constexpr po_translations parse_po (It it, ItEnd last, std::string_view path)
 
constexpr po_translations parse_po (std::string_view text, std::string_view path)
 
po_translations parse_po (std::filesystem::path const &path)
 
void add_translation (std::string_view msgid, language_tag language, std::vector< std::string > const &plural_forms) noexcept
 
void add_translations (po_translations const &po_translations) noexcept
 
void load_translations (std::filesystem::path path)
 
void load_translations ()
 
std::pair< std::string_view, language_tagget_translation (std::string_view msgid, long long n, std::vector< language_tag > const &languages) noexcept
 
constexpr long long get_first_integer_argument () noexcept
 
template<typename First , typename... Rest>
constexpr long long get_first_integer_argument (First const &first, Rest const &...rest) noexcept
 
hi_export std::string const & get_application_name ()
 
hi_export std::string const & get_application_slug ()
 
hi_export std::string const & get_application_vendor ()
 
hi_export semantic_version const & get_application_version ()
 
hi_export void set_application_name (std::string_view name, std::string_view slug)
 
hi_export void set_application_name (std::string_view name)
 
hi_export void set_application_vendor (std::string_view name)
 
hi_export void set_application_version (semantic_version version) noexcept
 
hi_export void set_application_version (int major, int minor=0, int patch=0) noexcept
 
template<size_t LookaheadCount, typename It , std::sentinel_for< It > ItEnd = std::default_sentinel_t>
auto make_lookahead_iterator (It first, ItEnd last=std::default_sentinel) noexcept
 Create a lookahead_iterator from a forward iterator.
 
template<size_t LookaheadCount, std::ranges::range Range>
auto make_lookahead_iterator (Range const &range) noexcept
 Create a lookahead_iterator from a forward iterator.
 
template<std::input_iterator It, std::sentinel_for< It > ItEnd>
hi_export constexpr std::string token_location (It &it, ItEnd last, std::string_view path) noexcept
 Create a location string for error messages.
 
template<std::input_iterator It>
hi_export constexpr std::string token_location (It &it, std::string_view path) noexcept
 
hi_export std::ostreamoperator<< (std::ostream &lhs, token const &rhs)
 
std::optional< cmake_installparse_cmake_install (std::filesystem::path path) noexcept
 Parse a cmake_install.cmake file.
 
hi_export generator< std::filesystem::path > glob (glob_pattern pattern) noexcept
 Find paths on the filesystem that match the glob pattern.
 
hi_export generator< std::filesystem::path > glob (std::string_view pattern) noexcept
 Find paths on the filesystem that match the glob pattern.
 
hi_export generator< std::filesystem::path > glob (std::string pattern) noexcept
 Find paths on the filesystem that match the glob pattern.
 
hi_export generator< std::filesystem::path > glob (char const *pattern) noexcept
 Find paths on the filesystem that match the glob pattern.
 
hi_export generator< std::filesystem::path > glob (std::filesystem::path pattern) noexcept
 Find paths on the filesystem that match the glob pattern.
 
template<path_range Locations>
hi_export generator< std::filesystem::path > glob (Locations &&locations, std::filesystem::path ref) noexcept
 Find paths on the filesystem that match the glob pattern.
 
template<path_range Locations>
hi_export generator< std::filesystem::path > glob (Locations &&locations, std::string_view ref) noexcept
 Find paths on the filesystem that match the glob pattern.
 
template<path_range Locations>
hi_export generator< std::filesystem::path > glob (Locations &&locations, std::string ref) noexcept
 Find paths on the filesystem that match the glob pattern.
 
template<path_range Locations>
hi_export generator< std::filesystem::path > glob (Locations &&locations, char const *ref) noexcept
 Find paths on the filesystem that match the glob pattern.
 
template<path_range Locations>
generator< std::filesystem::path > find_path (Locations &&locations, std::filesystem::path const &ref) noexcept
 Find a path.
 
generator< std::filesystem::path > find_path (std::filesystem::path const &location, std::filesystem::path const &ref) noexcept
 Find a path.
 
template<path_range Locations>
std::filesystem::path get_path (Locations &&locations, std::filesystem::path const &ref)
 Get a path.
 
std::filesystem::path get_path (std::filesystem::path const &location, std::filesystem::path const &ref)
 Get a path.
 
std::filesystem::path get_path (std::expected< std::filesystem::path, std::error_code > const &location, std::filesystem::path const &ref)
 Get a path.
 
template<path_range Locations>
std::string to_string (Locations &&locations) noexcept
 Get a string representation of a search-path.
 
std::expected< std::filesystem::path, std::error_codeexecutable_file () noexcept
 Get the full path to this executable.
 
std::expected< std::filesystem::path, std::error_codeexecutable_dir () noexcept
 Get the full path to the directory when this executable is located.
 
std::expected< std::filesystem::path, std::error_codedata_dir () noexcept
 Get the full path to the directory where the application should store its data.
 
std::expected< std::filesystem::path, std::error_codelog_dir () noexcept
 Get the full path to the directory where the application should store its log files.
 
generator< std::filesystem::path > resource_dirs () noexcept
 The directories to search for resource files.
 
generator< std::filesystem::path > system_font_dirs () noexcept
 The directories to search for system font files.
 
generator< std::filesystem::path > font_files () noexcept
 The directories to search for font files of both the application and system.
 
generator< std::filesystem::path > theme_files () noexcept
 The directories to search for theme files of the application.
 
std::optional< std::filesystem::path > source_dir () noexcept
 Get the full path to source code of this executable.
 
std::filesystem::path library_source_dir () noexcept
 
std::filesystem::path library_test_data_dir () noexcept
 
generator< std::filesystem::path > font_dirs () noexcept
 
generator< std::filesystem::path > theme_dirs () noexcept
 
std::expected< std::string, std::error_codeget_user_setting_string (std::string_view key) noexcept
 
std::expected< long long, std::error_codeget_user_setting_integral (std::string_view key) noexcept
 
template<typename T >
std::expected< T, std::error_codeget_user_setting (std::string_view key) noexcept=delete
 Get a user-setting for the application.
 
std::error_code set_user_setting (std::string_view key, std::string_view value) noexcept
 Set a user-setting for the application.
 
std::error_code set_user_setting (std::string_view key, long long value) noexcept
 Set a user-setting for the application.
 
std::error_code delete_user_setting (std::string_view key) noexcept
 Delete a user-setting for the application.
 
std::error_code delete_user_settings () noexcept
 Delete all user-setting for the application.
 
template<>
std::expected< std::string, std::error_codeget_user_setting (std::string_view key) noexcept
 
std::string user_setting_registry_path ()
 
template<std::input_or_output_iterator It, std::sentinel_for< It > ItEnd>
requires std::same_as<typename It::value_type, grapheme>
hi_export constexpr It apply_markup (It first, ItEnd last, language_tag default_language=language_tag{"en-US"}, phrasing default_phrasing=phrasing::regular) noexcept
 Inplace-apply markup to a string of graphemes.
 
hi_export constexpr gstring apply_markup (gstring str, language_tag default_language=language_tag{"en-US"}, phrasing default_phrasing=phrasing::regular) noexcept
 Apply markup to a string of graphemes.
 
hi_export constexpr gstring apply_markup (std::string_view str, language_tag default_language=language_tag{"en-US"}, phrasing default_phrasing=phrasing::regular) noexcept
 Apply markup to a string of graphemes.
 
constexpr bool is_isolate_starter (unicode_bidi_class const &rhs) noexcept
 
constexpr bool is_isolate_formatter (unicode_bidi_class const &rhs) noexcept
 
constexpr bool is_NI (unicode_bidi_class const &rhs) noexcept
 
constexpr bool is_control (unicode_bidi_class const &rhs) noexcept
 
constexpr unicode_bidi_class unicode_bidi_class_from_string (std::string_view str) noexcept
 
constexpr unicode_bidi_class ucd_get_bidi_class (char32_t code_point) noexcept
 
constexpr char32_t ucd_get_bidi_mirroring_glyph (char32_t code_point) noexcept
 Get the bidi-mirroring-glyph for a code-point.
 
constexpr unicode_bidi_paired_bracket_type ucd_get_bidi_paired_bracket_type (char32_t code_point) noexcept
 
constexpr uint8_t ucd_get_canonical_combining_class (char32_t code_point) noexcept
 
constexpr std::optional< char32_t > ucd_get_composition (char32_t cp1, char32_t cp2) noexcept
 Get the composition info of two code-points.
 
constexpr ucd_decomposition_info ucd_get_decomposition (char32_t code_point) noexcept
 Get the decomposition info of a code-point.
 
constexpr unicode_east_asian_width ucd_get_east_asian_width (char32_t code_point) noexcept
 
constexpr bool is_LC (unicode_general_category const &rhs) noexcept
 
constexpr bool is_L (unicode_general_category const &rhs) noexcept
 
constexpr bool is_M (unicode_general_category const &rhs) noexcept
 
constexpr bool is_Mn_or_Mc (unicode_general_category const &rhs) noexcept
 
constexpr bool is_N (unicode_general_category const &rhs) noexcept
 
constexpr bool is_P (unicode_general_category const &rhs) noexcept
 
constexpr bool is_S (unicode_general_category const &rhs) noexcept
 
constexpr bool is_Z (unicode_general_category const &rhs) noexcept
 
constexpr bool is_Zp_or_Zl (unicode_general_category const &rhs) noexcept
 
constexpr bool is_C (unicode_general_category const &rhs) noexcept
 
constexpr bool is_visible (unicode_general_category const &rhs) noexcept
 
constexpr bool is_noncharacter (char32_t rhs) noexcept
 
constexpr unicode_general_category ucd_get_general_category (char32_t code_point) noexcept
 
constexpr unicode_grapheme_cluster_break ucd_get_grapheme_cluster_break (char32_t code_point) noexcept
 
constexpr unicode_lexical_class ucd_get_lexical_class (char32_t code_point) noexcept
 
constexpr unicode_line_break_class ucd_get_line_break_class (char32_t code_point) noexcept
 
constexpr bool operator== (iso_15924 const &lhs, unicode_script const &rhs) noexcept
 
constexpr iso_15924 ucd_get_script (char32_t code_point) noexcept
 
constexpr unicode_sentence_break_property ucd_get_sentence_break_property (char32_t code_point) noexcept
 
constexpr unicode_word_break_property ucd_get_word_break_property (char32_t code_point) noexcept
 
template<typename It , typename ItEnd >
constexpr std::vector< unicode_break_opportunity > unicode_grapheme_break (It first, ItEnd last) noexcept
 
constexpr plurality_mask operator| (plurality_mask const &lhs, plurality_mask const &rhs) noexcept
 Or plurality masks together.
 
constexpr plurality cardinal_plural (language_tag language, std::integral auto n) noexcept
 Get plural information of a number in a given language.
 
constexpr size_t cardinal_plural (language_tag language, std::integral auto n, size_t size) noexcept
 Get an index into message plural-variants for a given number.
 
template<typename FontSizeT , typename ByT >
au::Quantity< PixelsPerEm, std::common_type_t< FontSizeT, ByT > > round (au::Quantity< PixelsPerEm, FontSizeT > font_size, au::Quantity< EmSquares, ByT > const &by)
 Round to font size in pixels-per-em.
 
hi_export constexpr bool bound_check (std::integral auto index, std::integral auto upper) noexcept
 Check if an index is less than the bound.
 
hi_export constexpr bool bound_check (std::integral auto index, std::integral auto lower, std::integral auto upper) noexcept
 Check if an index is between the lower (inclusive) and upper (exclusive).
 
hi_export constexpr bool bound_check (std::floating_point auto index, std::floating_point auto lower, std::floating_point auto upper) noexcept
 Check if an floating point value is between the lower (inclusive) and upper (inclusive).
 
hi_export constexpr bool bound_check (std::integral auto index, bound_check_range_helper auto &&range) noexcept
 Check if an index is within a range.
 
bool get_bit (std::span< std::byte const > buffer, std::size_t &index) noexcept
 Read a single bit from span of bytes Bits are ordered LSB first.
 
std::size_t get_bits (std::span< std::byte const > buffer, std::size_t &index, std::size_t length) noexcept
 Read a bits from of span of bytes Bits are ordered LSB first.
 
template<typename T >
constexpr T copy (T value) noexcept
 
template<typename Out , typename In >
constexpr Out up_cast (In *rhs) noexcept
 Cast a pointer to a class to its base class or itself.
 
template<typename Out >
constexpr Out up_cast (nullptr_t) noexcept
 Cast a nullptr to a class.
 
template<typename Out , typename In >
constexpr Out up_cast (In &rhs) noexcept
 Cast a reference to a class to its base class or itself.
 
template<typename Out , typename In >
constexpr Out down_cast (In *rhs) noexcept
 Cast a pointer to a class to its derived class or itself.
 
template<typename Out >
requires std::is_pointer_v<Out>
constexpr Out down_cast (nullptr_t) noexcept
 Cast a pointer to a class to its derived class or itself.
 
template<typename Out , typename In >
constexpr Out down_cast (In &rhs) noexcept
 Cast a reference to a class to its derived class or itself.
 
template<typename Out , std::same_as< Out > In>
constexpr Out wide_cast (In const &rhs) noexcept
 Cast to a type which can hold all values from the input type.
 
template<std::floating_point Out, std::floating_point In>
requires (not std::same_as<In, Out>)
constexpr Out wide_cast (In const &rhs) noexcept
 Cast a floating point number to a floating point type that is wider.
 
template<std::integral Out, std::integral In>
requires (not std::same_as<In, Out>)
constexpr Out wide_cast (In rhs) noexcept
 Cast a integer to an integer type which is wider.
 
template<std::floating_point Out, std::integral In>
constexpr Out wide_cast (In rhs) noexcept
 Cast a integer to an float type which is wider.
 
template<std::integral Out, arithmetic In>
constexpr Out saturate_cast (In rhs) noexcept
 Cast a numeric value to an integer saturating on overflow.
 
template<typename Out , std::same_as< Out > In>
constexpr bool can_narrow_cast (In const &rhs) noexcept
 Check if a value can be casted to a narrow type.
 
template<std::floating_point Out, std::floating_point In>
requires (not std::same_as<In, Out>)
constexpr bool can_narrow_cast (In const &rhs) noexcept
 Check if a value can be casted to a narrow type.
 
template<typename Out , std::same_as< Out > In>
constexpr Out narrow_cast (In const &rhs) noexcept
 Cast numeric values without loss of precision.
 
template<std::floating_point Out, std::floating_point In>
requires (not std::same_as<In, Out>)
constexpr Out narrow_cast (In const &rhs) noexcept
 Cast numeric values without loss of precision.
 
template<std::integral Out, std::floating_point In>
constexpr bool can_round_cast (In rhs) noexcept
 
template<std::integral Out, std::floating_point In>
constexpr bool can_floor_cast (In rhs) noexcept
 
template<std::integral Out, std::floating_point In>
constexpr bool can_ceil_cast (In rhs) noexcept
 
template<std::integral Out, std::floating_point In>
constexpr Out round_cast (In rhs) noexcept
 
template<std::integral Out, std::floating_point In>
constexpr Out floor_cast (In rhs) noexcept
 
template<std::integral Out, std::floating_point In>
constexpr Out ceil_cast (In rhs) noexcept
 
template<std::integral In>
constexpr std::make_unsigned_t< In > to_unsigned (In rhs) noexcept
 Cast an integral to an unsigned integral of the same size.
 
template<std::integral In>
constexpr std::make_signed_t< In > to_signed (In rhs) noexcept
 Cast an integral to an signed integral of the same size.
 
template<std::integral Out, std::integral In>
constexpr Out truncate (In rhs) noexcept
 Cast between integral types truncating or zero-extending the result.
 
template<std::integral Out, std::integral In>
constexpr Out char_cast (In rhs) noexcept
 Cast a character.
 
template<std::integral Out>
constexpr Out char_cast (std::byte rhs) noexcept
 Cast a character.
 
template<std::unsigned_integral OutType, std::unsigned_integral InType>
constexpr OutType low_bit_cast (InType value) noexcept
 Return the low half of the input value.
 
template<std::unsigned_integral OutType, std::unsigned_integral InType>
constexpr OutType high_bit_cast (InType value) noexcept
 Return the upper half of the input value.
 
template<std::unsigned_integral OutType, std::unsigned_integral InType>
constexpr OutType merge_bit_cast (InType hi, InType lo) noexcept
 Return the upper half of the input value.
 
template<typename T >
requires (requires(T&& x) { static_cast<bool>(std::forward<T>(x)); })
constexpr bool to_bool (T &&rhs) noexcept
 
template<typename T >
constexpr T to_mask (bool v) noexcept
 Create a mask from a boolean value.
 
template<typename T >
requires std::is_pointer_v<T>
to_ptr (std::intptr_t value) noexcept
 
template<typename T >
std::intptr_t to_int (T *ptr) noexcept
 
template<typename T , byte_like Byte>
copy_cv_t< T, Byte > & implicit_cast (std::span< Byte > bytes)
 
template<typename T , byte_like Byte>
std::span< copy_cv_t< T, Byte > > implicit_cast (std::span< Byte > bytes, size_t n)
 
template<typename T , byte_like Byte>
copy_cv_t< T, Byte > & implicit_cast (size_t &offset, std::span< Byte > bytes)
 
template<typename T , byte_like Byte>
std::span< copy_cv_t< T, Byte > > implicit_cast (size_t &offset, std::span< Byte > bytes, size_t n)
 
template<std::integral T>
std::string to_string (T const &value) noexcept
 Convert integer to string.
 
template<std::integral T>
from_string (std::string_view str, int base=10)
 Convert a string to an integer.
 
template<std::floating_point T>
from_string (std::string_view str)
 Convert a string to an floating point.
 
template<arithmetic Lhs, arithmetic Rhs>
constexpr auto three_way_compare (Lhs const &lhs, Rhs const &rhs) noexcept
 Safely compare two arithmetic values to each other.
 
void start_console () noexcept
 Start the console.
 
void enable_debugger () noexcept
 Enable the JIT debugger to be attached.
 
void set_debug_message (char const *str) noexcept
 
bool has_debug_message () noexcept
 
char const * get_debug_message () noexcept
 
template<std::integral T>
constexpr unsigned long long operator<< (T const &lhs, dialog_button const &rhs) noexcept
 
constexpr bool to_bool (dialog_button_mask const &rhs) noexcept
 
constexpr dialog_button_mask operator& (dialog_button_mask const &lhs, dialog_button_mask const &rhs) noexcept
 
constexpr dialog_button_mask operator| (dialog_button_mask const &lhs, dialog_button_mask const &rhs) noexcept
 
constexpr dialog_button_maskoperator&= (dialog_button_mask &lhs, dialog_button_mask const &rhs) noexcept
 
constexpr dialog_button_maskoperator|= (dialog_button_mask &lhs, dialog_button_mask const &rhs) noexcept
 
constexpr dialog_button_mask operator& (dialog_button_mask const &lhs, dialog_button const &rhs) noexcept
 
constexpr dialog_button_mask operator| (dialog_button_mask const &lhs, dialog_button const &rhs) noexcept
 
constexpr dialog_button_maskoperator&= (dialog_button_mask &lhs, dialog_button const &rhs) noexcept
 
constexpr dialog_button_maskoperator|= (dialog_button_mask &lhs, dialog_button const &rhs) noexcept
 
std::expected< dialog_button, std::error_codedialog (std::string_view title, std::string_view text, dialog_button_mask button_mask=dialog_button_mask::ok) noexcept
 Display a modal dialog.
 
template<std::integral T>
constexpr T little_to_native (T x)
 Convert an integral from little-to-native endian.
 
template<std::integral T>
constexpr T big_to_native (T x)
 Convert an integral from big-to-native endian.
 
template<std::integral T>
constexpr T native_to_little (T x)
 Convert an integral from native-to-little endian.
 
template<std::integral T>
constexpr T native_to_big (T x)
 Convert an integral from native-to-big endian.
 
template<std::integral Out, std::endian Endian = std::endian::native, typename In >
constexpr Out load (In const *src) noexcept
 Unaligned Load of a numeric value from an array.
 
template<std::integral T, std::endian Endian = std::endian::native>
load (void const *src) noexcept
 Unaligned Load of a numeric value from a byte-like array.
 
template<std::integral T>
constexpr T load_le (T const *src) noexcept
 Load of a numeric value encoded in little-endian format.
 
template<std::integral T, byte_like B>
constexpr T load_le (B const *src) noexcept
 Unaligned load of a numeric value encoded in little-endian format.
 
template<std::integral T>
load_le (void const *src) noexcept
 Unaligned load of a numeric value encoded in little-endian format.
 
template<std::integral T>
constexpr T load_be (T const *src) noexcept
 Load of a numeric value encoded in big-endian format.
 
template<std::integral T, byte_like B>
constexpr T load_be (B const *src) noexcept
 Unaligned load of a numeric value encoded in byte-endian format.
 
template<std::integral T>
load_be (void const *src) noexcept
 Unaligned load of a numeric value encoded in byte-endian format.
 
template<unsigned int NumBits, byte_like B>
constexpr auto load_bits_be (B const *src, size_t bit_index) noexcept
 Unaligned load bits from a big-endian buffer at a bit-offset.
 
template<std::endian Endian = std::endian::native, std::integral T, byte_like B>
constexpr void store (T value, B const *dst) noexcept
 
template<std::endian Endian = std::endian::native, std::integral T>
constexpr void store (T value, void const *dst) noexcept
 
template<std::integral T, byte_like B>
constexpr void store_le (T value, B const *dst) noexcept
 
template<std::integral T>
void store_le (T value, void const *dst) noexcept
 
template<std::integral T, byte_like B>
constexpr void store_be (T value, B const *dst) noexcept
 
template<std::integral T>
void store_be (T value, void const *dst) noexcept
 
template<typename ValueType , typename NameType , typename... Rest>
 enum_metadata (ValueType const &, NameType const &, Rest const &...) -> enum_metadata< ValueType, enum_metadata_name_t< NameType >,(sizeof...(Rest)+2)/2 >
 
hi_export std::string get_last_error_message (uint32_t error_code)
 Get the error message from an error code.
 
hi_export std::string get_last_error_message ()
 Get the OS error message from the last error received on this thread.
 
template<fixed_string Tag>
hi_export consteval uint32_t fourcc () noexcept
 
template<fixed_string Tag>
hi_export consteval uint32_t operator""_fcc ()
 
template<std::size_t N>
hi_export fixed_string (char const (&str)[N]) -> fixed_string< N - 1 >
 
template<std::invocable F>
hi_export fixed_string (F const &f) -> fixed_string< F
 
 size ()>
 
void initialize () noexcept
 Initialize base functionality of HikoGUI.
 
constexpr std::size_t operator""_uz (unsigned long long lhs) noexcept
 
constexpr std::size_t operator""_zu (unsigned long long lhs) noexcept
 
constexpr std::ptrdiff_t operator""_z (unsigned long long lhs) noexcept
 
template<typename T , typename U >
bool compare_store (T &lhs, U &&rhs) noexcept
 Compare then store if there was a change.
 
template<typename T , typename U >
bool compare_store (std::atomic< T > &lhs, U &&rhs) noexcept
 Compare then store if there was a change.
 
template<class T , class U >
constexpr auto && forward_like (U &&x) noexcept
 
template<typename CharT , typename Traits = std::char_traits<CharT>>
std::basic_string< CharT, Traits > getline (std::basic_istream< CharT, Traits > &in, size_t max_size) noexcept
 Get a line from an input string, upto a maximum size.
 
constexpr size_t count (std::string_view haystack, std::string_view needle) noexcept
 
constexpr std::string replace (std::string haystack, std::string_view needle, std::string_view replace) noexcept
 
template<size_t Index, typename Type >
constexpr decltype(auto) get_data_member (Type &&rhs) noexcept
 
template<typename T >
constexpr auto type_name () noexcept
 
void atterminate (std::function< void()> f) noexcept
 Register functions that need to be called on std::terminate().
 
void terminate_handler () noexcept
 The HikoGUI terminate handler.
 
std::chrono::time_zone const & cached_current_zone () noexcept
 Cached current time zone.
 
template<std::integral T>
constexpr bool is_integral_value (T const &rhs) noexcept
 Check if a value is integral.
 
template<typename F , typename... Args>
 default_async_delegate (F &&func, Args &&... args) -> default_async_delegate< default_async_delegate_result_type< F, Args... > >
 
template<typename Value , typename OnValue >
 default_radio_delegate (Value &&, OnValue &&) -> default_radio_delegate< observer_decay_t< Value > >
 
template<typename Value , typename Options >
 default_selection_delegate (Value &&, Options &&) -> default_selection_delegate< observer_decay_t< Value > >
 
template<typename Value >
requires requires { default_tab_delegate<observer_decay_t<Value>>{std::forward<Value>(value)}; }
std::shared_ptr< tab_delegatemake_default_tab_delegate (Value &&value) noexcept
 Create a shared pointer to a default tab delegate.
 
template<typename Value >
requires requires { default_text_delegate<observer_decay_t<Value>>{std::forward<Value>(value)}; }
std::shared_ptr< text_delegatemake_default_text_delegate (Value &&value) noexcept
 Create a shared pointer to a default text delegate.
 
template<typename Value >
requires requires { default_text_field_delegate<observer_decay_t<decltype(value)>>{std::forward<Value>(value)}; }
std::shared_ptr< text_field_delegatemake_default_text_field_delegate (Value &&value) noexcept
 Create a shared pointer to a default text delegate.
 
template<typename Value >
 default_toggle_delegate (Value &&) -> default_toggle_delegate< observer_decay_t< Value > >
 
template<typename Value , typename OnValue >
 default_toggle_delegate (Value &&, OnValue &&) -> default_toggle_delegate< observer_decay_t< Value > >
 
template<typename Value , typename OnValue , typename OffValue >
 default_toggle_delegate (Value &&, OnValue &&, OffValue &&) -> default_toggle_delegate< observer_decay_t< Value > >
 
std::error_code make_error_code (hresult_error code) noexcept
 
hresult_error to_win32_error (win32_error code) noexcept
 
std::expected< std::filesystem::path, win32_error > win32_GetModuleFileName (HMODULE module_handle=NULL) noexcept
 
std::expected< uint32_t, win32_error > win32_GetExitCodeProcess (HANDLE process_handle) noexcept
 
template<typename StartupInfo >
std::expected< PROCESS_INFORMATION, win32_error > win32_CreateProcess (std::optional< std::string > application_name, std::optional< std::string > command_line, SECURITY_ATTRIBUTES const *process_attributes, SECURITY_ATTRIBUTES const *thread_attributes, bool inherit_handles, uint32_t creation_flags, void const *environment, std::optional< std::string > current_directory, StartupInfo const &startup_info)
 
std::expected< std::filesystem::path, hresult_error > win32_SHGetKnownFolderPath (KNOWNFOLDERID const &folder_id) noexcept
 Convenience function for SHGetKnownFolderPath().
 
std::expected< std::string, win32_error > win32_WideCharToMultiByte (std::wstring_view s, unsigned int code_page=CP_UTF8, uint32_t flags=0) noexcept
 Convert a win32-API compatible std::wstring to a multi-byte std::string.
 
std::expected< std::wstring, win32_error > win32_MultiByteToWideChar (std::string_view s, unsigned int code_page=CP_UTF8, uint32_t flags=0) noexcept
 Convert a win32-API compatible std::wstring to a multi-byte std::string.
 
std::expected< std::vector< std::string >, win32_error > win32_MultiSZToStringVector (wchar_t const *first, wchar_t const *last) noexcept
 Convert a win32 zero terminated list of zero terminated strings.
 
std::expected< HANDLE, win32_error > win32_CreateEvent (SECURITY_ATTRIBUTES const *event_attributes=nullptr, bool manual_reset=true, bool initial_state=false, std::optional< std::string > name=std::nullopt) noexcept
 
uint32_t win32_HANDLE_to_int (HANDLE handle) noexcept
 Convert a HANDLE to a 32-bit unsigned integer.
 
HANDLE win32_int_to_HANDLE (uint32_t i) noexcept
 
std::error_code make_error_code (win32_error code) noexcept
 
win32_error win32_GetLastError () noexcept
 
std::expected< std::string, win32_error > win32_FormatMessage (win32_error error_code) noexcept
 
std::expected< std::string, win32_error > win32_GetUserDefaultLocaleName () noexcept
 
win32_error win32_RegDeleteKeyValue (HKEY key, std::string_view path, std::string_view name) noexcept
 Delete a registry value.
 
win32_error win32_RegDeleteKey (HKEY key, std::string_view path) noexcept
 Delete all registry values and the last part of the subkey.
 
win32_error win32_RegSetKeyValue (HKEY key, std::string_view path, std::string_view name, uint32_t value)
 Write a DWORD registry value.
 
win32_error win32_RegSetKeyValue (HKEY key, std::string_view path, std::string_view name, std::string_view value)
 Write a string registry value.
 
std::expected< void, win32_error > win32_RegGetValue_void (HKEY key, std::string_view path, std::string_view name)
 Check if a registry entry exists.
 
std::expected< uint32_t, win32_error > win32_RegGetValue_dword (HKEY key, std::string_view path, std::string_view name) noexcept
 Read a DWORD registry value.
 
std::expected< std::string, win32_error > win32_RegGetValue_string (HKEY key, std::string_view path, std::string_view name) noexcept
 Read a strings from the registry value.
 
std::expected< std::vector< std::string >, win32_error > win32_RegGetValue_multi_string (HKEY key, std::string_view path, std::string_view name) noexcept
 Read a list of strings from the registry value.
 
template<typename T >
std::expected< T, win32_error > win32_RegGetValue (HKEY key, std::string_view path, std::string_view name)=delete
 Read from the registry value.
 
template<>
std::expected< void, win32_error > win32_RegGetValue (HKEY key, std::string_view path, std::string_view name)
 
template<>
std::expected< std::string, win32_error > win32_RegGetValue (HKEY key, std::string_view path, std::string_view name)
 
template<>
std::expected< std::vector< std::string >, win32_error > win32_RegGetValue (HKEY key, std::string_view path, std::string_view name)
 
std::expected< UINT, win32_error > win32_MessageBox (HWND handle, std::string_view text, std::string_view caption, UINT type) noexcept
 

Variables

constexpr auto cpu_feature_metadata = cpu_feature_metadata_init()
 
hi_export constexpr auto audio_device_state_metadata
 
hi_export constexpr auto audio_direction_metadata
 
hi_export constexpr auto common_sample_rates
 
hi_export constexpr auto surround_mode_icons
 
hi_export constexpr auto surround_mode_names
 
hi_export constexpr auto surround_mode_short_names
 
hi_export constexpr auto surround_mode_speaker_mappings
 
template<typename T >
hi_export constexpr bool is_datum_type_v = is_datum_type<T>::value
 
constexpr matrix3 Rec2020_to_XYZ = color_primaries_to_RGBtoXYZ(0.3127f, 0.3290f, 0.708f, 0.292f, 0.170f, 0.797f, 0.131f, 0.046f)
 Rec.2020 to XYZ color space conversion matrix.
 
constexpr matrix3 XYZ_to_Rec2020 = ~Rec2020_to_XYZ
 XYZ to Rec.2020 color space conversion matrix.
 
constexpr matrix3 Rec2100_to_XYZ = Rec2020_to_XYZ
 Rec.2100 to XYZ color space conversion matrix.
 
constexpr matrix3 XYZ_to_Rec2100 = XYZ_to_Rec2020
 XYZ to Rec.2100 color space conversion matrix.
 
constexpr auto semantic_color_metadata
 
constexpr matrix3 sRGB_to_XYZ
 Matrix to convert sRGB to XYZ.
 
constexpr matrix3 XYZ_to_sRGB
 Matrix to convert XYZ to sRGB.
 
std::atomic< global_state_typeglobal_state = global_state_type::log_level_default
 The global state of the hikogui framework.
 
template<typename Func , typename... Args>
constexpr auto cancel_features_v = cancel_features<Func, Args...>::value
 The value of the hi::cancel_features<> type trait.
 
constexpr auto font_style_metadata
 
template<typename T >
constexpr bool transform2_v = transform2<T>::value
 
template<typename T >
constexpr bool transform3_v = transform3<T>::value
 
void * render_doc_api = nullptr
 
constexpr auto gui_event_type_metadata
 
constexpr auto widget_state_mode_shift = 0
 
constexpr auto widget_state_value_shift = 5
 
std::unordered_map< translation_key, std::vector< std::string > > translations
 
std::atomic< bool > translations_loaded = false
 
std::optional< std::string_application_name = std::nullopt
 
std::optional< std::string_application_slug = std::nullopt
 
std::optional< std::string_application_vendor = std::nullopt
 
std::optional< semantic_version > _application_version = std::nullopt
 
template<lexer_config Config>
constexpr auto lexer = detail::lexer<Config>()
 
log log_global
 
constexpr auto dip = au::SingularNameFor<Dips>{}
 
constexpr auto dips = au::QuantityMaker<Dips>{}
 
constexpr auto dips_pt = au::QuantityPointMaker<Dips>{}
 
constexpr auto dip_per_em = au::SingularNameFor<DipsPerEm>{}
 
constexpr auto dips_per_em = au::QuantityMaker<DipsPerEm>{}
 
constexpr auto dips_per_em_pt = au::QuantityPointMaker<DipsPerEm>{}
 
constexpr auto em_square = au::SingularNameFor<EmSquares>{}
 
constexpr auto em_squares = au::QuantityMaker<EmSquares>{}
 
constexpr auto em_squares_pt = au::QuantityPointMaker<EmSquares>{}
 
constexpr auto pixel = au::SingularNameFor<Pixels>{}
 
constexpr auto pixels = au::QuantityMaker<Pixels>{}
 
constexpr auto pixels_pt = au::QuantityPointMaker<Pixels>{}
 
constexpr auto pixel_per_em = au::SingularNameFor<PixelsPerEm>{}
 
constexpr auto pixels_per_em = au::QuantityMaker<PixelsPerEm>{}
 
constexpr auto pixels_per_em_pt = au::QuantityPointMaker<PixelsPerEm>{}
 
constexpr auto pixel_per_inch = au::SingularNameFor<PixelsPerInch>{}
 
constexpr auto pixels_per_inch = au::QuantityMaker<PixelsPerInch>{}
 
constexpr auto pixels_per_inch_pt = au::QuantityPointMaker<PixelsPerInch>{}
 
constexpr auto point = au::SingularNameFor<Points>{}
 
constexpr auto points = au::QuantityMaker<Points>{}
 
constexpr auto points_pt = au::QuantityPointMaker<Points>{}
 
constexpr auto point_per_em = au::SingularNameFor<PointsPerEm>{}
 
constexpr auto points_per_em = au::QuantityMaker<PointsPerEm>{}
 
constexpr auto points_per_em_pt = au::QuantityPointMaker<PointsPerEm>{}
 
constexpr auto device_type_metadata
 
constexpr auto policy_metadata
 
template<typename T >
constexpr size_t number_of_data_members_v = number_of_data_members<T>::value
 
std::terminate_handler old_terminate_handler
 The old terminate handler.
 
template<typename T >
constexpr bool is_numeric_signed_integral_v = is_numeric_signed_integral<T>::value
 
template<typename T >
constexpr bool is_numeric_unsigned_integral_v = is_numeric_unsigned_integral<T>::value
 
template<typename T >
constexpr bool is_numeric_integral_v = is_numeric_integral<T>::value
 
template<typename T >
constexpr bool is_numeric_v = is_numeric<T>::value
 
template<typename T >
constexpr bool is_character_v = is_character<T>::value
 
template<typename T >
constexpr bool is_byte_like_v = is_byte_like<T>::value
 An array of this type will implicitly create objects within that array.
 
template<std::size_t N>
constexpr bool has_native_intxx_v = has_native_intxx<N>::value
 
template<std::size_t N>
constexpr bool has_native_uintxx_v = has_native_uintxx<N>::value
 
template<std::size_t N>
constexpr bool has_native_floatxx_v = has_native_floatxx<N>::value
 
template<std::size_t N>
constexpr bool has_intxx_v = has_intxx<N>::value
 
template<std::size_t N>
constexpr bool has_uintxx_v = has_uintxx<N>::value
 
template<std::size_t N>
constexpr bool has_floatxx_v = has_floatxx<N>::value
 
template<typename T >
constexpr bool has_value_type_v = has_value_type<T>::value
 
template<typename T >
constexpr bool has_add_callback_v = has_add_callback<T>::value
 
template<typename BaseType , typename DerivedType >
constexpr bool is_decayed_base_of_v = is_decayed_base_of<BaseType, DerivedType>::value
 
template<typename DerivedType , typename BaseType >
constexpr bool is_derived_from_v = is_derived_from<DerivedType, BaseType>::value
 
template<typename DerivedType , typename BaseType >
constexpr bool is_decayed_derived_from_v = is_decayed_derived_from<DerivedType, BaseType>::value
 
template<typename T >
constexpr bool is_atomic_v = is_atomic<T>::value
 
template<typename Out , typename In >
constexpr bool type_in_range_v
 All values of numeric type In can be represented without loss of range by numeric type Out.
 
template<typename Context , typename Expected , typename... OtherExpected>
constexpr bool is_forward_of_v = is_forward_of<Context, Expected, OtherExpected...>::value
 
template<typename T >
constexpr bool default_values_v = default_values<T>::value
 
auto global_hresult_error_category = hresult_error_category{}
 
auto global_win32_error_category = win32_error_category{}
 

Detailed Description

The HikoGUI namespace.