public void ValidateCallbacks() { if (_wakeUp == null) { throw new ArgumentNullException(nameof(_wakeUp)); } if (_flush == null) { throw new ArgumentNullException(nameof(_flush)); } if (_log == null) { throw new ArgumentNullException(nameof(_log)); } if (_loadStarted == null) { throw new ArgumentNullException(nameof(_loadStarted)); } if (_loadEnded == null) { throw new ArgumentNullException(nameof(_loadEnded)); } if (_titleChanged == null) { throw new ArgumentNullException(nameof(_titleChanged)); } if (_historyChanged == null) { throw new ArgumentNullException(nameof(_historyChanged)); } if (_urlChanged == null) { throw new ArgumentNullException(nameof(_urlChanged)); } if (_executeInServoThread == null) { throw new ArgumentNullException(nameof(_executeInServoThread)); } if (string.IsNullOrEmpty(_resourcePath)) { throw new ArgumentNullException(nameof(_resourcePath)); } HostCallbacks = new HostCallbacks { wakeup = Marshal.GetFunctionPointerForDelegate(_wakeUp), flush = Marshal.GetFunctionPointerForDelegate(_flush), log = Marshal.GetFunctionPointerForDelegate(_log), on_load_started = Marshal.GetFunctionPointerForDelegate(_loadStarted), on_load_ended = Marshal.GetFunctionPointerForDelegate(_loadEnded), on_title_changed = Marshal.GetFunctionPointerForDelegate(_titleChanged), on_url_changed = Marshal.GetFunctionPointerForDelegate(_urlChanged), on_history_changed = Marshal.GetFunctionPointerForDelegate(_historyChanged) }; }
internal static extern ServoResult InitWithGL(byte *url, byte *resources_path, HostCallbacks callbacks, ViewLayout.__Internal layout);