// Copyright (c) 2012-2023 Wojciech Figat. All rights reserved.
#pragma once
#include "Engine/Core/Types/BaseTypes.h"
#include "Engine/Platform/Types.h"
///
/// The main application class.
///
class ApplicationBase
{
public:
///
/// Loads the application info.
///
/// The error code or 0 if succeed.
static int32 LoadProduct() = delete;
///
/// Creates the main window of the application.
///
/// The main window (null if failed).
static Window* CreateMainWindow() = delete;
///
/// Initializes the application. Called after initialization of all engine services.
///
/// True if failed, otherwise false.
static bool Init() = delete;
///
/// Called just before main engine loop start after full engine initialization.
///
static void BeforeRun() = delete;
///
/// Called just before engine shutdown.
///
static void BeforeExit() = delete;
};