62 lines
1.6 KiB
Markdown
62 lines
1.6 KiB
Markdown
|
|
# Platform Support Library (`platform`)
|
|
|
|
## Table of Contents
|
|
|
|
<!-- TOC -->
|
|
* [Home](./CONTENTS.md#planning-documentation-for-fennec)
|
|
* [Platform Support Library (`platform`)](#platform-support-library-platform)
|
|
* [Table of Contents](#table-of-contents)
|
|
* [Introduction](#introduction)
|
|
* [Implementation](#implementation)
|
|
* [Consoles](#consoles)
|
|
<!-- TOC -->
|
|
|
|
|
|
## Introduction
|
|
|
|
  The platform support library will include headers, functions, and classes related
|
|
to supporting various platforms. Platforms may be defined as any Hardware, OS, or
|
|
Drivers that must be initialized for the engine context.
|
|
|
|
|
|
## Implementation
|
|
|
|
Platform Support will be implemented in the following order:
|
|
- Linux/BSD
|
|
- Wayland
|
|
- OpenGL (EGL) ✅
|
|
- XKB
|
|
- PulseAudio
|
|
- Vulkan
|
|
- X11
|
|
- ALSA
|
|
- Vulkan
|
|
- Microsoft Windows
|
|
- XInput
|
|
- OpenGL (WGL)
|
|
- WASAPI
|
|
- Vulkan
|
|
- Android
|
|
- OpenGL ES
|
|
- AAudio
|
|
- openslES
|
|
- macOS/iOS
|
|
- cocoa
|
|
- OpenGL
|
|
- Core Audio
|
|
- Vulkan
|
|
- Metal
|
|
|
|
  Linux Wayland will be implemented first. Once setup, the core engine will be
|
|
implemented and tested on top of Wayland. Once the engine is in a stable state,
|
|
then support for other platforms will be resumed.
|
|
|
|
|
|
## Consoles
|
|
|
|
  Most consoles will never get official platform support due to NDAs which conflict
|
|
with the principles of this engine. fennec will avoid using proprietary libraries except
|
|
when strictly necessary, such as support for Windows and MacOS. fennec will interact
|
|
with any drivers required for the listed operating systems above, even if proprietary.
|