toRaw method

  1. @override
Pointer<NativeType> toRaw([
  1. int extraLength = 0,
  2. bool isCustomEvent = false
])
override

Implementation

@override
Pointer<NativeType> toRaw([int extraLength = 0, bool isCustomEvent = false]) {
  // Layout must match WebFTransitionEventInit in
  // bridge/include/plugin_api/transition_event_init.h:
  //   double elapsed_time;
  //   const char* property_name;
  //   const char* pseudo_element;
  List<int> methods = [
    doubleToUint64(elapsedTime),
    stringToNativeString(propertyName).address,
    stringToNativeString(pseudoElement).address,
  ];

  Pointer<RawEvent> rawEvent = super.toRaw(methods.length + extraLength).cast<RawEvent>();
  int currentStructSize = rawEvent.ref.length + methods.length;
  Uint64List bytes = rawEvent.ref.bytes.asTypedList(currentStructSize);
  bytes.setAll(rawEvent.ref.length, methods);
  rawEvent.ref.length = currentStructSize;

  return rawEvent;
}