PureBasic 6.20 is out !
Posted: Wed Dec 11, 2024 5:15 pm
Hello everybody,
2025-02-12: the final version is out ! Thanks all for the feebacks !
2025-01-30: the beta 4 is out with a switch to enable Wayland support on Linux (not very tested, OpenGLGadget, Sprites and OGRE won't work) and some more fixes !
Bugfixes for this version:
2025-01-17: Happy New Year everyone ! The 6.20 beta 3 is available for testing and comes some new stuffs with more fixes:
Bugfixes for this version:
2024-12-20: Happy Holidays ! Beta 2 is out with more fixes ! I forgot to thanks the IDE contributors for this version, so here we go !
Peter Dreisiebner for the nice multicolored procedure list (check the prefs as well to configure it)
Erlend for various dark mode fixes on Linux
ChrisR for tooltip rework
Kenmo for various improvements and fixes
Bugfixes for this version:
Christmas is near, so is the next major version of PureBasic ! This release is a major step to keep PureBasic updated and relevant for the future, with the big update of OGRE 3D (to the lastest version, including all its dependencies for all OS) and the new Windows arm64 support. It also features some highly expected commands like TLS sockets and native PureLibrary creation directly using PureBasic ! Changes:
Ogre3D changes:
Example to create a PureLibrary
For now, it can only be compiled using the commandline, with the C backend.
On Windows, open PureBasic-CLI.cmd (On Windows arm64, use 'pbcompiler' instead of 'pbcompilerc'):
pbcompilerc LibTest.pb --purelibrary --output Test
On Linux/OSX/Raspberry, set the PUREBASIC_HOME variable to your PureBasic root installation and add $PUREBASIC_HOME/compilers to the PATH. On Linux x86 or Linux x64, use 'pbcompilerc' instead of 'pbcompiler'.
pbcompiler LibTest.pb --purelibrary --output Test
If all goes well, you should have your new library installed and after a compiler restart you should be able to test it.
There is some limitation for PureBasic purelibrary:
- No debugger support (in progress)
- All functions are compiled in the same object, which means the library will always includes all the functions in the final executable.
- No help support (in progress)
Don't hesitate to check the new 3D examples, there is some cool stuff from Pf Shadoko here !
Bugfixes for this version:
Have fun and enjoy the end of years parties !
The Fantaisie Software Team
2025-02-12: the final version is out ! Thanks all for the feebacks !
2025-01-30: the beta 4 is out with a switch to enable Wayland support on Linux (not very tested, OpenGLGadget, Sprites and OGRE won't work) and some more fixes !
Code: Select all
- Added Wayland support for Linux (in Compiler Option in the IDE or using the "-wl" or "--wayland" commandline switch)
- Windows: [Done] Structure not found
- Windows: [Done] #PB_PixelFormat_NoAlpha unknown constant
- Windows: [Done] WEBVIEW2_ADDITIONAL_BROWSER_ARGUMENTS
- Windows: [Done] PB 6.20 b3 ARM64 - Use shared UCRT
- Windows: [Done] PB 6.20 beta 3 Error with invisible window and WebViewGadget
- Linux: [Done] PB v6.10-v620: QT OpenFileRequester Multiselection
- C Backend: [Done] Error in C-Backend when compiling Structure Union with Array [0]
- C Backend: [Done] Repeating E in a number does not create a compiler exception
- C Backend: [Done] Invalid memory access using with large string
- IDE: [Done] PureBasic IDE QT
2025-01-17: Happy New Year everyone ! The 6.20 beta 3 is available for testing and comes some new stuffs with more fixes:
Code: Select all
- Added QT based IDE on Linux (thanks Fr34k) ! It's still early stage and could be unstable, feedback is welcome. Another prefs file is used (purebasic_qt.prefs) as some saved values aren't compatiable with the GTK version.
- Added external colorscheme support for the IDE to easily share them (thanks Kenmo !)
- Added string above 2GB support for 64-bit versions of PureBasic. Such big strings will be probably slow to handle, but it could be useful for simple operations.
Bugfixes for this version:
- Windows: [Done] Dialog error: '#PB_Editor_TabNavigation' flag is not supported for the following gadget: editor
- Windows: [Done] PB6.20B2 Dialog Panel resizing
- Windows: [Done] 2 Window Conflict Webgadget and WebViewGadget
- Windows: [Done] ClearGadgetItems produces instant event
- Windows: [Done] PB612-PB620b2: FTP Directory entries
- Windows: [Done] SetWindowCallback(): odd behaviour
- Windows: [Done] PB 6.20 b2 PB Lib creation fails with huge library
- Windows: [Done] PB 6.20 b1 ARM64 - Resource error
- Windows: [Done] Arm64 missaligned structures in Residents
- Linux: [Done] PB6.20-beta2 PureLibrary filename in success message wrong
- Linux: [Done] PureBasic strange behaviour on Kubuntu 24.04
- Linux: [Done] PB 6.12 C Backend compiler passing lists by reference bug while in the IDE
- Linux: [Done] PB v6.11/v6.12 Debugger and Ubuntu 24.04
- Linux: [Done] Purebasic debugging session leaves zombie process
- Linux: [Done] PB 6.02 LTS: All 3D stays black and 3D fullscreen is damaging my display settings...
- Linux: [Done] Segmentation fault when running pbcompiler --version on Ubuntu 24.04
- Linux: [Done] CloseNetworkConnection()
- Linux: [Done] StringGadget FrontColor
- Linux: [Done] Linux - Plot() Bug 2D Drawing
- Linux: [Done] Linux ShortcutGadget lowecase vs uppercase
- MacOS: [Done] Drag&Drop on ScintillaGadget doesn't work
- MacOS: [Done] "Invalid memory access" while debugging
- MacOS: [Done] PB 6.12 CanvasContainer mouse leave not sent
- MacOS: [Done] PB 6.12 ResetCoordinates() not working
- MacOS: [Done] PB 6.12 DragText() problem
- MacOS: [Done] Container Content Clipping (Possible Apple Silicon Bug)
- MacOS: [Done] #PB_Canvas_CustomCursor not working
- MacOS: [Done] CanvasGadget on Dialog dimensions
- MacOS: [Done] PB v6.20 b2: pbcompiler segmentation fault
- MacOS: [Done] PB 6.20 Beta 2 Bug - Linker failed
- MacOS: [Done] Error linking with asm compiler x64 version under MacOS 15.1
- Doc: [Done] WaitWindowEvent()
2024-12-20: Happy Holidays ! Beta 2 is out with more fixes ! I forgot to thanks the IDE contributors for this version, so here we go !
Peter Dreisiebner for the nice multicolored procedure list (check the prefs as well to configure it)
Erlend for various dark mode fixes on Linux
ChrisR for tooltip rework
Kenmo for various improvements and fixes
Bugfixes for this version:
- Windows: [Done] API Calls in pb libs?
- Windows: [Done] GetFileDate() with directories
- Windows: [Done] [ERROR] At least one window should be opened to use this command.
- Windows: [Done] Win x64 - 6.11 C/ASM - Negative Delay() = freeze
- Windows: [Done] Problem while passing float param to Windows method
- Windows: [Done] Defines/Globals in procedures
- Windows: [Done] 64bit COM Object causes CoCreateInstance to crash
- Windows: [Done] Frame Container child color!
- Windows: [Done] Bug in ToolBar (v6.12LTS)
- Windows: [Done] PB6.11: DrawVectorParagraph() handles manual linebreaks different in PdfVectorOutput()
- Windows: [Done] FTP/SFTP Directory Entries
- Windows: [Done] Output of ComposeJSON() has changed
- Windows: [Done] PB 6.10 Beta 7 - Different output of doubles with Debug
- Windows: [Done] Canvas gadget UnbindGadgetEvent freezing
- Windows: [Done] @*ProcedureName() syntax.
- Windows: [Done] [BUG-v612 & 620b1] DrawVectorText() + RotateCoordinates()
- Windows: [Done] ComboBox with uppercase flag -> IMA
- Windows: [Done] Bug of the ComboboxGadget()
Christmas is near, so is the next major version of PureBasic ! This release is a major step to keep PureBasic updated and relevant for the future, with the big update of OGRE 3D (to the lastest version, including all its dependencies for all OS) and the new Windows arm64 support. It also features some highly expected commands like TLS sockets and native PureLibrary creation directly using PureBasic ! Changes:
Code: Select all
- Updated: OGRE 3D to lastest 14.3 version (big thanks for the help Pf Shadoko) !
- Added: Windows 11 arm64 support !
- Added: TLS support for Network library (Thanks Idle for the tips) !
- Added: PureLibrary creation in PureBasic (C Backend only) !
- Added: WebWiewProxy() to enable proxy support (Sponsored by Kukulkan)
- Added: #PB_Editor_TabNavigation support to EditorGadget() (Sponsored by Quin)
- Added: #PB_Entity_InheritScale support Get/SetEntityAttribute()
- Added: DLL support to UsePostgreSQL() (Sponsored by wayne-c)
- Added: Windows 10+ mode to link directly to UCRT.dll to have smaller executables and up-to-date CRT
- Added: IsPack()
- Added: PureBasic-CLI.cmd to easily open a commandline environment (Windows)
Ogre3D changes:
Code: Select all
- Added: Get/SetWorldAttribute() to control water and sky
- Optimized: BuildMeshLOD() now uses a much better algorithm for automatic lod creation
- Modified: SaveRenderTexture() -> only .png format is supported
- Modified: reworked SkyDome() and CreateWater() fonction to have better and faster rendering
- Modified: Add3DArchive() always needs to be after OpenScreen()
- Modified: filenames are now case-sensitive even on Windows and OS X
- Removed: Sun() has been removed -> replacement with CreateLight()
- Removed: LoadWord() which was based on old BSP tech
- Removed: WaterHeight()
- Removed: SwitchCamera() which makes no sense
Example to create a PureLibrary
Code: Select all
DisablePureLibrary Test ; Needed to avoid function conflict if the lib is already loaded
Global Test$
Global NewMap a()
Procedure InitPureLibrary()
MessageRequester("Init","Init")
EndProcedure
Procedure FreePureLibrary()
MessageRequester("End","End")
EndProcedure
; QuickHelp MyMax(Min [, Max [, Flags, Mode]]) - A standard min/max function
ProcedureDLL MyMax3(a, b, c, d)
Static cc = 16
Test$ = "Hello"
ProcedureReturn OpenWindow(#PB_Any, 10, 10, 200, 200, "Test")
EndProcedure
ProcedureDLL MyMax2(a, b) ; version 2, 3, 4 .... allow to create optional parameter functions (PureBasic default values are not accepted)
ProcedureReturn MyMax3(a, b, 0, 0)
EndProcedure
ProcedureDLL MyMax(a)
ProcedureReturn MyMax2(15, 20)
EndProcedure
; QuickHelp GetTest() - Returns the test content
ProcedureDLL.s GetTest()
ProcedureReturn Test$+Right(" World", 4)
EndProcedure
ProcedureDLL.s GetFloat(a.f, b.i, c.d)
ProcedureReturn StrF(a) + ", "+ Str(b)+ ", "+StrD(c)
EndProcedure
ProcedureDLL.s GetString(a$, b$, c.d, d$)
; MessageRequester(a$ + b$ + c + d$, "")
ProcedureReturn a$ + b$ + " " + c +" " + d$
EndProcedure
ProcedureDLL GetArray(Array myArray(1))
ReDim myArray(20)
a = myArray(3)
ProcedureReturn ArraySize(myArray())
EndProcedure
ProcedureDLL GetList(List myList())
AddElement(myList())
AddElement(myList())
ProcedureReturn ListSize(myList())
EndProcedure
ProcedureDLL GetMap(Map myMap())
AddMapElement(myMap(), "Test")
AddMapElement(myMap(), "Test2")
AddMapElement(myMap(), "Test3")
ProcedureReturn MapSize(myMap())
EndProcedure
ProcedureDLL.d GetDouble(a.d, b.d)
b$ = "World"
a$ = GetString("aaa", "bbb"+b$, 4545, b$+b$)
ProcedureReturn a*b
EndProcedure
On Windows, open PureBasic-CLI.cmd (On Windows arm64, use 'pbcompiler' instead of 'pbcompilerc'):
pbcompilerc LibTest.pb --purelibrary --output Test
On Linux/OSX/Raspberry, set the PUREBASIC_HOME variable to your PureBasic root installation and add $PUREBASIC_HOME/compilers to the PATH. On Linux x86 or Linux x64, use 'pbcompilerc' instead of 'pbcompiler'.
pbcompiler LibTest.pb --purelibrary --output Test
If all goes well, you should have your new library installed and after a compiler restart you should be able to test it.
There is some limitation for PureBasic purelibrary:
- No debugger support (in progress)
- All functions are compiled in the same object, which means the library will always includes all the functions in the final executable.
- No help support (in progress)
Don't hesitate to check the new 3D examples, there is some cool stuff from Pf Shadoko here !
Bugfixes for this version:
- Windows: [Done] 6.12 FrameGadget bugs, regressed in 6.12 LTS.
- Engine3D: [Done] 4.60 beta 3 : SwitchCamera()
- Engine3D: [Done] FW: SwitchCamera glitching and splitting the screen
- Engine3D: [Done] CreateEntityBody - Issue with using CapsuleBody
- Engine3D: [Done] Engine3D does not support non-english characters
- Engine3D: [Done] PB6.10LTS Please fix Pitch(), Yaw(), Roll(), ...
- Engine3D: [Done] Another bug with pitch & roll, and with absolute & relative
- Engine3D: [Done] Doesn't work Scale Node (5.30)
- Engine3D: [Done] 5.21 - MousePick and #PB_Terrain_Lightmap
- Engine3D: [Done] PB 5.20 LTS Bugs with Terrain and Shadows.
- Engine3D: [Done] vehicleTerrain.pb works only with Debugger ON
- Engine3D: [Done] Linux 3d Text not working
- Engine3D: [Done] PB 5.22 LTS - IMA occures on End with SoundListenerLocate()
- Engine3D: [Done] PB v5.31 x64 - Sound3D-Lib makes IMA at End of program
- Engine3D: [Done] LoadSound3D()
- Engine3D: [Done] MacOS [5.61] Error with sample 3d sound program
- Engine3D: [Done] PB6.02 beta2; wrong result moving Node #PB_Absolute|#PB_World
- Engine3D: [Done] PB 6.01 x32 only Invalid memory access
- Engine3D: [Done] MeshVertexTextureCoordinate(1,0) reaches address 0
- Engine3D: [Done] BUG ResizeWindow() & InitEngine3D()
- Engine3D: [Done] Issue with CreateLine3D return value and use with an entity
- Engine3D: [Done] screenoutput() and 3D screen
- Engine3D: [Done] Ogre3D - OpenGL - Sprite
- Engine3D: [Done] ConvertLocalToWorldPosition and ConvertWorldToLocalPosition
- Engine3D: [Done] bug TextureOutput
- Engine3D: [Done] OpenGL & CreateWater()
- Engine3D: [Done] PB5.60x64 MoveCamera only #pb_relative and #pb_local
- Engine3D: [Done] 5.60/x64 3DEngine, MouseDeltaXY and Windows-Scaling <>100%
- Engine3D: [Done] TransformMesh() - CreateCube() PB 5.X
- Engine3D: [Done] CreateRenderTexture bug - PB v5.44 LTS
- Engine3D: [Done] UpdateMesh with Get/SetMeshData 5.51 + 5.43
- Engine3D: [Done] CreateBillboardGroup()
- Engine3D: [Done] 5.43 WindowMouseX() & WindowMouseY()
- Engine3D: [Done] 5.43 - SetMeshData()
- Engine3D: [Done] PB 5.50 : CreateTexture()
- Engine3D: [Done] PB 5.4 Script's texture modifications don't update mipmaps
- Engine3D: [Done] CreateRenderTexture
- Engine3D: [Done] 5.42-3 LTS(x86): Flickering issue - CameraView.pb 3D example
- Engine3D: [Done] PB5.10 b5 - OpenScreen / InitEngine3d crash
- Engine3D: [Done] SetMeshData with compiler option: opengl
- Engine3D: [Done] CreateCubeMapTexture, FreeTexture and more issues
- Engine3D: [Done] 5.20 B5 Parse3DScripts()
- Engine3D: [Done] Bug with 3D PB 5.21
- Engine3D: [Done] OpenWindowedScreen
- Engine3D: [Done] Threadsafe -> crash when Alt-Tab
- Engine3D: [Done] 5.20 B7 IMA 3D rendering cannot be REopened
- Engine3D: [Done] PB5.10b5 x86 - CloseScreen = GetScriptParticleEmitter crash
- Engine3D: [Done] pb5.07b manual meshs
- Engine3D: [Done] CollisionEntity and nodes
- Engine3D: [Done] 4.51 RC1 - Add3DArchive doesn't like accentuated characters
- Engine3D: [Done] 4.40 Beta 7 x86: AddGadgetItem3D() doesn't work for Editor
- Engine3D: [Done] PB4.30 Final Engine3D Bugs
- Engine3D: [Done] Taskwitching while using Ogre
- Engine3D: [Done] PB 4.20 B4 - InitEngine3D() cant reopen Screen...
- Engine3D: [Done] Engine3D: crash on EntityDirection and EntityLookAt
Have fun and enjoy the end of years parties !
The Fantaisie Software Team