Final version is out ! Thanks a lot to everyone for the feedback, we are very proud of this new PureBasic release which paves the way for the future with an up-to-date Windows build chain. Special thanks to Freak who did an awesome job on updating some libraries and provide more consistent commandset accross the supported OS ! A massive work has also been done to fix old bugs and we will continue this way until most of them are squashed. Stay tuned !
- Added: WebView library to easily create HTML/CSS based UI !
- Added: Full rework of the date library to handle years from 1601 to 9999 !
- Added: Skeleton library to create custom skeleton to a mesh !
- Added: SvgVectorOutput() and PdfVectorOutput() for all OS
- Added: DPI-Aware support for OS X
- Added: ExamineDraggedItems(), NextDraggedItem() and DraggedItemIndex() for Drag'n'drop
- Added: GetGadgetItemText() support for ExplorerTreeGadget()
- Added: CompareStructure(), CompareArray(), CompareList() and CompareMap() functions
- Added: CustomSortList() and CustomSortArray() functions to Sort library
- Added: CatchPack(), PackEntryDate()
- Added: CreatePasswordHash() and VerifyPasswordHash() functions (BCrypt algorithm)
- Added: DeriveCipherKey() to create a cipher key from a password (PBKDF2 algorithm)
- Added: DateUTC() to get the date in UTC time
- Added: ConvertDate(Date, #PB_Date_LocalTime/#PB_Date_UTC) to convert the date between UTC and localtime
- Added: ScaleEntityBone(), MeshDirectAdd() and #PB_Mesh_Direct mode support to CreateMesh()
- Added: AddPackDirectory(#Packer, PackedDirectoryName$) for empty directory
- Added: UseDialogWebGadget(), UseDialogOpenGLGadget(), UseDialogScintillaGadget() to avoid big lib dependency by default when using dialogs.
- Added: NbMaxChannels parameter for InitSound(). Range from 1 to 254.
- Added: 'Encoding' optional parameter to OpenPreference() to handle properly UTF-8 files without BOM
- Added: Parent window support to all requesters
- Added: WebGadget based on Edge component with the #PB_Web_Edge constant (Windows only)
- Added: Localhost binding for InitFastCGI()
- Added: SystrayIconMenu() to automatically display a menu when clicking on the icon
- Added: ListIconGaget() column alignment support
- Added: Runtime warning if CreateThread() is used without ThreadSafe mode
- Added: GadgetItemID() support for PanelGadget() (Windows only)
- Added: #PB_Preference_NoBOM flag for CreatePreference() to create UTF-8 preference files without BOM
- Added: #PB_Cipher_HMAC flag to fingerprint functions
- Added: #PB_2DDrawing_NativeText support for DrawingMode()
- Added: #PB_PixelFormat_NoAlpha for DrawingBufferFormat()
- Added: #PB_EventType_ColumnClick for ListIconGadget()
- Added: #PB_String_EscapeJSON support to EscapeString() and UnescapeString().
- Added: #PB_Menu_SysTrayLook support to have better looking popup menu when used with SysTray (Windows only)
- Added: #PB_EventType_Refresh support for ExplorerListGadget() (Window only)
- Added: Case-insensitive subsystem support on Linux
- Added: --listfunctions/constants/interfaces and --querystructure support to Windows compiler.
- Updated: Unicode filename support for Windows compiler
- Updated: Libvlc instead of the old xine lib on Linux to play movies
- Updated: Reworked the Sound and Music library to use MiniAudio on Windows, OS X and Linux (SDL dependency is no more requiered for sounds on Linux).
- Updated: SQLite version to 3.45.0
- Updated: Toolchain on Windows now use VisualStudio 2022 and new MSVCRT for faster PureBasic programs and easier external libs integration.
- Updated: Minimum version for Linux x86 is now Debian 12
- Updated: Minimum version for Raspberry is now Debian 12 based PI OS
- Changed: TextWidth(), TextHeight(), DrawText() and DrawRotatedText() now use double for X, Y coordinates.
- Changed: Scintilla is now linked statically on Windows (distributing the scintilla.dll along your executable isn't needed anymore)
- Changed: the SysTray lib on Linux now use AppIndicator to support modern Linux distro in GTK3
- Changed: deprecated DESFingerprint() function - use the new CreatePasswordHash() instead.
- Changed: ListSize() and MapSize() now properly return -1 if the list or map is freed.
- Removed: --listpath on Linux/OSX (use --output to specify the output file)
- Removed: Windows XP support. Minimum supported Windows version for created executables is now Windows Vista.
- Removed: Some very old deprecated functions.
- Fixed: A lot of libraries bugs (fixed bug list)
- Added: Full rework of the date library to handle years from 1601 to 9999 !
- Added: Skeleton library to create custom skeleton to a mesh !
- Added: SvgVectorOutput() and PdfVectorOutput() for all OS
- Added: DPI-Aware support for OS X
- Added: ExamineDraggedItems(), NextDraggedItem() and DraggedItemIndex() for Drag'n'drop
- Added: GetGadgetItemText() support for ExplorerTreeGadget()
- Added: CompareStructure(), CompareArray(), CompareList() and CompareMap() functions
- Added: CustomSortList() and CustomSortArray() functions to Sort library
- Added: CatchPack(), PackEntryDate()
- Added: CreatePasswordHash() and VerifyPasswordHash() functions (BCrypt algorithm)
- Added: DeriveCipherKey() to create a cipher key from a password (PBKDF2 algorithm)
- Added: DateUTC() to get the date in UTC time
- Added: ConvertDate(Date, #PB_Date_LocalTime/#PB_Date_UTC) to convert the date between UTC and localtime
- Added: ScaleEntityBone(), MeshDirectAdd() and #PB_Mesh_Direct mode support to CreateMesh()
- Added: AddPackDirectory(#Packer, PackedDirectoryName$) for empty directory
- Added: UseDialogWebGadget(), UseDialogOpenGLGadget(), UseDialogScintillaGadget() to avoid big lib dependency by default when using dialogs.
- Added: NbMaxChannels parameter for InitSound(). Range from 1 to 254.
- Added: 'Encoding' optional parameter to OpenPreference() to handle properly UTF-8 files without BOM
- Added: Parent window support to all requesters
- Added: WebGadget based on Edge component with the #PB_Web_Edge constant (Windows only)
- Added: Localhost binding for InitFastCGI()
- Added: SystrayIconMenu() to automatically display a menu when clicking on the icon
- Added: ListIconGaget() column alignment support
- Added: Runtime warning if CreateThread() is used without ThreadSafe mode
- Added: GadgetItemID() support for PanelGadget() (Windows only)
- Added: #PB_Preference_NoBOM flag for CreatePreference() to create UTF-8 preference files without BOM
- Added: #PB_Cipher_HMAC flag to fingerprint functions
- Added: #PB_2DDrawing_NativeText support for DrawingMode()
- Added: #PB_PixelFormat_NoAlpha for DrawingBufferFormat()
- Added: #PB_EventType_ColumnClick for ListIconGadget()
- Added: #PB_String_EscapeJSON support to EscapeString() and UnescapeString().
- Added: #PB_Menu_SysTrayLook support to have better looking popup menu when used with SysTray (Windows only)
- Added: #PB_EventType_Refresh support for ExplorerListGadget() (Window only)
- Added: Case-insensitive subsystem support on Linux
- Added: --listfunctions/constants/interfaces and --querystructure support to Windows compiler.
- Updated: Unicode filename support for Windows compiler
- Updated: Libvlc instead of the old xine lib on Linux to play movies
- Updated: Reworked the Sound and Music library to use MiniAudio on Windows, OS X and Linux (SDL dependency is no more requiered for sounds on Linux).
- Updated: SQLite version to 3.45.0
- Updated: Toolchain on Windows now use VisualStudio 2022 and new MSVCRT for faster PureBasic programs and easier external libs integration.
- Updated: Minimum version for Linux x86 is now Debian 12
- Updated: Minimum version for Raspberry is now Debian 12 based PI OS
- Changed: TextWidth(), TextHeight(), DrawText() and DrawRotatedText() now use double for X, Y coordinates.
- Changed: Scintilla is now linked statically on Windows (distributing the scintilla.dll along your executable isn't needed anymore)
- Changed: the SysTray lib on Linux now use AppIndicator to support modern Linux distro in GTK3
- Changed: deprecated DESFingerprint() function - use the new CreatePasswordHash() instead.
- Changed: ListSize() and MapSize() now properly return -1 if the list or map is freed.
- Removed: --listpath on Linux/OSX (use --output to specify the output file)
- Removed: Windows XP support. Minimum supported Windows version for created executables is now Windows Vista.
- Removed: Some very old deprecated functions.
- Fixed: A lot of libraries bugs (fixed bug list)