godot_voxel/streams/file_utils.h
Marc Gilleron a8c5fed29d File streams fixes:
- Uniform compression now supports more than 8-bit depth (compat implementation)
- Fix buffers not being set to correct depth before loading from file
- Check if we save correct buffer depths in region files
- Fix inverted check when reading region meta file
- Fix version check not working in JSON meta file because it's float
2020-02-09 17:07:53 +00:00

50 lines
1.1 KiB
C

#ifndef FILE_UTILS_H
#define FILE_UTILS_H
#include "../math/vector3i.h"
#include <core/os/dir_access.h>
#include <core/os/file_access.h>
inline Vector3i get_vec3u8(FileAccess *f) {
Vector3i v;
v.x = f->get_8();
v.y = f->get_8();
v.z = f->get_8();
return v;
}
inline void store_vec3u8(FileAccess *f, const Vector3i v) {
f->store_8(v.x);
f->store_8(v.y);
f->store_8(v.z);
}
inline Vector3i get_vec3u32(FileAccess *f) {
Vector3i v;
v.x = f->get_32();
v.y = f->get_32();
v.z = f->get_32();
return v;
}
inline void store_vec3u32(FileAccess *f, const Vector3i v) {
f->store_32(v.x);
f->store_32(v.y);
f->store_32(v.z);
}
enum VoxelFileResult {
VOXEL_FILE_OK = 0,
VOXEL_FILE_CANT_OPEN,
VOXEL_FILE_UNEXPECTED_EOF,
VOXEL_FILE_INVALID_MAGIC,
VOXEL_FILE_INVALID_VERSION,
VOXEL_FILE_INVALID_DATA
};
const char *to_string(VoxelFileResult res);
VoxelFileResult check_magic_and_version(FileAccess *f, uint8_t expected_version, const char *expected_magic, uint8_t &out_version);
Error check_directory_created(const String &directory_path);
#endif // FILE_UTILS_H