From 9f641ffbf708374fc30228bc2bf0796e191815ec Mon Sep 17 00:00:00 2001 From: Jordan Date: Wed, 13 Mar 2024 10:26:37 -0700 Subject: [PATCH] fix refactored code. --- ffigen.yaml | 3 +- lib/libdart_openmvg_generated.dart | 96 ++++++++++++++++++------------ src/CMakeLists.txt | 1 - src/frame.cxx | 25 ++++---- src/frame.h | 4 +- src/image.h | 4 ++ 6 files changed, 78 insertions(+), 55 deletions(-) diff --git a/ffigen.yaml b/ffigen.yaml index 68ac82a..9508016 100644 --- a/ffigen.yaml +++ b/ffigen.yaml @@ -3,11 +3,12 @@ name: LibDartOpenMVG description: | Dart bindings for the OpenMVG library. output: 'lib/libdart_openmvg_generated.dart' -compiler-opts: '-I/usr/include -L /usr/lib/ -lpng' headers: entry-points: + - 'src/frame.h' - 'src/image.h' include-directives: + - 'src/frame.h' - 'src/image.h' preamble: | // ignore_for_file: always_specify_types diff --git a/lib/libdart_openmvg_generated.dart b/lib/libdart_openmvg_generated.dart index a7c95c3..dd6743e 100644 --- a/lib/libdart_openmvg_generated.dart +++ b/lib/libdart_openmvg_generated.dart @@ -25,50 +25,22 @@ class LibDartOpenMVG { lookup) : _lookup = lookup; - ffi.Pointer image_result_new( - ffi.Pointer arg0, - int data_len, + ffi.Pointer make_buffer( + ffi.Pointer arg0, + int arg1, ) { - return _image_result_new( + return _make_buffer( arg0, - data_len, + arg1, ); } - late final _image_result_newPtr = _lookup< + late final _make_bufferPtr = _lookup< ffi.NativeFunction< - ffi.Pointer Function( - ffi.Pointer, ffi.Size)>>('image_result_new'); - late final _image_result_new = _image_result_newPtr.asFunction< - ffi.Pointer Function(ffi.Pointer, int)>(); - - ffi.Pointer image_result_new_error( - int error_t, - ) { - return _image_result_new_error( - error_t, - ); - } - - late final _image_result_new_errorPtr = - _lookup Function(ffi.Int)>>( - 'image_result_new_error'); - late final _image_result_new_error = _image_result_new_errorPtr - .asFunction Function(int)>(); - - int image_result_free( - ffi.Pointer arg0, - ) { - return _image_result_free( - arg0, - ); - } - - late final _image_result_freePtr = - _lookup)>>( - 'image_result_free'); - late final _image_result_free = _image_result_freePtr - .asFunction)>(); + ffi.Pointer Function( + ffi.Pointer, ffi.Size)>>('make_buffer'); + late final _make_buffer = _make_bufferPtr + .asFunction Function(ffi.Pointer, int)>(); ffi.Pointer new_frame_from_handle( ffi.Pointer arg0, @@ -115,6 +87,51 @@ class LibDartOpenMVG { ffi.Pointer Function( ffi.Pointer, int, int, int, int)>(); + ffi.Pointer image_result_new( + ffi.Pointer arg0, + int data_len, + ) { + return _image_result_new( + arg0, + data_len, + ); + } + + late final _image_result_newPtr = _lookup< + ffi.NativeFunction< + ffi.Pointer Function( + ffi.Pointer, ffi.Size)>>('image_result_new'); + late final _image_result_new = _image_result_newPtr.asFunction< + ffi.Pointer Function(ffi.Pointer, int)>(); + + ffi.Pointer image_result_new_error( + int arg0, + ) { + return _image_result_new_error( + arg0, + ); + } + + late final _image_result_new_errorPtr = + _lookup Function(ffi.Int)>>( + 'image_result_new_error'); + late final _image_result_new_error = _image_result_new_errorPtr + .asFunction Function(int)>(); + + int image_result_free( + ffi.Pointer arg0, + ) { + return _image_result_free( + arg0, + ); + } + + late final _image_result_freePtr = + _lookup)>>( + 'image_result_free'); + late final _image_result_free = _image_result_freePtr + .asFunction)>(); + ffi.Pointer archimedes_get_image_data( ffi.Pointer arg0, ) { @@ -244,6 +261,8 @@ final class _IO_codecvt extends ffi.Opaque {} final class _IO_wide_data extends ffi.Opaque {} +typedef Frame = _Frame; + final class _ImageResult extends ffi.Struct { external ffi.Pointer data; @@ -257,4 +276,3 @@ final class _ImageResult extends ffi.Struct { typedef u_char = __u_char; typedef __u_char = ffi.UnsignedChar; typedef ImageResult = _ImageResult; -typedef Frame = _Frame; diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt index 521f36b..638c1be 100644 --- a/src/CMakeLists.txt +++ b/src/CMakeLists.txt @@ -93,7 +93,6 @@ set_target_properties(${LIBDART_OPENMVG} OUTPUT_NAME ${LIBDART_OPENMVG} ) -target_link_options(${LIBDART_OPENMVG} PRIVATE "-Wl,-Bstatic") target_link_options(${LIBDART_OPENMVG} PRIVATE "-Wl,-Bdynamic") add_executable( diff --git a/src/frame.cxx b/src/frame.cxx index b80b6ee..a02c276 100644 --- a/src/frame.cxx +++ b/src/frame.cxx @@ -1,14 +1,5 @@ #include "frame.h" -const Frame *new_frame_from_handle(FILE *stream, int w, int h, int depth) -{ - Frame *f = (Frame *)malloc(sizeof(Frame)); - f->stream = stream; - f->w = w; - f->h = h; - f->depth = depth; - return f; -} FILE *make_buffer(const uint8_t *data, const size_t data_len) { @@ -29,10 +20,20 @@ FILE *make_buffer(const uint8_t *data, const size_t data_len) return file; } -_FFI_PLUGIN -const Frame * -new_frame_from_data(const uint8_t *data, const size_t data_len, int w, int h, int depth) + +const Frame *new_frame_from_data(const uint8_t *data, const size_t data_len, int w, int h, int depth) { FILE *buf = make_buffer(data, data_len); return new_frame_from_handle(buf, w, h, depth); } + + +const Frame *new_frame_from_handle(FILE *stream, int w, int h, int depth) +{ + Frame *f = (Frame *)malloc(sizeof(Frame)); + f->stream = stream; + f->w = w; + f->h = h; + f->depth = depth; + return f; +} \ No newline at end of file diff --git a/src/frame.h b/src/frame.h index c3bd1e7..de218a8 100644 --- a/src/frame.h +++ b/src/frame.h @@ -15,6 +15,6 @@ FILE *make_buffer(const uint8_t *, const size_t); _FFI_PLUGIN const Frame *new_frame_from_handle(FILE *, int, int, int); + _FFI_PLUGIN -const Frame * -new_frame_from_data(const uint8_t *, const size_t, int, int, int); \ No newline at end of file +const Frame *new_frame_from_data(const uint8_t *, const size_t, int, int, int); \ No newline at end of file diff --git a/src/image.h b/src/image.h index cd03581..1099589 100644 --- a/src/image.h +++ b/src/image.h @@ -34,6 +34,7 @@ #include #include #include +#include #include #if defined(__cplusplus) @@ -42,8 +43,11 @@ extern "C" { auto png_sig_cm = png_sig_cmp; } + #endif // __cplusplus +#define error_t int + #ifdef __cplusplus class StreamedView : openMVG::sfm::View {