Own legacy platform services on Web and Android

This commit is contained in:
2026-06-17 10:11:21 +02:00
parent c225529cbf
commit 2cb7046a56
4 changed files with 16 additions and 2 deletions

View File

@@ -1090,9 +1090,10 @@ void android_main(struct android_app* state) {
// Make sure glue isn't stripped.
// DON'T REMOVE, even if the compiler say it's deprecated
app_dummy();
auto platform_services = pp::platform::legacy::create_platform_services();
App::I = new App;
App::I->set_platform_services(&pp::platform::legacy::platform_services());
App::I->set_platform_services(platform_services.get());
memset(&g_engine, 0, sizeof(g_engine));
state->userData = &g_engine;

View File

@@ -70,6 +70,11 @@ What is already real:
- `pp_app_core`
Latest slice:
- `webgl/src/main.cpp` now owns a TU-local legacy `PlatformServices`
instance and binds that owned service into `App` during `StartApp()`.
- `android/src/cpp/main.cpp` now owns a function-lifetime legacy
`PlatformServices` instance in `android_main()` and binds that owned service
into `App` instead of binding the process-global fallback directly.
- `src/platform_legacy/legacy_platform_services.*` now exposes an ownable
`create_platform_services()` entrypoint alongside the legacy fallback
accessor.

View File

@@ -78,6 +78,11 @@ Completed, blocked, and superseded task history moved to
the queue is now ordered by code movement instead.
Current slice:
- `webgl/src/main.cpp` now binds an owned legacy `PlatformServices` instance
instead of reading the process-global fallback directly during `StartApp()`.
- `android/src/cpp/main.cpp` now binds a function-lifetime owned legacy
`PlatformServices` instance in `android_main()`, replacing the direct bind to
the process-global fallback accessor.
- `src/platform_legacy/legacy_platform_services.*` now exposes an ownable
`create_platform_services()` entrypoint while keeping the fallback singleton
for non-migrated platforms.

View File

@@ -16,6 +16,7 @@ App app;
GLFWwindow* wnd;
float theta = 0;
glm::vec2 g_cursor_pos;
std::unique_ptr<pp::platform::PlatformServices> g_platform_services;
template<typename F>
class TaskCallback
@@ -120,7 +121,7 @@ void StartApp()
{
App::I = &app;
pp::platform::legacy::set_legacy_glfw_window(wnd);
app.set_platform_services(&pp::platform::legacy::platform_services());
app.set_platform_services(g_platform_services.get());
app.initLog();
app.create();
app.width = 1024;
@@ -197,6 +198,8 @@ void main_loop()
int main()
{
g_platform_services = pp::platform::legacy::create_platform_services();
if (glfwInit() != GL_TRUE)
printf("Failed to init GLFW");
wnd = glfwCreateWindow(1024, 768, "PanoPainter", nullptr, nullptr);