From 81a59e29ff0290f9f148243345279c6642751045 Mon Sep 17 00:00:00 2001 From: Kjetil Orbekk Date: Fri, 5 Aug 2016 00:14:08 -0400 Subject: Create GEGL node. --- Cargo.toml | 1 + src/main.rs | 26 +++++++++++++++++++++++++- 2 files changed, 26 insertions(+), 1 deletion(-) diff --git a/Cargo.toml b/Cargo.toml index 2d66556..87e126f 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -5,3 +5,4 @@ authors = ["Kjetil Orbekk "] [dependencies] libc = "*" +glib = "*" diff --git a/src/main.rs b/src/main.rs index d119473..0802061 100644 --- a/src/main.rs +++ b/src/main.rs @@ -1,14 +1,38 @@ extern crate libc; +extern crate glib; +use std::ffi::CString; use std::ptr; +use glib::prelude::*; +use glib::translate::*; +use glib::{TypedValue, Value}; #[link(name="gegl-0.3")] extern { -fn gegl_init(argc: *mut i32, argv: *mut *mut libc::c_char); + fn gegl_init(argc: *mut i32, argv: *mut *mut libc::c_char); + fn gegl_node_new() -> *mut libc::c_void; + fn gegl_node_create_child(parent: *mut libc::c_void, + operation: *const libc::c_char) + -> *mut libc::c_void; + fn gegl_node_set_property(node: *mut libc::c_void, + property_name: *const libc::c_char, + value: *const libc::c_void); } fn main() { unsafe { let mut argc : i32 = 0; gegl_init(&mut argc as *mut i32, ptr::null_mut()); + let graph = gegl_node_new(); + let src = gegl_node_create_child( + graph, CString::new("gegl:load").unwrap().as_ptr()); + println!("{:?}", src); + println!("Hello"); + gegl_node_set_property( + src, + CString::new("path").unwrap().as_ptr(), + // ptr::null_mut() + Value::from("/tmp/test.jpg").to_glib_none().0 + as *const libc::c_void); + println!("Hello"); } } -- cgit v1.2.3