MCPcopy Create free account
hub / github.com/Redot-Engine/redot-engine / _encode_buffer_bins

Method _encode_buffer_bins

modules/gltf/gltf_document.cpp:780–810  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

778}
779
780Error GLTFDocument::_encode_buffer_bins(Ref<GLTFState> p_state, const String &p_path) {
781 print_verbose("glTF: Total buffers: " + itos(p_state->buffers.size()));
782
783 if (p_state->buffers.is_empty()) {
784 return OK;
785 }
786 Array buffers;
787
788 for (GLTFBufferIndex i = 0; i < p_state->buffers.size(); i++) {
789 Vector<uint8_t> buffer_data = p_state->buffers[i];
790 Dictionary gltf_buffer;
791 String filename = p_path.get_basename().get_file() + itos(i) + ".bin";
792 String path = p_path.get_base_dir() + "/" + filename;
793 Error err;
794 Ref<FileAccess> file = FileAccess::open(path, FileAccess::WRITE, &err);
795 if (file.is_null()) {
796 return err;
797 }
798 if (buffer_data.is_empty()) {
799 return OK;
800 }
801 file->create(FileAccess::ACCESS_RESOURCES);
802 file->store_buffer(buffer_data.ptr(), buffer_data.size());
803 gltf_buffer["uri"] = filename;
804 gltf_buffer["byteLength"] = buffer_data.size();
805 buffers.push_back(gltf_buffer);
806 }
807 p_state->json["buffers"] = buffers;
808
809 return OK;
810}
811
812Error GLTFDocument::_parse_buffers(Ref<GLTFState> p_state, const String &p_base_path) {
813 if (!p_state->json.has("buffers")) {

Callers

nothing calls this directly

Calls 11

itosFunction · 0.85
get_basenameMethod · 0.80
get_base_dirMethod · 0.80
sizeMethod · 0.65
is_emptyMethod · 0.45
get_fileMethod · 0.45
is_nullMethod · 0.45
createMethod · 0.45
store_bufferMethod · 0.45
ptrMethod · 0.45
push_backMethod · 0.45

Tested by

no test coverage detected