The final version is available on your accounts ! It's been a long journey, more than a year and half to create the update, but the support of new processors (and new OS), the upgrade of some core libraries, many bug fixes and new features included will make it worthwhile ! Thanks a lot for your patience, and looking forward for future versions !
- Beta 10 is available, with some more some improvements:
Code: Select all
- reverted the changes from beta 9 about timeout
Code: Select all
- Added: Timeout options for HttpRequest commands
- Changed: InitNetwork() is no more needed to use network functions (deprecated)
- Standalone debugger is now DPI Aware (Windows)
Code: Select all
- Changed the Mouse library on Windows to use RawInput instead of DirectX to support HighDPI mouse
- Added auto DPI support for Menu and ToolBar library (Windows)
- Fixed the IDE for High DPI (Windows)
- Removed ToolBarStandardButton() as it doesn't support high DPI and is very bad looking
Code: Select all
- Changed the Movie library on Raspberry to use libVLC as xine doesn't work on it
- Upgraded the Movie library on OS X to support modern OS X version
- Added backface culling for sprite OpenGL subsystem to be faster and be in line with DirectX9/11
- Updated SQLite to 3.38.2
- Updated zlib to 1.12.12
- Updated libpq (PostgreSQL) to 14.2
Code: Select all
- Added english documentation for all new features and commands
- Changed: the default subsystem for screen/sprite is now OpenGL on Windows for more consistency. DirectX9 is still available as a subsystem.
- Changed: OGRE only supports OpenGL now, which ease the porting to Linux/OSX and allow to focus on only GLSL for shaders
Code: Select all
- Added Raspberry 64-bit support !
- Added CreateShader(), CreateShaderMaterial(), MaterialShaderAutoParameter(), MaterialShaderParameter(), MaterialShaderTexture()
- Added optional parameter to MeshFace() to create a quad
- Added optional force vector to WorldGravity()
- Added optional position mode to ApplyEntityForce()
- Added GetEntityMesh(), CreateCubicTexture(), CreateAnimatedMaterial()
- Added new mode to CreateDataMesh(): #PB_Mesh_DiagonalShortestLength, #PB_Mesh_DiagonalClosestNormal, #PB_Mesh_DiagonalAlternate, #PB_Mesh_DiagonalRegular1, #PB_Mesh_DiagonalRegular2
- Added new structure: Vector3, Vector4
- Added predefined shaders: #PB_Material_ColorShader, #PB_Material_PerpixelShader, #PB_Material_BumpShader, #PB_Material_SkyShader, #PB_Material_WaterShader, #PB_Material_WaterShaderRTT, #PB_Material_OceanShader,
- Added new modes for SetMaterialAttribute(): #PB_Material_PointSprite, #PB_Material_DepthBias
- Changed: renamed structures PB_MeshFace -> MeshFace and PB_MeshVertex -> MeshVertex
- Changed: SetMaterialColor() can now use several colortype at once using '|'
Code: Select all
- Added new optional 'Color' parameter to CreateMaterial()
- Added new optional 'SpecularColor' parameter to MaterialShininess()
- Added new optional 'u' and 'w' parameter to MeshTextureCoordinate()
- Added new optional 'Lod' parameter to CreateCamera()
- Added new mode for AddMaterialLayer(): #PB_Material_ModulateX2, #PB_Material_ModulateX4, #PB_Material_AddSigned, #PB_Material_Substract, #PB_Material_BlendDiffuseAlpha, #PB_Material_BlendCurrentAlpha
Code: Select all
- Changed the name of the /EXE commandline flag to /OUTPUT be more coherent (still work for backcompatibilty but not documented anymore)
- Changed the short version of /CONSTANT from '-o' to '-co' as '-o' is now used for /OUTPUT
- OSVersion(): added support for Windows 11
- Added #PB_Compiler_Optimizer which is set to #True if the optimizer is enabled
- Dropped x86 version of PureBasic for OS X as it's no more supported since OS X Catalina (Minimum supported OS X is now 10.10 - released in 2014).
IDE:
- New contextual constant display for AutoComplete (Fr34k - https://github.com/fantaisie-software/purebasic/pull/183)
- 3 new triggers for custom tools: "OpenFile - Non-PB binary file", "OpenFile - Non-PB text file", "OpenFile - with specific extension" (HeX0R101 - https://github.com/fantaisie-software/purebasic/pull/195)
- New 'Replace' shortcut (CTRL+H) which opens the find dialgo with replace enable (ChrisRfr - https://github.com/fantaisie-software/purebasic/pull/184)
- Bug fixes, thanks to all other contributors !
Code: Select all
- Changed the way the map elements are created when using passive syntax, to be more consistent. There is no more a dummy element.
- OSVersion(): added support for OS X 11 and 12
Code: Select all
- Brand new Raspberry version ! You need to install Raspberry OS to use it, which should run on any Raspberry PI (used a PI 2 for the build)
- Brand new Apple M1 (arm64) version !
- Reworked Linux versions as explained in the blog post: https://www.purebasic.fr/blog/?p=521
- All MacOS X packages are now properly notarized, which means you should be able to install PureBasic easily on any recent OS X.
- Added the C Backend compilers on all PureBasic versions (Linux x86, x64 and OS X x86, x64)
- Alpha 4 is ready to test ! We fixed almost all reported bugs (except one), so we hope we are closer to a beta release. Next step is adding DLL support and building the C compiler on Linux and OS X. Don't hesitate to give it a try, and report any differences between the ASM and C backend.
- Alpha 3 is available ! This is big milestone for us, as the IDE fully compile and run using the C backend ! It should be a great step over a stable version, we will continue to work on it and iron up all the reported bugs. Thanks to all the testers !
- Alpha is 2 is out ! Thank you a lot to have spent time to test the new version, we have fixed most of the reported bugs, so don't hesistate to give it another try to make it as good as possible. Please also test the regular compiler (ASM backend) to ensure there is no regression on this compiler. Here are the alpha 2 change list:
Code: Select all
- Removed #PB_Compiler_C constant and replaced it with #PB_Compiler_Backend, with #PB_Backend_C and #PB_Backend_Asm values
- Added Purifier support
- Updated fasm, polink, polib and porc to lastest versions
For now, only the Windows x64 version is available for testing. It's an alpha-version, so don't expect your big programs to compile and run fawlessly on it. The main purpose for now is to squash all the remaining bugs (and it will have probably a ton) to have the C backend at the same level than the current ASM backend. For this, we opened a new specific forum to report C related backend.
How to proceed:
- In the IDE, add a new compiler (File -> Preferences -> Compiler -> Choose 'pbcompilerc' file with the file requester -> Add). It should now appear in the list. In the 'Compiler options', you should be able to select it in the combobox.
- Compile a small program. If something is wrong, try to reduce the faulty code to the smallest snippet and post it in the bug forum.
- Also please test your large programs with the regular ASM backend compiler to ensures everything still work, as we modified a lot of code in it as well.
C Backend limitations:
Code: Select all
- No Label address in datasection (?Label)
- No Label operation in 'Debug' output window
- No DLL creation support (in progress)
- Empty Structure are not supported (may be add a compiler error on PB side ?)
- Float to long rounding are not exactly the same (use bankerrounding)
Code: Select all
- Added /OPTIMIZER flag to the commandline, and a 'Use code optimizer' checkbox in IDE 'Compiler Options' to turn on C optimizations
- Added #PB_Compiler_32Bit, #PB_Compiler_64Bit and #PB_Processor_C constants
You can download it on your online account.
Have fun !
The Fantaisie Software Team