4#include <Foundation/Application/Application.h>
5#include <Foundation/Basics/Platform/Android/AndroidUtils.h>
9extern PL_FOUNDATION_DLL
void plAndroidRun(
struct android_app* pAndroidApp,
plApplication* pApp);
11namespace plApplicationDetails
13 template <
typename AppClass,
typename... Args>
14 void EntryFunc(
struct android_app* pAndroidApp, Args&&... arguments)
16 alignas(PL_ALIGNMENT_OF(AppClass))
static char appBuffer[
sizeof(AppClass)];
17 plAndroidUtils::SetAndroidApp(pAndroidApp);
18 AppClass* pApp =
new (appBuffer) AppClass(std::forward<Args>(arguments)...);
20 plAndroidRun(pAndroidApp, pApp);
23 memset(pApp, 0,
sizeof(AppClass));
29#define PL_CONSOLEAPP_ENTRY_POINT(...) PL_APPLICATION_ENTRY_POINT(__VA_ARGS__)
35#define PL_APPLICATION_ENTRY_POINT(AppClass, ...) \
36 alignas(PL_ALIGNMENT_OF(AppClass)) static char appBuffer[sizeof(AppClass)]; \
37 PL_APPLICATION_ENTRY_POINT_CODE_INJECTION \
38 extern "C" void android_main(struct android_app* app) \
40 ::plApplicationDetails::EntryFunc<AppClass>(app, ##__VA_ARGS__); \
Base class to be used by applications based on plEngine.
Definition Application.h:66