Pass pointer of PHYSFS_AndroidInit struct in Android when initializing PhysFS.

This commit is contained in:
Miku AuahDark
2023-06-01 15:33:04 +08:00
parent e9c564e989
commit e559fd5e68
3 changed files with 16 additions and 4 deletions
+9
View File
@@ -804,6 +804,15 @@ const char *getCRequirePath()
return path;
}
const char *getArg0()
{
static PHYSFS_AndroidInit androidInit = {
SDL_AndroidGetJNIEnv(),
SDL_AndroidGetActivity()
};
return (const char *) &androidInit;
}
} // android
} // love
+6
View File
@@ -103,6 +103,12 @@ bool checkFusedGame(void **physfsIO_Out);
const char *getCRequirePath();
/**
* Retrieve PHYSFS_AndroidInit structure.
* @return Pointer to PHYSFS_AndroidInit structure, casted to pointer of char.
*/
const char *getArg0();
} // android
} // love
+1 -4
View File
@@ -125,10 +125,7 @@ const char *Filesystem::getName() const
void Filesystem::init(const char *arg0)
{
#ifdef LOVE_ANDROID
// TODO: This should be a pointer to an initializeed PHYSFS_AndroidInit
// struct on android. But it's only used for PHYSFS_getBaseDir and
// PHYSFS_getPrefDir, which we don't use right now...
arg0 = nullptr;
arg0 = love::android::getArg0();
#endif
if (!PHYSFS_init(arg0))