use libc::{c_char, size_t, c_uint, c_void};
use types::{AiString, Return};
use scene::RawScene;
use fileio::{AiFileIO};
#[repr(C)]
struct ExportFormatDesc {
pub id: *const c_char,
pub description: *const c_char,
pub file_ext: *const c_char,
}
#[repr(C)]
struct RawExportDataBlob {
pub size: size_t,
data: *const c_void,
pub name: AiString,
next: *const RawExportDataBlob
}
struct ExportDataBlob {
raw: *const RawExportDataBlob,
}
impl Drop for ExportDataBlob {
fn drop(&mut self) {
unsafe { aiReleaseExportBlob(self.raw) }
}
}
extern {
pub fn aiGetExportFormatCount() -> size_t;
pub fn aiGetExportFormatDescription(index: size_t) -> *const ExportFormatDesc;
pub fn aiCopyScene(input: *const RawScene, output: *mut*mut RawScene);
pub fn aiExportScene( scene: *const RawScene,
formatId: *const c_char,
file_name: *const c_char,
preprocessing: c_uint)
-> Return;
pub fn aiReleaseExportBlob(data: *const RawExportDataBlob);
pub fn aiExportSceneEx( scene: *const RawScene,
format_id: *const c_char,
file_name: *const c_char,
file_io: *mut AiFileIO,
preprocessing: c_uint )
-> Return;
pub fn aiExportSceneToBlob( scene: *const RawScene,
format_id: *const c_char,
preprocessing: c_uint )
-> *const RawExportDataBlob;
}