mirror of
https://github.com/elasota/Aerofoil.git
synced 2025-09-23 14:53:52 +00:00
89 lines
2.9 KiB
C++
89 lines
2.9 KiB
C++
#include "GpAppInterface.h"
|
|
|
|
#include "DisplayDeviceManager.h"
|
|
#include "HostAudioDriver.h"
|
|
#include "HostFileSystem.h"
|
|
#include "HostFontHandler.h"
|
|
#include "HostDisplayDriver.h"
|
|
#include "HostSystemServices.h"
|
|
#include "HostVOSEventQueue.h"
|
|
#include "MenuManager.h"
|
|
#include "WindowManager.h"
|
|
|
|
int gpAppMain();
|
|
|
|
class GpAppInterfaceImpl final : public GpAppInterface
|
|
{
|
|
public:
|
|
int ApplicationMain() override;
|
|
void PL_IncrementTickCounter(uint32_t count) override;
|
|
void PL_Render(IGpDisplayDriver *displayDriver) override;
|
|
void PL_HostFileSystem_SetInstance(PortabilityLayer::HostFileSystem *instance) override;
|
|
void PL_HostDisplayDriver_SetInstance(PortabilityLayer::HostDisplayDriver *instance) override;
|
|
void PL_HostSystemServices_SetInstance(PortabilityLayer::HostSystemServices *instance) override;
|
|
void PL_HostAudioDriver_SetInstance(PortabilityLayer::HostAudioDriver *instance) override;
|
|
void PL_HostFontHandler_SetInstance(PortabilityLayer::HostFontHandler *instance) override;
|
|
void PL_HostVOSEventQueue_SetInstance(PortabilityLayer::HostVOSEventQueue *instance) override;
|
|
void PL_InstallHostSuspendHook(PortabilityLayer::HostSuspendHook_t hook, void *context) override;
|
|
};
|
|
|
|
|
|
int GpAppInterfaceImpl::ApplicationMain()
|
|
{
|
|
return gpAppMain();
|
|
}
|
|
|
|
void GpAppInterfaceImpl::PL_IncrementTickCounter(uint32_t count)
|
|
{
|
|
PortabilityLayer::DisplayDeviceManager::GetInstance()->IncrementTickCount(count);
|
|
}
|
|
|
|
void GpAppInterfaceImpl::PL_Render(IGpDisplayDriver *displayDriver)
|
|
{
|
|
PortabilityLayer::WindowManager::GetInstance()->RenderFrame(displayDriver);
|
|
PortabilityLayer::MenuManager::GetInstance()->RenderFrame(displayDriver);
|
|
}
|
|
|
|
void GpAppInterfaceImpl::PL_HostFileSystem_SetInstance(PortabilityLayer::HostFileSystem *instance)
|
|
{
|
|
PortabilityLayer::HostFileSystem::SetInstance(instance);
|
|
}
|
|
|
|
void GpAppInterfaceImpl::PL_HostDisplayDriver_SetInstance(PortabilityLayer::HostDisplayDriver *instance)
|
|
{
|
|
PortabilityLayer::HostDisplayDriver::SetInstance(instance);
|
|
}
|
|
|
|
void GpAppInterfaceImpl::PL_HostSystemServices_SetInstance(PortabilityLayer::HostSystemServices *instance)
|
|
{
|
|
PortabilityLayer::HostSystemServices::SetInstance(instance);
|
|
}
|
|
|
|
void GpAppInterfaceImpl::PL_HostAudioDriver_SetInstance(PortabilityLayer::HostAudioDriver *instance)
|
|
{
|
|
PortabilityLayer::HostAudioDriver::SetInstance(instance);
|
|
}
|
|
|
|
void GpAppInterfaceImpl::PL_HostFontHandler_SetInstance(PortabilityLayer::HostFontHandler *instance)
|
|
{
|
|
PortabilityLayer::HostFontHandler::SetInstance(instance);
|
|
}
|
|
|
|
void GpAppInterfaceImpl::PL_HostVOSEventQueue_SetInstance(PortabilityLayer::HostVOSEventQueue *instance)
|
|
{
|
|
PortabilityLayer::HostVOSEventQueue::SetInstance(instance);
|
|
}
|
|
|
|
void GpAppInterfaceImpl::PL_InstallHostSuspendHook(PortabilityLayer::HostSuspendHook_t hook, void *context)
|
|
{
|
|
PortabilityLayer::InstallHostSuspendHook(hook, context);
|
|
}
|
|
|
|
static GpAppInterfaceImpl gs_application;
|
|
|
|
|
|
GP_APP_DLL_EXPORT_API GpAppInterface *GpAppInterface_Get()
|
|
{
|
|
return &gs_application;
|
|
}
|