From 676278920f1a90be1ef15e8cfc1cf594d4e428d7 Mon Sep 17 00:00:00 2001 From: open-trade Date: Tue, 17 Nov 2020 18:10:49 +0800 Subject: [PATCH] rust ffi for rgba --- flutter_hbb/lib/common.dart | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/flutter_hbb/lib/common.dart b/flutter_hbb/lib/common.dart index 9e612168c..dd6be65ba 100644 --- a/flutter_hbb/lib/common.dart +++ b/flutter_hbb/lib/common.dart @@ -7,6 +7,12 @@ import 'dart:async'; import 'dart:convert'; import 'package:flutter_easyloading/flutter_easyloading.dart'; +class RgbaFrame extends Struct { + @Uint32() + int len; + Pointer data; +} + class HexColor extends Color { HexColor(final String hexColor) : super(_getColorFromHex(hexColor)); @@ -28,6 +34,8 @@ class MyTheme { typedef F1 = void Function(Pointer); typedef F2 = Pointer Function(Pointer, Pointer); typedef F3 = void Function(Pointer, Pointer); +typedef F4 = void Function(Pointer); +typedef F5 = Pointer Function(); // https://juejin.im/post/6844903864852807694 class FfiModel with ChangeNotifier { @@ -45,6 +53,8 @@ class FFI { static F1 _freeCString; static F2 _getByName; static F3 _setByName; + static F4 _freeRgba; + static F5 _getRgba; static String getId() { return getByName("remote_id"); @@ -116,6 +126,9 @@ class FFI { 'set_by_name'); _freeCString = dylib .lookupFunction), F1>('rust_cstr_free'); + _freeRgba = dylib + .lookupFunction), F4>('free_rgba'); + _getRgba = dylib.lookupFunction('get_rgba'); final dir = (await getApplicationDocumentsDirectory()).path; setByName("init", dir); }