diff options
author | Kjetil Orbekk <kjetil.orbekk@gmail.com> | 2016-08-05 00:14:08 -0400 |
---|---|---|
committer | Kjetil Orbekk <kjetil.orbekk@gmail.com> | 2016-08-05 00:14:08 -0400 |
commit | 81a59e29ff0290f9f148243345279c6642751045 (patch) | |
tree | f0a73845aa48ddeff2fae4dcde342ab671bd6129 | |
parent | 50c0bd4ba7f3f76384da6a299e73d90360dea408 (diff) |
Create GEGL node.
-rw-r--r-- | Cargo.toml | 1 | ||||
-rw-r--r-- | src/main.rs | 26 |
2 files changed, 26 insertions, 1 deletions
@@ -5,3 +5,4 @@ authors = ["Kjetil Orbekk <kjetil.orbekk@gmail.com>"] [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"); } } |