Новое в этой версии
- Added: Apple M1 support!
- Added: Raspberry support (32-bit and 64-bit)!
- Added: a new C backend compiler for all PureBasic versions
- Added: #PB_Compiler_Backend, #PB_Backend_C and #PB_Backend_Asm compiler constants
- Added: #PB_Compiler_64Bit and #PB_Compiler_32Bit compiler constants
- Added: #PB_Compiler_Optimizer which is set to #True if the optimizer is enabled
- Added: support for Windows 11, OS X 11 and 12 for OSVersion()
- Added: /OPTIMIZER, -z, --optimizer flag to the commandline, and a 'Use code optimizer' checkbox in IDE 'Compiler Options' to turn on C optimizations
- Added: auto DPI support for Menu and ToolBar library (Windows)
- Added: WebGadget() support for GTK3 on linux
- 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 structures: 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, #PB_Material_PointSpriteSphereShader
- Added: new modes for SetMaterialAttribute(): #PB_Material_PointSprite, #PB_Material_DepthBias
- Added: new optional 'Color' parameter to CreateMaterial()
- Added: new optional 'SpecularColor' parameter to MaterialShininess()
- Added: new optional 'v' and 'w' parameter to MeshVertexTextureCoordinate()
- Added: new optional 'Lod' parameter to CreateCamera()
- Added: new modes for AddMaterialLayer(): #PB_Material_ModulateX2, #PB_Material_ModulateX4, #PB_Material_AddSigned, #PB_Material_Substract, #PB_Material_BlendDiffuseAlpha, #PB_Material_BlendCurrentAlpha
- Added: New contextual constant display for AutoComplete in IDE (Fr34k -
https://github.com/fantaisie-software/purebasic/pull/183 )
- Added: 3 new triggers for custom tools in IDE: "OpenFile - Non-PB binary file", "OpenFile - Non-PB text file", "OpenFile - with specific extension" (HeX0R101 -
https://github.com/fantaisie-software/purebasic/pull/195 )
- Added: New 'Replace' shortcut (CTRL+H) which opens the find dialog with replace enabled in IDE (ChrisRfr -
https://github.com/fantaisie-software/purebasic/pull/184 )
- Updated: SetMaterialColor() can now use several colortypes at once using '|'
- Updated: fasm, polink, polib and porc to lastest versions (Windows)
- Updated: Movie library on OS X to support modern OS X version
- Updated: Mouse library on Windows to use RawInput instead of DirectX to support HighDPI mouse
- Updated: SQLite to 3.38.2
- Updated: zlib to 1.12.12
- Updated: libpq (PostgreSQL) to 14.2
- Changed: renamed structures PB_MeshFace -> MeshFace and PB_MeshVertex -> MeshVertex
- Changed: the name of the /EXE commandline flag to /OUTPUT to 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
- Changed: the way the map elements are created when using passive syntax, to be more consistent
- Changed: the default subsystem for screen/sprite is now OpenGL on Windows for more consistency. DirectX9 is still available as a subsystem.
- Changed: enabled backface culling for sprite OpenGL subsystem to be faster and be in line with DirectX9/11
- Changed: InitNetwork() is no more needed to use network functions (deprecated)
- Removed: 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).
- Removed: the 'Help' library on Linux
- Removed: Nvidia CG support for OGRE as it's no more supported by Nvidia since a while
- Removed: ToolBarStandardButton() as it doesn't support high DPI