- TEST_SPEC.md: Updated test directory structure to reflect Core/Asset, Core/IO, and Resources/<Type> subdirectories - TEST_SPEC.md: Updated module names and test counts (852 total) - TEST_SPEC.md: Updated build commands for new Resources subdirectories - README.md: Updated engine structure with Core/Asset/ and Core/IO/ - README.md: Updated Resources section with layered architecture - README.md: Updated test coverage table with accurate counts
33 lines
847 B
C++
33 lines
847 B
C++
#pragma once
|
|
#include "PlatformTypes.h"
|
|
#include <memory>
|
|
|
|
namespace XCEngine {
|
|
namespace Platform {
|
|
|
|
class IWindow;
|
|
class IFileSystem;
|
|
class IClock;
|
|
class IDynamicLibrary;
|
|
class IDisplayEnumerator;
|
|
|
|
class IPlatform {
|
|
public:
|
|
virtual ~IPlatform() = default;
|
|
|
|
virtual const char* GetName() const = 0;
|
|
virtual PlatformType GetType() const = 0;
|
|
|
|
virtual std::unique_ptr<IWindow> CreateWindow(const WindowDesc& desc) = 0;
|
|
virtual std::unique_ptr<IFileSystem> CreateFileSystem() = 0;
|
|
virtual std::unique_ptr<IClock> CreateClock() = 0;
|
|
virtual std::unique_ptr<IDynamicLibrary> LoadDynamicLibrary(const char* path) = 0;
|
|
virtual std::unique_ptr<IDisplayEnumerator> CreateDisplayEnumerator() = 0;
|
|
|
|
virtual void PumpPlatformMessages() = 0;
|
|
|
|
static IPlatform& Get();
|
|
};
|
|
|
|
} // namespace Platform
|
|
} // namespace XCEngine
|