32 lines
749 B
Odin
32 lines
749 B
Odin
package main
|
|
|
|
import "core:os"
|
|
import "core:io"
|
|
|
|
PROJECT_DATA_HEADER :: "WOWOWOW THIS IS HEADER WOWOWOW"
|
|
PROJECT_DATA_VERSION :: 1
|
|
|
|
ProjectData :: struct {
|
|
version: u32,
|
|
matrix_count: u32,
|
|
matrices: []f32,
|
|
}
|
|
|
|
WriteProjectError :: union {
|
|
os.Error,
|
|
}
|
|
|
|
WriteProjectErrorType :: enum {
|
|
IncompatibleVersion,
|
|
}
|
|
|
|
project_write :: proc(project: ^ProjectData, path: string) -> os.Error {
|
|
f := os.open(path, {.Create, .Trunc, .Write}) or_return
|
|
w := io.to_writer(os.to_stream(f))
|
|
version: u32 = PROJECT_DATA_VERSION
|
|
io.write_ptr(w, &version, size_of(version))
|
|
io.write_ptr(w, &project.matrix_count, size_of(project.matrix_count))
|
|
io.write_ptr(w, raw_data(project.matrices), int(project.matrix_count) * 9 * size_of(f32))
|
|
os.close(f)
|
|
return nil
|
|
}
|