Starting new year update!
Since the last update i changed and improved the library a lot as well fixing some bugs. The win32 platform is considered to be finished as of today, but i plan to add more win32 features in the future (Direct2D support, WASAPI, Direct3D 9/10/11, WM_DROPFILES).
But the ffmpeg demo project gots the most improvements - it is now a fully working video player without any memory leaks using hardware OpenGL 3.3 rendering. This demo uses almost all features from FPL, so this is really great for testing out the library.
The posix/linux platform implementation goes smoothly, but is still ongoing. It looks great so far - since i finally got a native linux running on my dev rig
Btw the library is back to C++/11 - due to the fact there was so many things not working properly with C++/98 (Custom types, compiler issues, etc.) and i will never go back to C++/98 anymore.
Planned:
- Finish Linux/POSIX support
- Audio channel mapping support
- Direct2D support
- Direct3D 9/10/11 support
- WASAPI support
- Network UDP/TCP support (POSIX, Win32)
- More demos
Here is the full changelog since last update:
## v0.5.7.4 beta:
- Changed: Updated code documentation for all functions and types to doxygen/javadoc style
- Changed: SetFilePosition32 position is now int32_t instead of uint32_t to support negative positions as well
- Changed: Renamed desiredFormat to deviceFormat in AudioSettings
- Changed: [DirectSound] Use deviceID as GUID for the audio device
- new: Introduced AudioDeviceID
- New: Added deviceID field in AudioSettings
- New: Added audio::GetAudioDevices()
- New: Added strings::FormatString()
## v0.5.7.3 beta:
- Fixed: [Win32] Fixed SetWindowFullscreen was not working properly
- New: Introduced outputRect in VideoBackBuffer + Win32 implementation
- Changed: SetWindowFullscreen returns bool
## v0.5.7.2 beta:
- Added: Added new audio formats (AudioFormatType::F64, AudioFormatType::S64)
## v0.5.7.1 beta:
- Fixed: xInputSetState renamed to xInputGetState internally
- Added: Introduced InputSettings
- Added: [Win32] XInput controller detection is now limited to a fixed frequency, for improving performance (InputSettings.controllerDetectionFrequency)
## v0.5.7.0 beta:
- Changed: Total change of documentation style
- Changed: [Win32] ThreadMutex uses a critical section instead of a event
- Changed: [Win32] Include windows.h in the header, so we can define HANDLE, CRITICAL_SECTION in the api
- Changed: [Win32] Changed lots of functions to use conditions instead of asserts
- Changed: [Win32] Changed format specifiers to use either %d or %zu for integer types
- Changed: All Thread*Wait functions returns if the wait was successful or not in the same way Signal*Wait
- Changed: All ListFiles* functions uses reference instead of pointer
## v0.5.6.0 beta:
- Changed: We are back to C++/11 and we will never going back to C++/98
## v0.5.5.1 beta:
- New[POSIX]: Implemented fpl::timings
- New[POSIX]: Implemented fpl::library
- New[POSIX]: Implemented fpl::threading::ThreadSleep
- Changed[POSIX]: Moved Linux fpl::console functions to Posix
## v0.5.5.0 beta:
- Changed: All internal handles are now unions now, so can have different sizes of handles
- Changed: Introduced POSIX platform and moved linux atomics into it
## v0.5.4.0 beta:
- Fixed: Some enum types was not using the namespace version
## v0.5.3.0 beta:
- Changed: Use custom int types because C++/98 has no default types unfortunatly
- Fixed: Changed compiler detection order, because some non-MSVC compilers define _MSVC
- Changed: Better C++/11 feature detection for optional nullptr and constexpr
## v0.5.2.1 beta:
- Fixed: Corrected all doxygen statements to match new enum style or added missing exlamation marks.
## v0.5.2 beta:
- Changed: Library is now C++/98 complaint
- Changed: The actual enum type for "flags" has no "s" at the end anymore.
- Opimization: Changed some internal functions to "static inline"
- Changed: Renamed audio::GetAudioNativeFormat to audio::GetAudioHardwareFormat
- New: Added "periods", "bufferSizeInBytes", "bufferSizeInFrames" to AudioDeviceFormat