Files
XCEngine/engine/include/XCEngine/Platform/IPlatform.h
ssdfasd d575532966 docs: update TEST_SPEC.md and README.md to reflect new directory structure
- 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
2026-03-24 16:14:05 +08:00

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