Cross-Platform FileManager #449
Labels
No labels
Context: Async
Context: Bug
Context: CI
Context: Dependencies
Context: Documentation
Context: Enhancement
Context: Example
Context: Macro
Context: Runtime
Difficulty: Easy
Difficulty: Hard
Difficulty: Medium
Platform: Android
Platform: Linux
Platform: Web
Platform: Windows
Platform: iOS
Platform: macOS
Type: Discussion
Type: Evaluation
Type: Tracker
No milestone
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set.
Reference
SakulFlee/Orbital#449
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
The current
Loadersystem is highly flexible, but hard to implement and use.A simpler way would be to have a
FileManagerthat handles file reads (& writes?) independently, no matter on which platform.Currently, we can read (& write) only on Desktop platforms, for mobile and web there needs to be some special logic anyways.
Should the
FileManagerbe part ofWorldChangesor independent?I feel like both could makes sense.
WorldChangeswould allow for some very easy file import (e.g. glTF) like so:WorldChange::LoadFile("path-to-file").However, we might need to load other files that aren't supposed to be imported into the world in a cross-platform way. Say save games, level data, etc.
So maybe both would be an option:
Have
FileManagerbe independent by-default to be used whereever, whenever, needed, but also provide an easy way to load "world imports" viaWorldChanges.File type imports
Another concern would be different file types to be loaded (and written?).
Say we load a glTF file ... we need a "glTF loader".
But who provides that?
Can it be dynamically added to the pool?
My idea would be to have some file types directly supported (e.g. something like
loadGLTF), but always have an option to load as binary or ASCII text or something like it.This way, the data can be manually passed on to a parser.
Alternatively, a trait could be used to have a template function like:
parseAs<gltfParser>(path).Sunset, see #4