void Model::loaded(FS::IFile& file, bool success, FS::FileSystem& fs) { PROFILE_FUNCTION(); if (success) { FileHeader header; file.read(&header, sizeof(header)); if (header.m_magic == FILE_MAGIC && header.m_version <= (uint32_t)FileVersion::LATEST && parseMeshes(file) && parseGeometry(file) && parseBones(file) && parseLODs(file)) { m_size = file.size(); decrementDepCount(); } else { g_log_warning.log("renderer") << "Error loading model " << m_path.c_str(); onFailure(); return; } } else { g_log_warning.log("renderer") << "Error loading model " << m_path.c_str(); onFailure(); } }
void LuaScript::loaded(FS::IFile& file, bool success, FS::FileSystem& fs) { if (success) { m_source_code.set((const char*)file.getBuffer(), file.size()); parseProperties(); m_size = file.size(); decrementDepCount(); } else { g_log_error.log("lua_script") << "Could not load script " << m_path.c_str(); onFailure(); } }
void Animation::loaded(FS::IFile& file, bool success, FS::FileSystem& fs) { if (success) { IAllocator& allocator = getAllocator(); allocator.deallocate(m_positions); allocator.deallocate(m_rotations); allocator.deallocate(m_bones); m_positions = nullptr; m_rotations = nullptr; m_bones = 0; m_frame_count = m_bone_count = 0; Header header; file.read(&header, sizeof(header)); if (header.magic != HEADER_MAGIC) { onFailure(); g_log_error.log("animation") << m_path.c_str() << " is not an animation file"; return; } if (header.version > 1) { onFailure(); g_log_error.log("animation") << "Unsupported animation version " << header.version << " (" << m_path.c_str() << ")"; return; } m_fps = header.fps; file.read(&m_frame_count, sizeof(m_frame_count)); file.read(&m_bone_count, sizeof(m_bone_count)); m_positions = static_cast<Vec3*>(allocator.allocate(sizeof(Vec3) * m_frame_count * m_bone_count)); m_rotations = static_cast<Quat*>(allocator.allocate(sizeof(Quat) * m_frame_count * m_bone_count)); m_bones = static_cast<uint32_t*>(allocator.allocate(sizeof(uint32_t) * m_bone_count)); file.read(&m_positions[0], sizeof(Vec3)* m_bone_count * m_frame_count); file.read(&m_rotations[0], sizeof(Quat)* m_bone_count * m_frame_count); file.read(m_bones, sizeof(m_bones[0]) * m_bone_count); m_size = file.size(); decrementDepCount(); } else { onFailure(); } }
void Texture::loaded(FS::IFile& file, bool success, FS::FileSystem& fs) { PROFILE_FUNCTION(); if (success) { const char* path = m_path.c_str(); size_t len = m_path.length(); bool loaded = false; if (len > 3 && strcmp(path + len - 4, ".dds") == 0) { loaded = loadDDS(file); } else if (len > 3 && strcmp(path + len - 4, ".raw") == 0) { loaded = loadRaw(file); } else { loaded = loadTGA(file); } if (!loaded) { g_log_warning.log("renderer") << "Error loading texture " << m_path.c_str(); onFailure(); } else { m_size = file.size(); decrementDepCount(); } } else { g_log_warning.log("renderer") << "Error loading texture " << m_path.c_str(); onFailure(); } }