Packages
vix
0.14.0
0.40.0
0.39.0
0.38.0
0.37.0
0.36.0
0.35.0
0.34.0
0.33.1
0.33.0
0.32.0
0.31.1
0.31.0
0.30.0
0.29.0
0.28.0
0.27.0
0.26.0
0.25.0
0.24.0
0.23.1
0.22.0
0.21.0
0.20.0
0.19.0
0.18.0
0.17.0
0.16.4
0.16.3
0.16.2
0.16.1
0.16.0
0.15.1
0.15.0
0.14.0
0.13.0
0.12.0
0.11.0
0.10.1
0.10.0
0.9.0
0.8.0
0.7.0
0.6.1
0.6.0
0.5.0
0.4.0
0.3.0
0.2.1
0.2.0
retired
0.1.0
NIF based bindings for libvips
Current section
Files
Jump to
Current section
Files
c_src/vips_interpolate.c
#include <glib-object.h>
#include <vips/vips.h>
#include "g_object/g_object.h"
#include "utils.h"
#include "vips_interpolate.h"
ERL_NIF_TERM nif_interpolate_new(ErlNifEnv *env, int argc,
const ERL_NIF_TERM argv[]) {
ASSERT_ARGC(argc, 1);
ERL_NIF_TERM ret;
ErlNifTime start;
char name[1024] = {0};
VipsInterpolate *interpolate = NULL;
start = enif_monotonic_time(ERL_NIF_USEC);
if (!get_binary(env, argv[0], name, 1024)) {
ret = raise_badarg(env, "interpolate name must be a valid string");
goto exit;
}
interpolate = vips_interpolate_new(name);
if (!interpolate) {
error("Failed to get interpolate for %s. error: %s", name,
vips_error_buffer());
vips_error_clear();
ret = make_error(env, "Failed to create VipsInterpolate for given name");
goto exit;
}
ret = make_ok(env, g_object_to_erl_term(env, (GObject *)interpolate));
exit:
notify_consumed_timeslice(env, start, enif_monotonic_time(ERL_NIF_USEC));
return ret;
}