Final Platform Layer  0.9.4
ToDo / Planned (Top priority order)

Table of Contents

In progress

  • Changes
    • Returning the number of written characters instead of the start pointer for any string building/manipulation functions
    • Better naming for time query functions (fplTimePrecision enum)
    • Correct naming style everywhere -> fpl[Get/Set/Add/Init, etc.][ModuleName][Function]
  • Threading
    • Thread priority (POSIX)
  • Audio
    • Buffer sizes & Regions: Certain devices/drivers requires different buffer sizes or/and regions. Include a scaling factor for certain devices, such as broadcom audio (Raspberry Pi). When buffer size is zero, use standard size. (Standard size varies on driver/device). When regions is zero, use standard size. (Standard periods varies on driver/device). At least hardcode the values for directshow and alsa - which are afaik the only audio drivers we support right now. (Low latency mode)
  • Video
    • [Win32/X11] User function to query a video function mapped to glxGetProcAddress() or wglGetProcAddress()
  • Input
    • Repeating for text input (X11)
  • Window
    • Use XFilterEvent (X11)
    • Toggle Resizable (X11)
    • Toggle Decorated (X11)
    • Toggle Floating (X11)
    • Show/Hide Cursor (X11)
    • Clipboard Get/Set (X11)
    • Change/Get State Minimize/Maximize/Restore (X11)
  • Display
    • Get Display Infos (X11)
  • Documentation
    • Window
    • Threading
      • Syncronisation
    • File-IO
      • Operations (Copy, Delete, etc)
      • Path
      • Traversal
    • Strings
    • Locales

Planned

  • Refactor to use cached function callbacks, instead of switching on enums all the time
    • Audio
    • Video
    • Mappings/Conversions
  • Networking (UDP, TCP)
    • [Win32] WinSock
    • [POSIX] Socket
  • Date/Time functions
    • Get current time in local time zone
    • Get current time in UTC
    • Conversion local time <-> UTC
    • Get timezone infos
  • Audio:
    • Support for more than two channels
    • Support for channel mapping
    • PulseAudio driver
    • OSS driver
    • WASAPI driver
  • Video:
    • [Win32] Vulkan
    • [POSIX/X11] Vulkan
  • Threading
    • Signals (POSIX, Non-Linux)
  • Input
    • [X11] Keyboard state polling (Caps detection)
  • Hardware/OS
    • Get CPU Name (Unix)
    • Get CPU Capabilities (Unix)
    • Get Memory infos (Unix)
    • Get/Set of environment variables
  • Window:
    • Much simpler fullscreen support (Desktop or locked monitor, nothing more)
    • Fiber-based event handling (Win32)
    • Custom cursor from image (File/Memory)