- Updated: OGRE to lastest 14.3 version (big thanks for the help Pf Shadoko) !
- Added: Windows 11 native arm64 support !
- Added: TLS support for Network library (Thanks Idle for the tips) !
- Added: PureLibrary creation in PureBasic !
- Added: WebWiewProxy() to enable proxy support (Sponsored by Kukulkan)
- Added: #PB_Editor_TabNavigation support to EditorGadget() (Sponsored by Quin)
- Added: #PB_Entity_InheritScale support to 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: Get/SetWorldAttribute() to control shadows, water and sky
- Added: PureBasic-CLI.cmd to easily open a commandline environment (Windows)
- Optimized: BuildMeshLOD() now uses a much better algorithm for automatic LOD creation
- Changed: SaveRenderTexture() -> only .png format is supported
- Removed: Sun() has been removed, replaced with CreateLight()
- Fixed: A few compiler and libraries bugs
- Added: SFTP support to the FTP lib !
- Added: #PB_OS_MacOSX_13, #PB_OS_MacOSX_14 and #PB_OS_MacOSX_15 for OSVersion()
- Added: #PB_Frame_Container support for FrameGadget()
- Added: '--console' commandline switch to linux and osx compiler (for consistency)
- Added: NavigationCallback support for GTK WebGadget() (all OS now support it)
- Added: New linker for DLL creation to have smaller binary size (Windows)
- Added: 32-bit float WAV support for LoadSound() and CatchSound()
- Added: New Linux package for Ubuntu 24.04
- Fixed: Some compiler and libraries bugs (fixed bug list)
- Added: 24-bit and 32-bit WAV support
- Added: runtime debugger support for whole Packer library
- Updated: replaced polink with lld-link on Windows to generate smaller executables
- Fixed: Some compiler and libraries bugs (fixed bug list)
- 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
- Changed: TextWidth(), TextHeight(), DrawText() and DrawRotatedText() now use double for X, Y coordinates.
- Removed: --listpath on Linux/OSX (use --output to specify the output file)
- Fixed: Some libraries bugs (fixed bug list)
- Added: /DLLPROTECTION flag in commandline and a switch in 'Compiler options' to enable DLL preloading protection (Windows)
- Fixed: Some IDE issues and libraries bugs mainly on OS X (fixed bug list)
- Added: #PB_String_NoCaseAscii for CompareMemoryString() for faster string comparison when only ascii characters are involved.
- Added: #PB_Compiler_DPIAware compiler constant.
- Updated Scintilla to 5.3.5 for all platforms
- Fixed: Some compiler and libraries bugs (fixed bug list)
- Added: HttpTimeout() to set a connection and a global timeout for Http commands.
- Added: GTK3 IDE build for Linux for testing (purebasic_gtk3).
- Added: ReAssembly (--reasm) support for OS X and Linux.
- Updated: libarchive to 3.6.2 - Updated: lib7z to 22.01
- Added: #PB_Mail_UseSMTPS and #PB_Mail_Debug for CreateMail()
- Updated: GCC on Windows for C backend to 12.2.0 version
- Fixed: Some compiler and libraries bugs (fixed bug list)
- 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)
- Added: 3 new triggers for custom tools in IDE: 'OpenFile - Non-PB binary file', 'OpenFile - Non-PB text file', 'OpenFile - with specific extension' (HeX0R101)
- Added: New 'Replace' shortcut (CTRL+H) which opens the find dialog with replace enabled in IDE (ChrisRfr)
- Updated: SetMaterialColor() can now use several colortypes at once using '|'
- Changed: renamed structures PB_MeshFace -> MeshFace and PB_MeshVertex -> MeshVertex
- 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).
- Added: #PB_HTTP_WeakSSL to HTTRequest() to support older servers
- Added: Added #PB_HTTP_Debug to print in the console debug information
- Added: New indentation option (Shardik)
- Added: Add option to auto-wrap Find at end of file (kenmo)
- Added: New editor shortcuts (upper/lower/invert case) (kenmo)
- Updated: Updated SQLite to 3.33.0
- Fixed: Autocomplete on Linux (mk-soft)
- Added: #PB_HTTP_Headers to HTTPInfo() to get the headers
- Added: #PB_HTTP_HeadersOnly to HTTPRequest() to only request the headers (GetHTTPHeaders() is now deprecated)
- Added: Scintilla word chars selection as user preference in IDE (kenmo)
- Added: Zoom keyboard shortcuts in IDE (kenmo)
- Added: New editor shortcut functions in IDE (kenmo)
- Added: Memview (idle)
- Changed: PostEvent() now returns a result as it could fail in some extrem case
- Updated: OpenJPEG library to version 2.3.1
- Fixed: 'Find Previous' freezing in IDE (kenmo)
- Fixed: Some compiler and libraries related bugs(fixed bug list)
- Added: Brand new QT subsystem for Linux
- Added: HTTPRequest(), HTTPRequestMemory() (sponsored by c-wayne)
- Added: UseMySQLDatabase() (sponsored by Paul)
- Added: DPI aware support for Windows app
- Added: #PS, #NPS, #PS$ and #NPS$ constants (Path seperator character depending of the OS)
- Added: #PB_JSON_NoClear support to ExtractJSONStructure
- Added: #PB_Path_Winding filling mode for VectorDrawing
- Added: DesktopResolutionX(), DesktopResolutionY(), DesktopScaledX(), DesktopScaledY(), DesktopUnscaledX(), DesktopUnscaledY()
- Added: an optional 'Mode' parameter for OpenConsole()
- Added: MaterialTextureAliases()
- Added: #PB_Vehicle_IsInContact, #PB_Vehicle_ContactPointX/Y/Z for GetVehicleAttribute()
- Added: #PB_Vehicle_ContactPointNormalX/Y/Z for GetVehicleAttribute()
- Added: #PB_Vehicle_CurrentSpeedKmHour, #PB_Vehicle_ForwardVectorX/Y/Z for GetVehicleAttribute()
- Added: #PB_Material_ProjectiveTexturing for SetMaterialAttribute()
- Added: ParticleScaleRate(), ParticleAngle(), CameraReflection()
- Added: BuildMeshLod(), MeshVertex(), CreateDataMesh()
- Added: EntityDirection(), EntityDirectionX(), EntityDirectionY(), EntityDirectionZ()
- Added: #PB_Local/#PB_Parent/#PB_World support for ApplyEntityForce(), ApplyEntityImpulse(), ApplyEntityTorque() and ApplyEntityTorqueImpulse()
- Fixed: Some compiler and libraries related bugs
- Fixed: Some compiler and libraries related bugs
- Fixed: The touchbar issue on new MacBook Air and the DebugOutput problem on Windows.
- Fixed: Some compiler and library bugs
- Updated: MacOS X package is now self contained to be OSX Sierra compliant
- Updated: This version is signed with new certificates to avoid false positive (antivirus).
- Fixed: The touchbar issue on new MacBook Air and the DebugOutput problem on Windows.
- Fixed: Some compiler and library bugs
- Updated: MacOS X package is now self contained to be OSX Sierra compliant
- Updated: This version is signed with new certificates to avoid false positive (antivirus).
- Added: GIF decoder support
- Added: Large icons and text support to ToolBar library
- Added: SetImageFrame(), GetImageFrame(), ImageFrameCount(), AddImageFrame()
- Added: RemoveImageFrame(), SetImageFrameDelay(), GetImageFrameDelay()
- Added: UserAgent support to ReceiveHTTPMemory(), ReceiveHTTPFile() and GetHTTPHeader()
- Added: #PB_Http_NoRedirect support for GetHTTPHeader()
- Added: 'Joe Doe ' email format support for SendMail()
- Added: HTTPProxy() for Http related commands proxy support
- Added: Compression level support for CreatePack() and CompressMemory()
- Added: ParticleAcceleration(), ParticleColorFader(), ParticleEmitterAngle()
- Added: #PB_Material_AlphaReject, #PB_Material_TAM and #PB_Material_EnvironmentMap support to SetMaterialAttribute()
- Added: new 'Layer' optional paramater to SetMaterialAttribute()
- Added: new orientation modes for SetNodeAnimationKeyFrameRotation() and AddStaticGeometryEntity()
- Added: GetUserDirectory() to get user specific directories
- Added: more flexibility to Base64Decoder to handle non padded input
- Added: Base64Encoder() and Base64Decoder() which takes string as input/output for easier use (see name change of the previous commands below)
- Added: color constants like #Black, #Blue etc. for all OS
- Added: Event() to get the current event (mainly useful from callback)
- Added: #PB_Canvas_Container support to have a container behaviour for canvas
- Added: #PB_EventType_Resize support for PanelGadget(), ContainerGadget(), CanvasGadget() and ScrollAreaGadget()
- Added: #PB_ListIcon_ColumnCount to GetGadgetAttribute() for ListIconGadget() to get the column count
- Added: #PB_All support to RemoveGadgetColumn() to remove all the columns
- Added: (IDE) templates are now saved when created to prevent lost if the IDE is not properly closed
- Added: (IDE) jump to a procedure now automatically unfold it if it was folded
- Added: (IDE) new specific popup menu for file tab to ease source file management
- Added: (IDE) find previous (reverse find)
- Changed: renamed previous command Base64Encoder() to Base64EncoderBuffer()
- Updated: MacOS X package is now self contained to be OSX Sierra compliant
- Fixed: Some compiler and libraries related bugs
- Updated: A bug fix version of the current LTS branch.
It fix important Linux issues and brings a new way to install the app on OS X to comply with OSX Sierra. Now the whole purebasic directory is embedded in the PureBasic.app, so if you need to use the commandline, you will have to add the path PureBasic.app/MacOS/Content/Resources/compiler to the .
- Updated: The new version of the long term support branch of PureBasic.
All the fixes done on the 5.50 should be also in this version.
- Added: Vehicle library to create 3D vehicles with wheels easily
- Added: PickBody() to easily manipulate a 3D body with mouse
- Added: CreateTube(), CreateTorus(), CreateIcoSphere() and CreateCapsule()
- Added: #PB_Entity_PlaneBody and #PB_Entity_ConeBody body type
- Added: GenericJoint() to create any type of joint
- Added: Bounding box size support to CreateEntityBody()
- Added: RegisterFontFile() to use custom fonts file easily
- Added: PathLength(), PathPointX(), PathPointY(), PathPointAngle()
- Added: PathBoundsX(), PathBoundsY(), PathBoundsWidth(), PathBoundsHeight() to get the bounding box of a path
- Added: PathSegments(), AddPathSegments() to get/set a path in string format
- Added: DebuggerError(), DebuggerWarning(), CloseDebugOutput()
- Added: ResetStructure() which clear and reinitialize a structure buffer
- Added: UTF8() and Ascii() to create easily UTF8 and Ascii string buffers (needs to be freed with FreeMemory())
- Added: FormatNumber() to have money like formatted numbers easily
- Added: #PB_MessageRequester_Info, #PB_MessageRequester_Error and #PB_MessageRequester_Warning for MessageRequester()
- Updated: SQLite version 3.13.0
- Changed: ParticleVelocity() to support current velocity.
- Removed: ASCII mode for internal PureBasic string representation, PureBasic is now unicode only.
- Removed: 'generate event loop' option in the Preferences/Form
- Fixed: Some compiler and libraries related bugs
- Added: 'auto' support for ScrollArea InnerWidth/Height in dialog lib
- Updated: latest assemblers version for Windows, Linux and OS X
- Fixed: french doc fully spellchecked by 'GG'
- Added: new Vector 2D library
- Added: new CGI library with standard and FastCGI support
- Added: Literal string escape support with the '~' operator (ex: a$ = ~"Hello\nWorld\n")
- Added: EscapeString()/UnescapeString() function to allow escaping operation on any strings (variables etc.)
- Added: EnumerationBinary to create bitmask enumeration automatically
- Added: database parameter binding to ease request construction
- Added: SetDatabaseBlob(), SetDatabaseFloat(), SetDatabaseDouble(), SetDatabaseLong()
- Added: SetDatabaseQuad(), SetDatabaseString(), SetDatabaseNull()
- Added: SHA2 and SHA3 (224/256/384/512-bit) support to Cipher library
- Added: StringFingerprint()
- Added: CRC32 support for StartFingerprint()
- Added: ReceiveHTTPMemory(), IsJoint()
- Added: RefreshDialog() to recalc dimension after a text change or similar
- Added: 'group' XML attribute for 'option' dialog gadget, to specify explicitly a group
- Added: HTTPS and simple auth support for ReceiveHTTPFile() and GetHTTPHeaders()
- Added: Auto redirect support for ReceiveHTTPFile() and ReceiveHTTPMemory()
- Added: ASynchronous mode for ReceiveHTTPFile() and ReceiveHTTPMemory()
- Added: HTTPProgress(), AbortHTTP() and FinishHTTP() to control async mode
- Added: HTTPS/TLS support for SendMail()
- Added: FlushPreferenceBuffers()
- Added: CopyDebugOutput() to copy the debug output to the clipboard from code
- Added: 7z archive creation
- Added: tar (gz and bzip2) archive support for creation and decompression
- Added: Full path in IDE recent files menu
- Added: #PB_ProgressBar_Unknown for SetGadgetState() to indicate unknown progress
- Added: #PB_UTF8/Ascii/Unicode support to ReadCharacter() and WriteCharacter()
- Added: #PB_UTF8 support to URLEncoder() and URLDecoder (now the default mode)
- Added: Windows 8.1/10 and OS X 10.9/10/11 support to OSVersion()
- Added: #PB_Editor_xxx constants when using the 'Version' info on Windows
- Added: #PB_Program_Ascii/Unicode/UTF8 support to RunProgram()
- Added: linux/osx style flags for the commandline compiler on Windows to ease cross-platform scripts
- Added: #PB_File_SharedWrite support to ReadFile() and CreateFile()
- Added: 'IMPORTLIST' compiler interface to get all the predefined API functions
- Added: #Null$ special string constant to affect a real null value to a string (to free it completely). It can be used as well for API function which sometimes accept NULL instead of a string address.
- Added: #Empty$ constant
- Added: #PB_ByteLength support to MemoryStringLength()
- Added: #PB_Ascii, #PB_UTF8 and #PB_Unicode support to Create/Open/ReadFile() to set the default write/read mode
- Added: #PB_ByteLength flag for PeekS() and #PB_UTF8 (only)
- Added: CreateCone(), CameraCustomParameter(), ResizeCamera()
- Added: #PB_Entity_DisableContactResponse for SetEntityAttribute()
- Added: #PB_Entity_ConeBody, #PB_Entity_PlaneBody
- Added: FreeEntityBody(), FreeTerrainBody()
- Added: ApplyEntityTorque(), ApplyEntityTorqueImpulse()
- Added: Added 'CollisionGroup' and 'CollisionMask' parameter for RayCollide()
- Added: Migration help page, to have a step by step migration guide between old on new PureBasic.
- Added: User guide in german (thanks to Andre and Vera)
- Updated: the Linux printer lib to use native GtkPrint instead of GnomePrint
- Fixed: Zip archive support
- Changed: The default GTK version is now GTK3 on Linux. A gtk2 subsystem has been added for backward compatibility.
- Removed: SetWindowCallback() support for OS X. Use BindEvent() instead.
- Fixed: The new LTS version which includes the bugs fixes from the brand new 5.31 version.
- Fixed: Some compiler and libraries related bugs
- Fixed: The new LTS version which should include most of the latest fixes (excluding new IDE one, solved by the new Unicode mode). Some other fixes available to 5.30 could be missing, as if we changed too many the internals of a lib, we don't want to push it in the old branches. So no fancy new stuff, just a stabilisation release.
- Added: 'Issues' IDE tool to collect and display TODO/FIXME markers inside the code
- Added: JSON library
- Added: ParseXML(), ComposeXML(), InsertXMLArray/List/Map/Structure(), ExtractXMLArray/List/Map/Structure() to XML lib
- Added: OpenGLGadget() with native opengl commands and constants support for Windows, OSX and Linux
- Added: ExamineRegularExpression() and related commands to process regex matches step by step (with group support)
- Added: ClipOutput(), UnclipOutput(), SetOrigin(), GetOriginX(), GetOriginY()
- Added: GetWindowData(), SetWindowData()
- Added: AllocateStructure(), FreeStructure()
- Added: #PB_Default support to WindowBounds() to reset min/max size
- Added: 'Format' parameter to Read/WriteProgramString(), WriteProgramStringN() and ReadProgramError()
- Added: /PREPROCESS compiler flag to create a big single source with all macros, compilerif and file include resolved. Can be combined with /COMMENTED to get the original source with comments as well.
- Added: Optional '#Server' parameter to NetworkServerEvent() to check events only on a specific server
- Added: #PB_String_NoZero flag support to PokeS() to avoid writing the ending null character
- Added: #PB_Enumeration support for Defined()
- Added: #PB_Explorer_HiddenFiles to show hidden files in the explorer gadgets
- Added: Optional 'Type' parameter to CreateBillboardGroup()
- Added: BillboardGroupCommonDirection(), BillboardGroupCommonUpVector()
- Added: #PB_Entity_MinVelocity and #PB_Entity_ForceVelocity to SetEntityAttribute()
- Added: SetMaterialAttribute() with #PB_Material_DepthCheck and #PB_Material_DepthWrite constants
- Added: #PB_Material_DepthCheck support for GetMaterialAttribute().
- Added: Engine3DStatus() with these constants: #PB_Engine3D_NbRenderedTriangles, #PB_Engine3D_NbRenderedBatches, #PB_Engine3D_CurrentFPS, #PB_Engine3D_MaximumFPS, #PB_Engine3D_MinimumFPS, #PB_Engine3D_AverageFPS, #PB_Engine3D_ResetFPS
- Added: #PB_Absolute / #PB_Relative support to CameraDirectionX/Y/Z(), CameraX/Y/Z(), EntityX/Y/Z(), LightX/Y/Z(), LightDirectionX/Y/Z(), BillBoardGroupX/Y/Z(), NodeX/Y/Z(), ParticleEmitterX/Y/Z() and FetchOrientation()
- Added: ParticleSpeedFactor(), DisableParticleEmitter()
- Added: GetEntityCollisionMask(), GetEntityCollisionGroup(), SetEntityCollisionFilter()
- Added: WaterHeight(), FreeWater()
- Added: Fully unicode IDE
- Added: Highlighting of repeated occurrences of the currently selected word in the IDE
- Added: Plain-text editing mode to edit non-PB files in the IDE
- Added: Ctrl+E and Ctrl+Shift+E shortcut to align/shift comments in a selected code block
- Added: Ctrl+M and Ctrl+Shift+M shortcut to select the current code block (repeated presses select the next code block)
- Added: PopupMenu to IDE error log for clear/copy operation
- Added: %HOME and %PROJECT to IDE tool commandline options, added PB_TOOL_Project to available env vars
- Added: Automatic code indentation can align comments at the end of code lines in the IDE
- Added: AutoComplete remembers last selection for Structure/Module AutoComplete
- Added: Context sensitivity for current module/procedure for variable display and expression eval in the debugger
- Changed: FormatXML() with #PB_XML_ReFormat no longer adds newlines inside single-line elements for a more readable output
- Removed: MaterialDepthWrite() (replaced by SetMaterialAttribute())
- Fixed: Some compiler and libraries related bugs
- Changed: 'REQUEST' to 'AUTO' for dialog splitter automatic min size calc (old syntax still supported)
- Fixed: Some compiler and libraries related bugs
- Added: Module support for the compiler
- Added: Runtime library
- Added: Dialog library
- Added: GTK3 subsystem for Linux
- Added: DirectX11 subsystem for Windows (doesn't not support the 3D engine for now)
- Added: Named enumeration support to allow continuing a previous enumeration
- Added: JoystickName(), JoystickZ()
- Added: Optional #PB_Relative flag to JoystickX/Y/Z() to have more precise values
- Added: Optional pad number to JoystickX/Y/Z() to handle more complex gamepads
- Added: ZoomSprite() now accepts #PB_Default as Width/Height to reset to initial sprite size
- Added: 'Color' and 'Intensity' parameter to DisplayTransparentSprite()
- Added: ClipSprite() now support #PB_Default for individual parameter
- Added: #PB_Sprite_PixelCollision flag to CreateSprite(), LoadSprite() to enable pixel collision
- Added: Zoom support to SpritePixelCollision() and SpriteCollision()
- Added: OpenGL support for SpriteBlending() (warning, it just wraps OpenGL mode, so it can behave different than DirectX)
- Added: 32-bit support for SpriteOutput() for DX and OpenGL
- Added: #PB_EventType_Focus and #PB_EventType_LostFocus support to EditorGadget()
- Added: #PB_EventType_RightClick support to ListViewGadget()
- Added: #PB_EventType_Change support to PanelGadget() and DateGadget()
- Added: #PB_Prototype and #PB_Module support to Defined()
- Added: All Init() functions can be called more than once without issue (like InitSound(), InitNetwork() etc.)
- Added: #PB_FileSystem_Force support to DeleteFile()
- Added: #PB_FileSystem_NoExtension support to GetFilePart()
- Added: Back color parameter to CreateImage()
- Added: #PB_Entity_NbSubEntities to GetEntityAttribute()
- Added: MeshIndexCount(), SetRenderQueue(), FetchEntityMaterial(), GetMeshData(), SetMeshData()
- Added: CPUName(), Un/BindEvent(), Un/BindGadgetEvent(), Un/BindMenuEvent()
- Added: Previous location is displayed when declaring a structure, interface, prototype or procedure twice.
- Added: 2 license files to easy add the needed information when shipping PB programs (see reference documentation)
- Added: Bool() is now evaluated at compile time if the whole expression is constant
- Added: Debugger check for SortStructuredList() and SortList() to ensure the specified list is of correct type
- Added: Linux executables created on new distribution should still work on old linux.
- Added: #PB_EventType_FirstCustomValue for use with PostEvent()
- Added: CameraFollow(), ExamineWorldCollisions(), NextWorldCollision(), FirstWorldCollisionEntity(), SecondWorldCollisionEntity()
- Added: WorldCollisionContact(), WorldCollisionNormal(), WorldCollisionAppliedImpulse()
- Added: BuildMeshTangents(), MeshVertexTangent(), CopyTexture()
- Added: Pitch(), Roll(), Yaw()
- Added: #PB_Gadget_RequiredSize support for GadgetWidth/Height()
- Added: #PB_Entity_LinearSleeping, #PB_Entity_AngularSleeping, #PB_Entity_DeactivationTime, #PB_Entity_IsActive,
- Added: #PB_Entity_AngularVelocityX/Y/Z, #PB_Entity_ScaleX/Y/Z, #PB_Entity_AngularVelocity, #PB_Entity_HasContactResponse for Get/SetEntityAttribute()
- Optimized: Pixel sprite collision routines are now much faster with DirectX
- Changed: SpinGadget() EventType are now #PB_EventType_Up and #PB_EventType_Down instead of -1 and 1.
- Updated: WebGadget() on Windows doesn't needs ATL.dll anymore
- Removed: Mozilla ActiveX support for WebGadget() on Windows as the last ActiveX version is way too old (2005)
- Fixed: Many bugs
- Fixed: Some compiler and libraries related bugs
- Added: Form designer is now integrated to the IDE !
- Added: Fully reworked Packer library with ZIP, BriefLZ, 7z (unpacker only), LZMA and JCALG1 (Windows x86 and UncompressMemory() only) support. JCALG1 support has been dropped. Archives formats for BriefLZ have been changed.
- Added: IPv6 support to the network library. Updated IPString(), MakeIPAddress(), GetClientIP(), IPAddressField(), ExamineIPAddress() and NextIPAddress(). added #PB_Network_IPv6 flag to OpenConnection and CreateServer(). Added FreeIP() for v6 IP
- Added: System library: ComputerName(), UserName(), MemoryStatus(), CountCPUs()
- Added: Line continuation feature, with the following operands: ',' '|' '+' And Or XOr
- Added: Constant string comparisons are now handled at compile time, allowing use in CompilerIf for example.
- Added: CocoaMessage() for OS X
- Added: 'Check syntax' to only compile the code without build/running an executable (/CHECK switch or in the IDE compiler menu)
- Added: Array/List/Map parameter support to Interface methods
- Added: Support for dynamic array/list/map support in structure/interface in Residents.
- Added: #PB_Character, #PB_Unicode, #PB_Ascii and #PB_Integer flag support to FillMemory()
- Added: #PB_RegularExpression_NoCase support to CreateRegularExpression()
- Added: EncodeImage() with PNG, JPEG and JPEG2000 support
- Added: #PB_Memory_NoClear support to Re/AllocateMemory()
- Added: ImageFormat()
- Added: #PB_Editor_WordWrap to EditorGadget()
- Added: Multicharacter comparison in StringField()
- Added: NbOccurrences parameter for ReplaceString()
- Added: PostEvent(), EventData()
- Added: return value to SetCurrentDirectory()
- Added: #PB_String_NoCase mode parameter to FindString()
- Added: #PB_Preference_NoSpace and #PB_Preference_GroupSeparator flags for OpenPreferences() and CreatePreferences()
- Added: DatabaseColumnIndex()
- Added: #PB_Cipher_URL and #PB_Cipher_NoPadding for Base64Encoder(), added URL compatibility to Base64Decoder()
- Added: SetGadgetItemImage() for all gadget supporting item gadget image
- Added: #PB_Gadget_ScreenCoordinate and #PB_Gadget_WindowCoordinate flag for GadgetX/Y()
- Added: #PB_File_SharedRead (no effect on Linux/OSX), #PB_File_SharedWrite (no effect on Linux/OSX), #PB_File_Append and #PB_File_NoBuffering file flags.
- Added: #PB_Event_RightClick, #PB_Event_LeftClick and #PB_Event_LeftDoubleClick events
- Added: Optional title parameter to OpenConsole()
- Added: #PB_ScrollArea_ScrollStep added for ScrollAreaGadget()
- Added: #PB_Ignore for ResizeImage()
- Added: Bind a specific IP to CreateNetworkServer()
- Added: Timeout, LocalIP$ and LocalPort parameter to OpenNetworkConnection()
- Added: #PB_NetworkEvent_Disconnect support for NetworkClientEvent()
- Added: #PB_Unicode, #PB_Ascii and #PB_UTF8 support to SendNetworkString()
- Added: #PB_String_MaximumLength attribute for StringGadget()
- Added: #PB_Event_DeactivateWindow support
- Added: #PB_EventType_Change support for EditorGadget()
- Added: #PB_Relative/#PB_Absolute flag for FileSeek()
- Added: 'Offset' and 'Length' parameters to SHA1/MD5/CRC32FileFingerprint()
- Added: GetSoundPosition(), SetSoundPosition(), SoundLength(), PauseSound(), ResumeSound(), SoundStatus(), GetSoundFrequency()
- Added: #PB_All support for SoundVolume()
- Added: SetGadgetItemState() support for ExplorerListGadget()
- Added: InputRequester add close
- Added: InputRequester() added #PB_InputRequester_Password flag
- Added: Random() added optional minimum value
- Added: SetGadgetItemText() for ListIconGadget(): handling of Chr(10) as in AddGadgetItem()
- Added: made OpenWindowedScreen() stretch parameters optional
- Added: ScreenWidth(), ScreenHeight(), ScreenDepth()
- Added: SMTP AUTH support to mail library
- Added: optional parameters to RemoveMailRecipient(), ability to remove all recipients
- Added: ReadString(#File [, Flags [, Length]]) : length and #PB_File_IgnoreEOL support
- Added: #PB_Window_InnerCoordinate support to WindowX/Y()
- Added: #PB_Window_FrameCoordinate support to WindowWidth()/Height()
- Added: #PB_Image_Raised support to ImageGadget()
- Added: Support for FreeXXX(#PB_All) for all free commands
- Added: Compiler Constants: #PB_Compiler_LineNumbering, #PB_Compiler_InlineAssembly, #PB_Compiler_EnableExplicit
- Added: Compiler Constants: #PB_Compiler_ExecutableFormat (with #PB_Compiler_DLL, #PB_Compiler_Console, #PB_Compiler_Executable)
- Added: Compiler Constant: #PB_Compiler_IsIncludeFile, #PB_Compiler_IsMainFile, #PB_Compiler_Filename (filename without path)
- Added: Bool() compiler operator. Boolean operations are now forbidden without Bool().
- Added: MacroExpandedCount internal keyword
- Added: UndefineMacro
- Added: Now XIncludeFile also take in account the main file, to avoid double inclusion if the main file is included from another file
- Added: TypeOf() for variable, structure and fields
- Added: Defined(Label, #PB_Label) support
- Added: CompilerElseIf
- Added: Local labels
- Added: Define now behave like Global and accept Dim(), NewMap() and NewList() on the same line
- Added: 'Align' keyword support for structure, with a special #PB_Structure_AlignC value to mimic C structures padding
- Added: autocast of numeric values when string are involved, allowing to concatenate string and numeric in constants
- Added: 'CONSTANTLIST' to Compiler interface
- Added: editing history recording in the IDE to recover previous code states and for crash recovery (see File -> Session History)
- Added: AffectedDatabaseRows(), CheckDatabaseNull() to database library
- Added: new Text3D library
- Added: 'Mode' optional parameter to all ...Yaw/Roll/Pitch() functions
- Added: 'Type' and 'Mode' optional parameter to CreateMesh()
- Added: RayCast(), MouseRayCast(), NormalX(), NormalY(), NormalZ()
- Added: UpdateMesh(), EnableManualEntityBoneControl(), MoveEntityBone(), RotateEntityBone(), MeshIndex()
- Added: 'Type' optional parameter to AddSubMesh()
- Added: 'Type' parameter to FinishMesh()
- Added: ScaleNode(), GetMaterialColor(), GetMaterialAttribute(), ConvertLocalToWorldPosition(), ConvertWorldToLocalPosition()
- Added: MaterialCullingMode(), FetchOrientation(), SetOrientation(), GetX(), GetY(), GetZ(), GetW(), GetLightColor()
- Added: AttachEntityObject(): bone name can be empty, so the object is added directly to the entity
- Changed: renamed SoundFrequency() to SetSoundFrequency()
- Updated: OGRE core has been updated to 1.8.2
- Removed: SendNetworkFile(), ReceiveNetworkFile(), #PB_NetworkEvent_File to avoid possible security hole
- Optimized: FindString() is up to twice as fast
- Fixed: Many bugs
- Added: Cocoa support on OS X (now the default toolkit)
- Added: 64-bit version of PureBasic for OS X
- Added: Brand new Form Designer, for Windows, Linux and OS X
- Added: Carbon subsystem for PowerPC and x86 version of PureBasic
- Added: Multi-dimensional arrays in structure support
- Added: InitScintilla() on Linux and OS X avoid compilation issues
- Added: #PB_Window_NoActivate flag to OpenWindow() and HideWindow()
- Added: #PB_EventType_RightClick support ScintillaGadget()
- Added: Favorites section to the explorer tool (IDE)
- Added: Trigger for custom tools when a new source file is created (IDE)
- Added: SetWindowCallback() support to OS X to have callback events
- Added: partial thread-safety to GTK (Linux)
- Added: SpritePixelCollision() support for OS X and Linux
- Updated: Scintilla updated to 3.2.2
- Changed: SetModulePosition() is now in milliseconds, no more in pattern
- Fixed: Many bugs
3D Engine:
- Added: optional 'IsActive' parameter to render to texture for CreateCamera()
- Changed: CameraLookAt() doesn't change the direction anymore
- Removed: AnimateEntity() (replaced with Start/StopEntityAnimation())
- Added: up-to-date VisualC SDK for Windows to create PureLibraries
- Added: resource support for Win9x
- Added: new User-Guide (PureBasic introduction) included in the reference manual
- Updated: FASM version (1.69.35)
- Changed: OpenGL subsystem is now default on Linux (a new 'sdl' subsystem has appear)
- Fixed: 3D examples for Linux
- Added: a brand new '3D' example folder
- Added: 'Joint' library
- Added: 'SpecialEffect' library
- Added: 'StaticGeometry' library
- Added: CameraPitch(), CameraRoll(), CameraYaw(), SwitchCamera()
- Added: ApplyEntityForce(), ApplyEntityImpulse(), EntityPitch(), EntityRoll(), EntityYaw()
- Added: GetEntityAttribute(), GetEntityMaterial(), SetEntityAttribute(), SetEntityMaterial()
- Added: LightDiffuseColor(), SpotLightRange(), LightLookAt(), DisableLightShadows()
- Added: MaterialDepthWrite(), MaterialSelfIlluminationColor(), MaterialShininess(), GetScriptMaterial()
- Added: CreateLine3D(), CreateCube(), CreateSphere(), CreateCylinder(), CreatePlane()
- Added: MeshVertexCount(), UpdateMeshBoundingBox(), MeshRadius(), AddMeshVertex()
- Added: MeshVertexNormal(), MeshVertexColor(), AddSubMesh(), BuildMeshShadowVolume()
- Added: MeshVertexTextureCoordinate(), AddMeshFace(), FinishMesh(), NormalizeMesh()
- Added: SaveMesh(), SetMeshMaterial(), SubMeshCount(), TransformMesh()
- Added: NodePitch(), NodeRoll(), NodeYaw(), GetScriptTexture(), TextureOutput()
- Added: EntityCollide(), RayCollide
- Added: OpenGL renderer to the 3D library on Windows, when using the OpenGL subsystem
- Added: CanvasGadget(), CanvasOutput()
- Added: SetGadgetItemData() for PanelGadget
- Added: MoveElement(), MergeLists(), SplitList()
- Added: RandomizeList(), RandomizeArray(), DoubleClickTime()
- Added: PushListPosition(), PopListPosition(), PushMapPosition(), PopMapPosition()
- Added: ImageID parameter to OpenSubMenu()
- Added: #PB_ListIcon_ThreeState and #PB_ListIcon_Inbetween
- Added: #PB_Tree_ThreeState and #PB_Tree_Inbetween
- Added: crossplatform ComboBox events
- Added: 'DeclareC' keyword for completeness
- Changed: FindString() 'StartPosition' parameter to be optional
- Removed: Get/SetEntityMass(), Get/SetEntityFriction()
- Fixed: Many bugs
IDE
Debugger
- Fixed: Quite some compiler and libraries related bugs
- Added: Support for Array, List, Map inside structures
- Added: CopyList(), CopyMap(), CopyArray()
- Added: FreeList(), FreeMap(), FreeArray()
- Added: CopyStructure(), InitializeStructure()
- Added: Volume support to PlaySound()
- Added: Depth parameter to SaveImage()
- Added: ImageDepth() flag to get the original or current image depth
- Added: #PB_Image_Transparent flag for CreateImage()
- Added: 32-bit support to TGA image decoder
- Added: RoundBox(), AbortFTPFile(), RandomData()
- Added: #PB_2DDrawing_AllChannels mode for DrawingMode()
- Added: Image support for ComboBoxGadget()
- Added: Graphical console functions to Linux
- Added: Large file support to File library on Linux/OSX
- Added: CryptRandom(), CryptRandomData(), OpenCryptRandom(), CloseCryptRandom()
- Added: Many math functions: Exp(), ATan2(), Radian(), Degree(), [A]CosH(), [A]SinH(), [A]TanH(), IsNaN(), IsInfinity(), NaN(), Infinity(), Sign()
- Added: 'Debugger' Library to control some debugger actions from code
- Changed: The Image library now keeps images internally in 24-bit or 32-bit (loading and saving works with other bit depths)
- Fixed: Quite some bugs in libraries and in the compiler
IDE/Debugger:
- Changed: The Array, List or Map name in the Variable viewer should be entered with a '()' now to display their elements.
- Fixed: Quite some compiler and libraries related bugs
- Added: Native Linux x64 support
- Added: Built-in Map library for hash tables
- Added: 'Threaded' Keyword for thread-local variables
- Added: Structure assignment copies the structure (a.point = b.point)
- Added: ClearStructure()
- Added: AESEncoder(), AESDecoder(), StartAESCipher(), AddCipherBuffer(), FinishCipher()
- Added: Dylib support for OS X
- Added: Joystick library for OS X
- Added: Systray library for OS X
- Added: Trim/LTrim/RTrim() got an optional character to trim
- Added: #PB_Function, #PB_OSFunction, #PB_Map to Defined()
- Added: ReverseString(), InsertString(), RemoveString()
- Added: Blob support to databases
- Added: UsePostgreSQLDatabase(): native PostgreSQL support
- Added: Peephole optimizer to 64-bit versions to produce better code
- Added: '.a' (ascii) and '.u' (unicode) native type to provide native unsigned byte and word.
- Added: FileBuffersSize() - #PB_Default support change the buffersize to the next opened files
- Added: #PB_URL_Protocol to Get/SetURLPart()
- Added: #PB_Shadow_TextureAdditive
- Added: FTPDirectoryEntryRaw(), FillMemory()
- Added: Global, Protected, Threaded, Shared and Static now accept a type to affect all default variable declaration.
- Added: AddWindowTimer(), RemoveWindowTimer(), EventTimer()
- Added: #PB_Window_Tool to create tool windows
- Added: ShortcutGadget(), StatusBarProgress()
- Added: StatusBarImage() now supports normal images (not just icons)
- Added: #PB_Checkbox_ThreeState flag to create a 3 state checkbox
- Added: CreateImageMenu(), CreatePopupImageMenu() for OSX
- Added: Full alphachannel support for all GUI elements that display images
- Added: Full alphachannel support for Image lib
- Added: New drawing modes for 2DDrawing in ImageOutput()
- Added: LinearGradient(), BoxedGradient(), CircularGradient(), EllipticalGradient(), ConicalGradient()
- Added: CustomGradient(), GradientColor(), ResetGradientColors(), CustomFilterCallback()
- Added: DrawAlphaImage() for all outputs on all OS
- Added: DrawAlphaImage() has a new transparency parameter and can be used to draw non-alpha images part transparent
- Added: QuickDraw subsystem for WindowOutput() on OSX
- Added: Sprite/ScreenOutput for OpenGL (all OS)
- Added: DrawingFont() works for SDL output
- Added: OutputWidth(), OutputHeight(), OutputDepth() for 2DDrawing
- Added: GrabDrawingImage(), DrawRotatedText(), RGBA(), Alpha(), AlphaBlend()
- Added: #PB_PixelFormat_ReversedY - for pixel buffers that are stored upside-down (Windows ImageOutput or OpenGL)
- Added: #PB_OS_Windows_7, #PB_OS_MacOSX_10_6 for OSVersion()
- Updated: OGRE to 1.6.2, sqlite 3.6.14.2, PCRE to 7.9
- Changed: Call(C)Function(Fast) parameters have been changed from 'Any' to 'Integer'.
- Removed: #PB_Image_DisplayFormat is now deprecated (value set to 24 to have 24-bit as default)
- Fixed: Image Decoders are now thread-safe
PureBasic IDE:
- Changed: moved encoding/newline setting from compiler options to file menu
PureBasic Debugger:
- Fixed: Many compiler and libraries related bugs
- Added: Full 64-bit version of PureBasic (Windows)
- Added: MacOS X x86 support
- Added: 'JPEG 2000' library
- Added: 'Node' library
- Added: 'Gadget3D' library
- Added: 'Window3D' library
- Added: 'Sound3D' library
- Added: Full unicode support to the engine3d
- Added: MacOS X support for engine3d
- Added: Absolute/relative rotation for all engine3d rotate commands
- Added: Absolute move for engine3d physic body
- Added: EntityID(), EntityLookAt()
- Added: CameraProjectionX(), CameraProjectionY(), WorldDebug(), Sun()
- Added: MousePick(), PointPick(), PickX/Y/Z(), CreateWater(), AntialiasingMode()
- Added: CatchModule(), ArraySize(), WindowBounds(), DesktopX(), DesktopY()
- Added: FinishDatabaseQuery(), DatabaseID()
- Added: CreateSemaphore(), FreeSemaphore(), SignalSemaphore(), WaitSemaphore(), TrySemaphore()
- Added: '.i' native type for 32/64-bit integer size
- Added: Read/WriteInteger(), Read/WritePreferenceInteger(), PeekI(), PokeI()
- Added: Language support for compiler and debugger
- Added: Style parameter to FontRequester()
- Added: Support for 'And/Or' in CompilerIf statements
- Added: #PB_Event_MinimizeWindow, #PB_Event_MaximizeWindow, #PB_Event_RestoreWindow
- Added: #PB_Ignore support to AddStatusBarField()
- Added: #PB_Explorer_DisplayMode to ExplorerListGadget()
- Added: Multiple joystick support
- Added: #PB_Compiler_FilePath compiler constant
- Enhanced: Major rework of OnError library (crossplatform)
- Optimized: XML library to handle very big files quickly
- Changed: 'Read' keyword now requires a type (Read.l, Read.q etc.) to avoid 64-bit migration problems
- Removed: StrQ(), HexQ(), BinQ(), ValQ()
- Fixed: DX9 subsystem on Windows
- Added: Mail library
- Added: Ftp library
- Added: RegularExpression library
- Added: Http library
- Added: SerialPort library
- Added: FLAC library
- Added: SQLite library
- Added: DirectX 9 subsystem
- Added: Sound Streaming for OGG and FLAC
- Added: #PB_Sound_MultiChannel support for the sound library
- Added: CreateImageMenu(), CreatePopupImageMenu(), SHA1FingerPrint(), SHA1FileFingerPrint()
- Added: CRC32FileFingerprint(), ExamineMD5FingerPrint(), ExamineSHA1FingerPrint(),
- Added: NextFingerPrint(), FinishFingerPrint(), IsFingerPrint()
- Added: Hexadecimal and binary support for Val() and ValQ()
- Added: #PB_Compiler_Procedure compiler constant
- Added: #PB_Round_Nearest support for Round()
- Added: 'XOr' drawing support for Linux/SDL and MacOS X
- Added: New 'Profiler' tool for the Debugger menu to monitor how often lines are called in the code
- Added: Debugger can now evaluate expressions (see Debug output)
- Added: The Memory Viewer can accept any expression as the start/end address
- Added: Adding a '+' at the 'end address' field of the Memory viewer makes the end address relative
- Added: Placing the mouse over a Variable will display its value while the program runs.
- Added: Selecting a more complex expression and placing the mouse over it will evaluate the expression in the running program (if possible)
- Changed: Mid() has now the Len() parameter optional
- Optimized: Compiler source processing speed (up to 8x faster)
- Fixed: Quite some bugs related to the commands and compiler
- Added: XML library
- Added: Drag & Drop library
- Added: Vista compatibility (fully compatible with UAC), except for Sprite library (planned for 4.20)
- Added: ModPlug support for module replaying (removed MIDAS)
- Added: ScintillaGadget(), TruncateFile()
- Added: EnableASM and DisableASM compiler directives
- Added: #PB_OS_Windows_Vista and #PB_OS_Windows_Server_2008 for OSVersion()
- Added: Lots of new features for the WebGadget()
- Added: many new small improvement to the IDE (New compiler communication protocol, Vista compliance, brace markers, faster coloring etc.)
- Added: synchronized release between Windows, Linux and MacOS X !
- Changed: InitDatabase() to UseODBCDatabase()
- Removed: The SmartUpdate tool is no longer supported
- Fixed: lots of bugs related to the commands and compiler
- Fixed: Macros issues
- Fixed: LoadImage() with plug-ins in unicode mode
- Fixed: ExplorerListGadget() with over 4GB file
- Fixed: ExaminePreferenceKeys() didn't list the first key
- Fixed: ExamineDirectory() didn't handle patterns properly
- Fixed: Several IDE problems
- Fixed: Some IDE and Debugger problems
- Fixed: Several compiler bugs
- Changed: CreateThread() doesn't returns an OS thread handle anymore (use ThreadID() instead)
- Fixed: Several important quad and unicode issues
As PureBasic 4 is a quite big release in both terms of changes and enhancements, a document which sum up all the modifications about the libraries commands since the last stable release is available.
- Added: Native unicode support
- Updated: NT4 support is now done trough a subsystem (DirectX 3)
- Optimized: Smaller executable footprint: 1.5 kb instead of 2.5 kb for the smallest one
- Changed: Console library commands can now fully redirected (ie: possible to use them for CGI for example)
- Fixed: Internal system functions no more trash reserved registers
- Added: Brand a new IDE and 3 Debuggers (!)
- Added: Resource file support to the compiler and IDE (/RESOURCE compiler switch)
- Added: Version support for executables and DLL (trough resource)
- Added: #PB_Event_ActivateWindow event support
- Added: #PB_Web_Mozilla flag to use the Mozilla ActiveX for the WebGadget()
- Added: GetToolBarButtonState() and SetToolBarButtonState()
- Added: Full documentation for the IDE and Debuggers
- Fixed: 32x32 bitmaps in ListIconGadget() with big icon display mode
- Added: SortStructuredArray(), SortList(), SortStructuredList()
- Added: Conditional directives to LibraryMaker
- Added: KeyboardMode() (wasn't in the doc)
- Added: Optional 'Color' parameter for ColorRequester() and FontRequester()
- Added: SetGadgetText() can now be used on an editable ComboBoxGadget()
- Added: #PB_Default support to ClipSprite() to remove the clipping
- Added: #PB_FileSystem_Force to CopyDirectory()
- Added: #PB_OS_Windows_Server_2003 support to OSVersion()
- Added: Base64Decoder(), GetGadgetFont()
- Added: ResizeImage() now support a 'Mode' parameter to choose the resize algorithm
- Added: Event when a splitter is moved or resized so the children can be agenced
- Added: Real-time debugger check for Plot(x,y,Color) with ScreenOutput() and SpriteOutput()
- Added: Debugger check to DirectoryEntrySize/Name/Attributes()
- Added: IDE enhancements by Tinman
- Updated: Interface Importer and DirectX9 interfaces in residents (thanks to Traumatic !)
- Optimized: Debugger mode is smaller and allow big structured variables
- Changed: OffsetOf() syntax, to fit with the SizeOf() one (more consistent)
- Fixed: A bug in ImageGadget() with XP skin activated and 32-bit bitmaps
- Added: CalendarGadget() and DateGadget(), thanks to Fr34k !
- Added: LibraryID(), SwapElements()
- Added: SaveSprite() now have an optional 'Flags' parameter and can now save 8-bit sprite/screen
- Added: Double-click on Windows background now generate an event (Thanks to Rings)
- Optimized: ListCount() and ListIndex() are now very fast (it doesn't iterate each element of the list anymore).
- Changed: DeleteElement() now always goes back to the previous element (can be outside the list if
- Fixed: CloseWindow() bug when using the 'ParentWindow' OpenWindow() parameter
- Added: Desktop library
- Added: IsDatabase(), IsFile(), IsFont(), IsDirectory(), IsGadget(), IsImage(), IsLibrary(), IsMenu(), IsModule(),
IsMovie(), IsPalette(), IsSprite(), IsSprite3D(), IsStatusBar(), IsSysTrayIcon(), IsToolBar(), IsWindow()
- Added: Manifest file (for XP skins) is now included in the exe
- Added: 'Main source' support in the IDE for multifile projects
- Added: Debugger check for empty list element access
- Changed: WindowMouseX() and WindowMouseY() now returns the coordinates in the window client area (DesktopMouseX() now replaces the old behavior).
- Fixed: AddDate() bug
- Added: #PB_Any support (dynamic numbering) for Database, File, Font, FileSystem, Gadget, Image, Library,
Module, Movie, Palette, Sprite, Sprite3D, SysTray, ToolBar, StatusBar and Window
- Added: CountString(), KeyboardInkey(), GetWindowTitle(), SetWindowTitle(), ElapsedMilliseconds()
- Added: RemoveGadgetColumn(), SetGadgetAttribute(), GetGadgetAttribute(), SetGadgetItemAttribute(), GetGadgetItemAttribute()
- Added: MDIGadget() by Fr34k
- Added: VerticalBlank support for FlipBuffers() (and works in windowedmode too)
- Added: Autosize for StatusBar and ToolBar (no more callback needed)
- Added: New size handler by Fr34k which allow real-time window sizing (with #PB_Event_SizeWindow) without callback !
- Added: New 'z' optional parameter to TransformSprite3D()
- Added: Several new flags for SplitterGadget() for better flexibility
- Added: SetGadgetAttribute() support for ScrollAreaGadget() to resize the inner area.
- Added: Joystick and Module support for NT4 compatibility mode
- Added: Hexadecimal display, clear-copy-save debug output and window position saving to the debugger
- Added: Support for different depth icons for the default program icon
- Added: IDE features: Interface viewer, new MS SDK support, find in files, line numbering
- Added: 'Static' keyword for local variables (in procedures) which need to be persistent
- Added: Last FAsm (assembler) version, which has some speed improvement and fix a bug on big sources
- Added: QuickHelp support in the PureBasic IDE for most of the API functions !
- Changed: no more #Memory ID and flag for AllocateMemory()
- Optimized: split CDAudio, Database, File, Network, StatusBar and Systray libraries
- Removed: UpdateStatusBar(), UseMemory(), MemoryID()
- Fixed: French documentation is now perfectly up to date
- Added: DatabaseUpdate(), DatabaseError()
- Added: Play/Stop/Resume/PauseMovie() support for sprite rendered movies
- Added: 'Extends' support for 'Structure'
- Added: Icon support and live image resize for DrawImage()
- Added: 2, 16 and 256 colors BMP support for Catch/LoadSprite()
- Added: #PB_Default support for DrawingFont()
- Added: Added Japanese support for Gadget library, editor and Visual Designer
- Added: Excellent SmartUpdate tool from fr34k to update quickly any PureBasic version
- Added: Last version of the Visual Designer by Berikco
- Optimized: ExplorerGadgets are now 5x faster for directories scanning
- Changed: Labels are no more case-sensitive
- Fixed: A memory leak in Sprite rendered movies
- Added: ExplorerComboBoxGadget()
- Added: CameraProjection(), CameraBackColor() and CameraRange()
- Added: The modulo operand: '%'
- Added: ForEach command to iterate linkedlists quickly
- Added: Interface/EndInterface to support object function call ! Yes, COM and DX objects are now accessible natively in PureBasic...
- Added: Big residents files with all Windows/DirectX interfaces ready to use !
- Added: Break and Continue to modify the loops flow
- Added: Enumeration/EndEnumeration to quickly declare a lot of sequential constants
- Added: OffsetOf() to get the offset of a structure or interface field
- Added: SizeOf() now supports variables and Interfaces
- Added: Interface, Float and String constants support to the 'Resident' file format
- Added: Quality support for SaveImage() and the JPEG encoder
- Added: MessageRequester() 'Flags' is now an optional parameter
- Added: The Editor syntax coloring and structure viewer have been greatly enhanced
- Optimized: Removed many OGRE's dependencies resulting in a smaller Engine3D.DLL
- Changed: Constants are back real constants now (use Enumeration to have dynamic constants)
- Fixed: ASM registers display in the Debugger
- Changed: SelectedFilePattern() and Open/SaveFileRequester pattern index is now '0' based instead of '1' based. Warning !
- Changed: ListIndex() is now '0' based instead of '1' based. Warning !
- Updated: IDE: find/replace updated, an '*' now identify a modified file
- Fixed: ParseDate() when no separators were used in the date
- Added: Terrain library
- Added: Billboard library
- Added: Entity library
- Added: Material library
- Added: Particle library
- Added: OnError library
- Added: CameraLookAt(), CameraRenderMode(), CameraFOV(), Engine3DFrameRate(), CountRenderedTriangles()
- Added: CreateMesh(), SetMeshData()
- Added: ExamineLibraryFunctions(), NextLibraryFunction(), LibraryFunctionName(), LibraryFunctionAddress()
- Added: IsFunctionEntry(), CallCFunction(), CallCFunctionFast()
- Added: RenderMovieFrame(): Yes, you can play a movie on a sprite or on a screen !
- Added: OpenGadgetList(), ScrollBarGadget(), ScrollAreaGadget(), SplitterGadget()
- Added: HyperLinkGadget(), ContainerGadget(), EditorGadget()
- Added: TreeGadgetItemNumber(), ExplorerListGadget(), ExplorerTreeGadget()
- Added: #PB_FontRequester_Effects flag for the FontRequester()
- Added: PanelGadget() has been fully rewritten and is now XP theme compliant
- Added: TreeGadget() has been rewritten to support dynamic items (add, remove..)
- Added: AddGadgetItem() now support picture for the PanelGadget()
- Added: 'ParentID' optional parameter to OpenWindow()
- Added: CDecl support for PureFunctions and procedures (Added 'ProcedureCDLL' and 'DeclareCDLL' keyword)
- Added: End [ExitCode] optional parameter
- Added: More precise error-message for Assembly and Linker errors
- Added: /LINENUMBERING compiler switch
- Added: Full debugger support for the 3D engine
- Added: ComboBox support for GetGadgetItemText() and SetGadgetItemText()
- Added: Many new functions for the Visual designer including Tab order, font selection, new gadgets and more.
- Changed: Mesh library, introduced a new Entity one (for more flexible control)
- Optimized: and split the Movie library
- Fixed: SpriteCollision() and SpritePixelCollision() was 1 pixel wrong
- Removed: FakeEndSelect
- Fixed: Several compiler bugs
- Fixed: Major compiler array bugs
- Fixed: Major MD5FileFingerprint() bug
- Fixed: Syntax Highlighting for command/procedure and Alt+V shortcut
- Fixed: 2 bugs in the Visual Designer
- Fixed: Sprite loading and image plug-in (JPEG, PNG) in 16-bit mode
- Fixed: XOR inline ASM keyword was no more recognized
- Fixed: TGA decoder on some file
- Added: Powerful Visual Designer, to easily creates graphical applications
- Added: Many new optimizations in the compiler core, resulting in faster/smaller code (especially when dealing with arrays and structured variables)
- Added: Native JPEG, TIFF, PNG and TGA image/sprite decoder trough plug-in
- Added: Native JPEG and PNG image/sprite encoder trough plug-in
- Added: Native OGG sound decoder trough plug-in
- Added: AvailableScreenMemory(), SelectedFilePattern(), DefaultPrinter()
- Added: Flags for LoadFont() to allow italic, bold and more
- Added: Multisource support for the debugger (Included files)
- Added: Array overflow debugger check
- Added: Data read overflow debugger check
- Added: Icon support for CatchImage()
- Added: MMX, 3DNOW, SSE and SSE2 optional support, with autoselect mode (to choose automatically the right routine at runtime, depending of the processor).
- Added: DLL Importer tool in the Library SDK
- Optimized: and split: Font, Gadget and Window libraries, for smaller executable (Thanks to Danilo)
- Removed: CatchJPEGSPrite() and LoadJPEGSprite() (replaced by plug-ins)
- Enhanced the PureBasic library format (new compressed format)
- Changed: SetGadgetFont() now takes 2 parameters, to allow runtime font change
- Fixed: SortArray() when sorting string in case insensitive mode
- Updated: French documentation for v3.51
- Fixed: some bugs in the compiler and optimized a bit the output
- Removed: the Gosub/Return check introduced in v3.50 (for flexibility reason)
- Added: Engine3D Library: Add3DArchive(), AmbientColor(), Fog(), InitEngine3D(), LoadWord(), RenderWorld(), SkyBox(), SkyDome()
- Added: Camera Library: CameraLocate(), CameraX(), CameraY(), CameraZ(), CreateCamera(), FreeCamera(), MoveCamera(), RotateCamera()
- Added: Light Library: CopyLight(), CreateLight(), FreeLight(), HideLight(), LightColor(), LightLocate(), LightSpecularColor(), MoveLight()
- Added: Mesh Library: CopyMesh(), FreeMesh(), GetMeshAnimationTime(), MeshAnimation(), MeshAnimationLength(), MeshLocate(), MeshTexture(), MeshX(), MeshY(), MeshZ(), MoveMesh(), ResizeMesh(), RotateMesh(), ScaleMesh(), SetMeshAnimationTime()
- Added: Texture Library: CopyTexture(), CreateTexture(), FreeTexture(), LoadTexture(), TextureHeight(), TextureID(), TextureOutput(), TextureWidth()
- Added: WriteFloat(), ReadFloat(), MouseLocate(), MD5FileFingerprint()
- Added: STDCALL and ANY flags to PureLibraries. See SDK doc for more information
- Added: TreeGadget checkboxes support for GetGadgetItemState()
- Added: SetGadgetState() now work for ButtonImageGadget()
- Updated: CallFunction() and CallFunctionFast(): Floats can be passed directly
- Optimized: CallFunctionFast() (2x faster)
- Changed: The assembler (FASM), resulting of better optimized code (PB editor is 6 kb smaller for example)
- Fixed: the game mouse support in windowed mode (could lead to computer lock)
- Changed: Structure names aren't case sensitive anymore (could produce difficult bug to look at)
- Added: Date library: Date(), Year(), Month(), Day(), DayOfWeek(), DayOfYear(), Hour(), Minute(), Second(), FormatDate(), AddDate(), ParseDate()
- Optimized: Split libs: FileSystem, StringExtension, Date
- Updated: RunProgram() now has an optional WorkingDirectory$ parameter
- Fixed: Debugger problem in the FileSystem library
- Editor: enhanced (Multi files, Procedure browser, custom tools and more...) and source code released. Thanks to Danilo !
- This is a bug fixes and synchronization with Linux version release
- Added: HideMenu(), CreateSprite(), UseBuffer()
- Updated: SortArray() now works with float arrays
- Fixed: SetClipboardText(): failed in some cases
WARNING! The window callback behavior have changed and will cause program lock if you used one ! See SetWindowCallback() doc for more info.
- Added: Cipher library: CRC32Fingerprint(), MD5Fingerprint(), DESFingerprint(), Base64Encoder()
- Optimized: 2DDrawing, Keyboard, Mouse, Sound and Sprite libraries (Command split) !
- Updated: PokeS() and PeekS() now have an optional Length parameter
- Changed: Renamed StripLead() and StripTrail() to RTrim() and LTrim() for other BASIC compatibility
- Removed: AttachToolBar(), DetachToolBar(), AttachMenu(), ReceiveNetworkString()
- Fixed: FrameGadget() with other sunken and raised frames
- Added: Preference library: OpenPreferences(), CreatePreferences(), ReadPreferenceLong/Float/String(), WritePreferenceLong/Float/String() PreferenceComment(), PreferenceGroup()
- Added: Windows XP skinning support (See 'Compiler Options' window)
- Added: GadgetX(), GadgetY(), GadgetWidth(), GadgetHeight(), GetGadgetItemState(), SetGadgetItemState(), GetGadgetItemText(), SetGadgetItemText(), CountGadgetItems(), TrackBarGadget(), IPAddressGadget()
- Added: HideWindow(), RandomSeed(), MakeIPAddress(), IPAddressField()
- Added: MouseWheel(), CatchSprite(), SaveSprite()
- Added: RotateSprite3D(), ZoomSprite3D(), TransformSprite3D(), Sprite3DQuality(), Sprite3DBlendingMode()
- Added: EventType(): Return/Change/Focus can be detected in StringGadget(), ComboBox() and more
- Added: CatchImage(), CreatePack(), ClosePack(), NextPackFile(), AddPackFile(), AddPackMemory(), PackFileSize(), OpenPack()
- Added: DirectoryEntrySize(), DirectoryEntryAttributes()
- Added: Full compatibility with 'WindowBlinds' on WinXP which seems to broke the event handler !
- Optimized: PureLibraries (Only used commands included) : Image, Misc2, GadgetExtension, Requester, Sprite3D, Memory, Packer
- Updated: CompareMemoryString(): Added an optional 'Length' parameter.
- Removed: InitGadget(): no more needed.
- Fixed: Gadget events for ComboBox, ListIcon and Systray.
- Added: Library PureLibrary: OpenLibrary(), IsFunction(), CallFunction(), CloseLibrary()
- Added: Help PureLibrary: OpenHelp(), CloseHelp()
- Added: Clipboard PureLibrary: ClearClipboard(), GetClipboardText(), GetClipboardData(), SetClipboardData(), SetClipboardText()
- Added: ElseIf
- Added: If a condition (If/While...) isn't finished before EndProcedure, the compiler display an error.
- Added: ToolBarToolTip()
- Added: SpritePixelCollision()
- Added: Timer PureLibrary (Thanks to Danilo): StartTimer(), EndTimer(), GetMinTimerResolution(), GetMaxTimerResolution()
- Added: ComDX PureLibrary (Thanks to Danilo): CallCOM(), CallDX()
- Added: Printer PureLibrary: NewPrinterPage(), PrinterOutput(), PrintRequester(), StartPrinting(), StopPrinting(), PrinterPageWidth(), PrinterPageHeight()
- Added: Variable command argument for any function
- Added: Declare and DeclareDLL to declare procedures before actual declaration
- Added: CopyMemoryString(), MemoryStringLength(), CompareMemory(), ReAllocateMemory(), CompareMemoryString()
- Added: CopyImage(), ResizeImage(), GrabImage()
- Added: MovieStatus(), MovieLength()
- Added: SoundVolume(), SoundPan(), SoundFrequency(), CatchSound()
- Added: FirstDatabaseRow(), PreviousDatabaseRow()
- Added: CreatePalette(), GetPaletteColor(), SetPaletteColor(), UsePalette()
- Added: RGB(), ReplaceString(), StrU(), StrF(), ValF()
- Added: HideGadget(), GadgetID()
- Added: Dutch catalog for the editor
- Updated: Brand new library architecture to allow to link ONLY needed commands to the final executable. For now, all the libraries aren't optimized to use it, but it will come, in a near future :). BTW, all libraries use the standard STDCALL format, so no argument reversed anymore. Old libraries are still fully compatible.
- Changed: Internally, procedures parameters are now pushed in the right order. Warning, all the callback must be changed to reflect this. This also mean than DLL procedure parameters can be put in the right order.
- Fixed: Compiler crash when using constant string, more check to the preprocessor
- Removed: Mr Skunk PureLibraries, as some was bugged but we don't have the source code to fix them.
Note: This is a bug fix release before the major 3.0 version. Very few changes.
- Added: HtmlHelp support for search in the help + other goodies. Old HTML files can be safely removed.
- Fixed: Compiler bugs (Float within structure array, XIncludeFile, 'a' constants in some rare case, Expression bug, constant duplication and Image library integration when using Sprite, Memory leaks in string procedures)
- Added: DLL Creation !
- Added: Constants can now be String or Float
- Added: Debug et DebugLevel commands with Debug window in the debugger.
- Added: Italian editor language by Yuri.
- Changed: Variables, Arrays, LinkedList and Constants are now case insensitive.
- Fixed: PathRequester(), OpenFileRequester(), SaveFileRequester()
- Added: PeekF(), PokeF()
- Added: Math library: ACos(), ASin(), ATan(), Pow(), Log(), Log10(), Round(), Cos(), Sin(), Tan(), Abs(), Sqr(), Int()
- Added: SpriteOutput(): Allow to use the 2DDrawing command on any sprites !
- Added: #PB_WindowInvisible
- Fixed: compiler bugs (a.l = Pow(), a = -16/variable)
- Changed: StrF(Number) to StrF(Number, Precision)
- Updated: Rewrote from scratch the compiler core: complex expression compliant
- Updated: Optimized the code output
- Added: /REASM compiler flag to allow source code reassembly after hand modifications
- Added: Possibility to use floats with API call.
- Fixed: float support (comparison, procedure, Abs(), Sin() etc..)
- Fixed: all known bugs
- Added: Sprite3D library: Create3DSprite(), Display3DSprite(), Transform3DSprite(), Free3DSprite(), Start3D(), Stop3D()
- Added: QuickHelp for almost all commands
- Added: ChangeSysTrayIcon(), SysTrayIconToolIip(), ExpandTreeGadgetItem(), TreeGadgetItemState()
- Added: DisableMenuItem(), GadgetToolTip(), StatusBarIcon()
- Added: UseGadgetList(), TransparentSpriteColor(), ClipSprite(), CopySprite(), GrabSprite()
- Added: ProgramParameter()
- Added: Thread library
- Added: '!' support to include raw ASM command in the code source (directly managed by NAsm)
- Added: Multilevel (100) Undo/Redo in the editor
- Added: Colored syntax when pasting (Yes ;-)
- Updated: StatusBarText(): 2 flags for alignment (Center & Right)
- Changed: PlaySound(), Added a flag to play looping
- Fixed: DatabaseQuery(), GetPathPart(), LoadSprite() (Can now load sprite of any size)
- Added: CopyMemory(), CatchJPEGSprite(), LoadJPEGSprite(), WindowMouseX(), WindowMouseY()
- Added: MovieSeek(), MovieInfo(), DrawImage(), ScreenOutput(), WindowOutput(), ImageOutput(), CreateImage()
- Added: Database library
- Added: Compressor library
- Added: Console library (By Sylvain)
- Added: Possibility to use the 2DDrawing library directly on Game screens
- Added: XOR and Fill/Outline mode for 2D Drawing functions
- Added: -1 feature to FreeMemory() to free all banks in one call.
- Added: New flag for RunProgram(): run synchronously and possibility to hide it.
- Added: Powerful ASM Monitor in the debugger (in a BASIC language !)
- Added: Variable viewer in the debugger
- Changed: All old MemoryBank functions renamed.
- Fixed: StopModule() (Removed the #Module) parameter
- Added: Mouse library
- Added: Movie library
- Added: Sort library
- Added: Procedure address (@ProcedureName())
- Added: support for 'Console' executable format
- Added: DisplayTranslucentSprite(), DisplayAlphaSprite(), DisplayShadowSprite(), DisplayRGBFilter(), ChangeAlphaIntensity(), ClearScreen() OpenWindowedScreen(), DisplaySolidSprite(), CloseScreen(), SetFrameRate(), IsScreenActive(), StartSpecialFX(), StopSpecialFX(), ResizeGadget() JoystickAxisX(), JoystickAxisY(), ChangeGamma(), SetWindowCallback(), Red(), Green(), Blue()
- Changed: LoadSprite()
- Fixed: big bugs in DirectX routines (Sprite, Keyboard, Movie). Now it multitasks very well !
- Added: optional Auto-save before compiling
- Updated: ultra-fast syntax highlighting when loading the source file
- Added: Data support commands: Read, Restore, Data, DataSection, EndDataSection
- Added: Float number support (early stage)
- Added: MemoryBank library
- Added: StatusBar library
- Added: Image library
- Added: Systray library
- Added: lot of new commands: EventLParam(), EventWParam(), ListIndex(), ListCount() and ChangeCurrentElement() ToolBarImageButton(), EventMouseButton(), UseDirectory()
- Added: CreatePopupMenu() and DisplayPopupMenu()
- Added: TreeGadget(), ImageGadget(), ButtonImageGadget(), AddTreeGadgetItem()
- Added: ListIconGadget(), AddListIconGadgetItem(), ChangeListIconGadgetDisplay(), AddGadgetColumn()
- Changed: the default type from 'Word' (16-bit) to 'Long' (32-bit)
- Fixed: CopyFile() (Overwrite doesn't work)
- Removed: InitWindow(), InitRequester(), InitToolBar(), InitFont(), InitFile() and InitMenu() (No more needed...)
- Added: to editor: Drag&Drop on the main window, auto registry support for .pb files, auto indent, Tab/Shift+Tab when a block is selected to indent easily
- Added: tons of new commands: GetGadgetState(), SetGadgetState(), AddGadgetItem(), RemoveGadgetItem(), ClearGadgetItemList() PanelGadget(), ClosePanelGadget(), TextGadget(), SpritesCollision(), Delay(), OptionGadget(), FrameGadget() Loc(), PeekW/B(), PokeW/B(), GetPathPart(), GetFilePart(), RunProgram(), DoubleClick(), PathRequester()
- Added: 'Tab' support on Gadget lib.
- Added: compiler directives: CompilerIf/Else/Endif, CompilerSelect/Case/Default/EndSelect
- Added: the CD-Audio library
- Added: the FileSystem library
- Added: a built-in ICON linker (no more need GoRC)
- Enhanced: Improved the debugger (step-by-step now works perfectly)
- Fixed: some nasty bugs in the compiler
- Changed: LSR, LSR to << and >> respectively
- Added: debugger runtime support for all pure libraries. A program no more crashes so easily. It's much easier now to catch up bugs !
- Added: NT4.0 support for multimedia libraries (Sprite, Palette, Sound & Keyboard), which allows the development of games or multimedia applications running on WinNT4 too !
- Added: some new functions : Lof(), ReadMemory(), WriteMemory(), PeekS(), PokeS(), NetworkClientEvent(), SetGadgetFont(), WaitWindowEvent(), FileSeek()
- Added: a brand new Module library to allow an easy replay of Protracker, Fastracker or Impulse tracker modules.
- Added: project settings save for each file (Executable name, Compiler options etc...)
- Added: preference window to customize the editor easily (color, default directory etc..)
- Added: multi-language support for the editor (english, french and german)
- Added: icon (.ico) support when creating an executable !
- Added: Win32 help support (when pressing F1 on a windows function)
- Updated: documentation
- Fixed: fixed the compiler a lot, much reliable now.
- Added: the debugger to walk easy trough a program. It features step-by-step, stop, continue, quit (useful to quit an infinite loop...) and can be invoked and controlled via the source code with the following commands: CallDebugger, EnableDebugger, DisableDebugger
- Added: new commands: ListViewGadget(), AddListViewItem(), GetGadgetText(), SetGadgetText(), PeekS(), SizeOf()
- Added: Multi-language to the editor (French, German, English)
- Added: Microsoft Windows © resident file containing all the constants and structures needed for easy OS programming under PureBasic.
- Improved the editor a lot: contextual help (F1 on a keyword), Goto, Compiler Options, much better syntax highlighting, '.prefs' file
- Fixed: lot of bugs and improved the whole stability
- Added: 2D Drawing library
- Fixed: all know bugs, and some major enhancements
- Added: Requester library
- Added: ToolBar library
- Added: Dedicated editor (syntax coloring and direct access to compiler !)
- Fixed: DirectX related bugs
- Added: Sprite library
- Added: Joystick library
- Added: Keyboard library
- Added: Sound library
- Added: Network library
- Added: Palette library
- Fixed: Numerous bugs. Thanks to all bug reporters !
- Inition: First public release of PureBasic x86. For testing purpose only
RetroSearch is an open source project built by @garambo | Open a GitHub Issue
Search and Browse the WWW like it's 1997 | Search results from DuckDuckGo
HTML:
3.2
| Encoding:
UTF-8
| Version:
0.7.3