#pragma once

#include <functional>
#include <memory>

#include "platform_api/platform_services.h"

namespace pp::platform::legacy {

struct LegacyGlfwPlatformShell {
    std::function<void()> acquire_render_context;
    std::function<void()> present_render_context;
    std::function<void()> request_app_close;
};

struct LegacyPlatformServicesConfig {
    LegacyGlfwPlatformShell glfw_shell;
    pp::platform::WebPlatformServices* web_platform_services = nullptr;
};

[[nodiscard]] std::unique_ptr<PlatformServices> create_platform_services(
    LegacyPlatformServicesConfig config = {});

}
