1use std::os::raw::{c_char, c_void};
2
3use cfileio::*;
4use postprocess::*;
5use scene::*;
6use types::*;
7
8#[repr(C)]
9pub struct AiExportFormatDesc {
10 pub id: *const c_char,
11 pub description: *const c_char,
12 pub file_extension: *const c_char,
13}
14
15#[repr(C)]
16pub struct AiExportDataBlob {
17 pub size: usize,
18 pub data: *mut c_void,
19 pub name: AiString,
20 pub next: *mut AiExportDataBlob,
21}
22
23extern {
24 pub fn aiGetExportFormatCount() -> usize;
25
26 pub fn aiGetExportFormatDescription(
27 index: usize) -> *const AiExportFormatDesc;
28
29 pub fn aiReleaseExportFormatDescription(
30 desc: *const AiExportFormatDesc);
31
32 pub fn aiCopyScene(
33 input: *const AiScene,
34 output: *mut *mut AiScene);
35
36 pub fn aiFreeScene(
37 input: *const AiScene);
38
39 pub fn aiExportScene(
40 scene: *const AiScene,
41 format_id: *const c_char,
42 filename: *const c_char,
43 preprocessing: AiPostProcessSteps) -> AiReturn;
44
45 pub fn aiExportSceneEx(
46 scene: *const AiScene,
47 format_id: *const c_char,
48 filename: *const c_char,
49 io: *mut AiFileIO,
50 preprocessing: AiPostProcessSteps) -> AiReturn;
51
52 pub fn aiExportSceneToBlob(
53 scene: *const AiScene,
54 format_id: *const c_char,
55 preprocessing: AiPostProcessSteps) -> *const AiExportDataBlob;
56
57 pub fn aiReleaseExportBlob(
58 data: *const AiExportDataBlob);
59}