// C-ABI surface of the V library. Hand-maintained; ffigen parses this. #ifndef VFLUTTER_H #define VFLUTTER_H #ifdef __cplusplus extern "C" { #endif #if defined(_WIN32) #define VF_API __declspec(dllexport) #else #define VF_API __attribute__((visibility("default"))) #endif // Idempotent. Safe to call from any isolate; required only on platforms // where the ELF/Mach-O constructor may not have run (iOS static archives). VF_API void vf_init(void); VF_API int vf_add(int a, int b); // Returns a NUL-terminated string allocated by V. Caller MUST release it // with vf_free. Never free it with Dart's calloc/malloc. VF_API char *vf_greet(const char *name); VF_API void vf_free(void *p); // Fills rows [y0, y1) of a w x h Mandelbrot image as RGBA8888, packed from // the start of `buf`. The buffer is owned by the CALLER: V allocates nothing // here and there is nothing to vf_free. Bands are independent, so separate // calls may run concurrently on different threads/isolates. // // `buf` must hold at least (y1 - y0) * w * 4 bytes. VF_API void vf_mandelbrot(unsigned char *buf, int w, int h, double cx, double cy, double scale, int max_iter, int y0, int y1); #ifdef __cplusplus } #endif #endif // VFLUTTER_H