MCPcopy Create free account
hub / github.com/SakuraEngine/SakuraEngine / open

Method open

modules/gui/gui/src/backend/text_server/file_access.cpp:11–40  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

9 godot_vfs = vfs;
10}
11Ref<FileAccess> FileAccess::open(const String &p_path, int p_mode_flags, Error *r_error)
12{
13 FileAccess *fa = SkrNew<FileAccess>();
14 ESkrFileMode mod;
15 ESkrFileCreation cr = ESkrFileCreation::SKR_FILE_CREATION_OPEN_EXISTING;
16 switch (p_mode_flags) {
17 case READ:
18 mod = ESkrFileMode::SKR_FM_READ;
19 break;
20 case WRITE:
21 mod = ESkrFileMode::SKR_FM_WRITE;
22 break;
23 case READ_WRITE:
24 mod = ESkrFileMode::SKR_FM_READ_WRITE;
25 cr = ESkrFileCreation::SKR_FILE_CREATION_IF_NEEDED;
26 break;
27 case WRITE_READ:
28 mod = ESkrFileMode::SKR_FM_READ_WRITE;
29 break;
30 }
31 fa->file = skr_vfs_fopen(godot_vfs, (char8_t*)p_path.utf8().get_data(), mod, cr);
32 if (fa->file == nullptr)
33 {
34 if (r_error)
35 *r_error = ERR_CANT_OPEN;
36 SkrDelete(fa);
37 return Ref<FileAccess>();
38 }
39 return Ref<FileAccess>(fa);
40}
41uint64_t FileAccess::get_length() const
42{
43 return skr_vfs_fsize(file);

Callers 1

runMethod · 0.45

Calls 4

skr_vfs_fopenFunction · 0.85
SkrDeleteFunction · 0.85
utf8Method · 0.80
get_dataMethod · 0.45

Tested by 1

runMethod · 0.36