MCPcopy Create free account
hub / github.com/defold/defold / LoadResource

Function LoadResource

engine/dlib/src/dlib/sys_android.cpp:421–452  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

419 }
420
421 Result LoadResource(const char* path, void* buffer, uint32_t buffer_size, uint32_t* resource_size)
422 {
423 *resource_size = 0;
424
425 AAssetManager* am = GetAndroidAssetManager();
426 if (am)
427 {
428 const char* asset_path = FixAndroidResourcePath(path);
429
430 // NOTE: AASSET_MODE_BUFFER is much faster than AASSET_MODE_RANDOM.
431 AAsset* asset = AAssetManager_open(am, asset_path, AASSET_MODE_BUFFER);
432 if (asset)
433 {
434 uint32_t asset_size = (uint32_t)AAsset_getLength(asset);
435 if (asset_size > buffer_size)
436 {
437 AAsset_close(asset);
438 return RESULT_INVAL;
439 }
440 uint32_t nread = (uint32_t)AAsset_read(asset, buffer, asset_size);
441 AAsset_close(asset);
442 if (nread != asset_size)
443 {
444 return RESULT_IO;
445 }
446 *resource_size = asset_size;
447 return RESULT_OK;
448 }
449 }
450
451 return dmSysPosix::LoadResource(path, buffer, buffer_size, resource_size);
452 }
453
454 Result LoadResourcePartial(const char* path, uint32_t offset, uint32_t size, void* buffer, uint32_t* nread)
455 {

Callers

nothing calls this directly

Calls 2

FixAndroidResourcePathFunction · 0.85
GetAndroidAssetManagerFunction · 0.70

Tested by

no test coverage detected