Skip to content

Releases: f1nalspace/final_game_tech

0.9.9-beta

04 Apr 15:32

Choose a tag to compare

v0.9.9-beta

Overview

  • Improved and extended system/platform detection macros
  • Improved audio format detection
  • Improved stability for input polling
  • Reworked API documentations
  • Refactored audio system to use dispatch tables
  • Support for multiple audio channels with channel layouts and channel mapping
  • Removed several obsolete functions
  • Renamed several types and functions
  • Bugfixes in audio format probing
  • Bugfixes for ARM/GCC compilations
  • Bugfixes for X86 compilations
  • Bugfixes for vulkan backend

Breaking Changes

  • struct fplAudioDeviceFormat replaced by fplAudioFormat
  • struct fplAudioTargetFormat replaced by fplAudioFormat
  • struct fplVersionInfo has no anonymous structs/unions anymore
  • function fplCPUID() -> Changed argument order and changed return type from void to bool
  • function GetAvailableThreadCount() renamed to fplGetAvailableThreadCount()
  • function GetUsedThreadCount() renamed to fplGetUsedThreadCount()
  • function fplGetAudioDevices() added stride argument
  • type audio channel count is now U16 instead of U32
  • type audio period count is now U16 instead of U32
  • enum value fplPlatformResultType_FailedMemory renamed to fplPlatformResultType_OutOfMemory
  • All argument-less functions -> Added nameless void argument

Details

  • New: Added typedef fplAudioFormatU64 that encodes a audio format (sample rate, channels, type) as 64-bit

  • New: Added enum fplAudioChannelLayout that stores the supported channel layouts

  • New: Added enum fplAudioChannelType that stores the geometry of a audio channel as flags

  • New: Added enum fplAudioMode that stores the exlusive/shared mode and the latency modes

  • New: Added enum fplAudioShareMode that stores the supported sharing modes

  • New: Added enum fplAudioLatencyType that stores the supported latency types

  • New: Added enum fplCPUCapabilitiesType that stores the CPU capabilieis type

  • New: Added enum fplX86InstructionSetLevel that defines the X86 instruction set level, that is detected at compile time.

  • New: Added struct fplAudioChannelMap that stores an array of the audio channel configuration

  • New: Added struct fplAudioDeviceInfoExtended that stores the @ref fplAudioDeviceInfo and the supported formats as U64

  • New: Added struct fplX86CPUCapabilities that stores the features for a X86 based CPU

  • New: Added struct fplARMCPUCapabilities that stores the features for a ARM based CPU

  • New: Added enum value @ref fplAudioDefaultFields_ChannelLayout to fplAudioDefaultFields

  • New: Added several enum values to @ref fplAudioResultType to indicate audio issues better

  • New: Added define FPL_X86_CPU_INSTR_SET_LEVEL

  • New: Added function fplAudioInit() that manually loads the audio system

  • New: Added function fplAudioRelease() that manually unloads/releases the audio system

  • New: Added function fplGetAudioDeviceInfo() that returns a @ref fplAudioDeviceInfoExtended from a device id

  • New: Added function fplGetAudioLatencyType() that returns a @ref fplAudioLatencyType from a @ref fplAudioMode

  • New: Added function fplGetAudioShareMode() that returns a @ref fplAudioShareMode from a @ref fplAudioMode

  • New: Added function fplCreateAudioMode() that returns a @ref fplAudioMode from a @ref fplAudioLatencyType and @ref fplAudioShareMode

  • New: Added function fplGetAudioChannelsFromLayout() that returns the number of channels from a @ref fplAudioChannelLayout

  • New: Added function fplGetDefaultAudioChannelLayoutFromChannels() that returns default @ref fplAudioChannelLayout from the number of audio channels

  • New: Added function fplEncodeAudioFormatU64() that encodes a sample rate, number of channels and type into a 64-bit

  • New: Added function fplDecodeAudioFormatU64() that decodes a 64-bit value into a sample rate, number of channels and type

  • New: Added function fplGetAudioDeviceInfo() that returns a @ref fplAudioDeviceInfoExtended from a @ref fplAudioDeviceID

  • New: Added function fplGetAudioChannelMap() that returns the @ref fplAudioChannelMap for the active audio backend

  • New: Added function fplGetCPUCapabilitiesTypeName() that returns the name of a @ref fplCPUCapabilitiesType

  • New: Added function fplGetTargetAudioFrameCount() that computes the target audio frames for an input/out sample rate from number of input frames

  • New: Added field manualLoad to @ref fplAudioSettings that controls the initialization behavior of the audio system

  • Fixed: fplCreateColorRGBA() was not compiling on GCC due to inlining failing

  • Fixed: fplCreateVideoRectFromLTRB() was not compiling on GCC due to inlining failing

  • Fixed: fpl__VideoBackend_Vulkan_PrepareWindow() was crashing due to invalid free of memory

  • Fixed: [Win32] fpl__Win32Guid was not properly defined when opaque API was enabled

  • Fixed: [Win32] fplSetWindowState() was not implementing fplWindowState_Fullscreen

  • Fixed: Compile errors for vulkan KHR missing cast to void pointer

  • Fixed: Renamed GetAvailableThreadCount() to fplGetAvailableThreadCount()

  • Fixed: Renamed GetUsedThreadCount() to fplGetUsedThreadCount()

  • Changed: Added stride argument to to fplGetAudioDevices()

  • Changed: Renamed field userData to clientUserData in @ref fplAudioSettings

  • Changed: Renamed fplAudioDeviceFormat to fplAudioFormat

  • Changed: Renamed function fplClearErrors to fplErrorsClear

  • Changed: Renamed enum value fplPlatformResultType_FailedMemory to fplPlatformResultType_OutOfMemory

  • Changed: Replaced audio exclusive flag and latency mode with a single enum @ref fplAudioMode in @ref fplAudioFormat

  • Changed: fplCPUCapabilities is now separated by x86 and arm features

  • Changed: All FPL public and internal functions without arguments has now a (void) as argument

  • Changed: fplVersionInfo has no anonymous structs/unions anymore

  • Changed: fplColor32 has no anonymous structs/unions anymore

  • Changed: fplCPUID argument order swapped and return type is now bool instead

  • Changed: All argument-less functions have now a nameless void argument

  • Changed: Audio channel count type is now U16 instead of U32

  • Changed: Audio period count type is now U16 instead of U32

  • Removed: Removed obsolete function fplFileSetTimestamps

  • Removed: Removed obsolete struct fplAudioTargetFormat

  • Removed: Removed obsolete function fplSetDefaultAudioTargetFormat

  • Removed: Removed obsolete function fplConvertAudioTargetFormatToDeviceFormat

  • Removed: Removed backend field from fplAudioFormat former fplAudioDeviceFormat

  • Improved: C/C++ detection improved

  • Improved: Architecture detection extended (Apple, Risc-V, Mips, Sparc)

  • Improved: CPU bits detection improved

  • Improved: x86 instruction set level detection improved

  • Improved: Fixed lots of incorrect struct alignments

  • New[#36]: Support for multiple audio channels + channel layouts + channel mapping

  • Fixed[#156]: Target audio format type and periods was never used

  • Fixed[#157]: Compile error for missing _countof() fplArrayCount in some scenarios

  • Fixed[#164]: Changed default controllerDetectionFrequency from 100 ms to 1000 ms

  • Fixed[#160/#158]: Building with G++ or Clang was not working anymore

  • Fixed[#169]: Only audio initialization may create a window/console, which is incorrect

  • Fixed[#172]: POSIX main thread was never initialized, so get fplGetMainThread() was returning zero values

  • Improved[#161]: Compiler detected improved & extended (MingW, Apple, Borland, TCC, DMC, CSMC, Linaro)

  • Improved[#149]: Refactoring of audio backends to dispatch tables

  • Improved[#163]: Make endianess detection more robust

  • Improved[#167]: Use improved doxygen commands such as at struct, at enum, etc.

###All commits
releases/v0.9.8-beta...0.9.9-beta

0.9.7-beta

28 May 06:06

Choose a tag to compare

  • Vulkan Support
  • Cleanup & Refactoring

0.9.6-beta

31 Mar 13:09

Choose a tag to compare

0.9.5-beta

24 Feb 08:14

Choose a tag to compare