diff options
Diffstat (limited to 'src/main.rs')
-rw-r--r-- | src/main.rs | 26 |
1 files changed, 25 insertions, 1 deletions
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"); } } |