24 June 2022 : Version 6.00 LTS
- 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: 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)
- Added: backface culling for sprite OpenGL subsystem to be
faster and be in line with DirectX9/11
- Added:
auto DPI support for Menu and ToolBar library (Windows)
- 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 upgraded to support modern OS X version
- Updated: SQLite to 3.38.2
- Updated: zlib to 1.12.12
- Updated: libpq (PostgreSQL) to 14.2
- Updated: Standalone debugger is now DPI Aware (Windows)
- Fixed: the IDE for High DPI (Windows)
- 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:
OGRE only supports OpenGL now, which ease the porting to Linux/OSX and allow to
focus on only GLSL for shaders
- Changed: the
default subsystem for screen/sprite is now OpenGL on Windows for more
consistency. DirectX9 is still available as a subsystem.
- Changed: the Movie library on Raspberry to use libVLC as
xine doesn't work on it
- Changed: the Mouse
library on Windows to use RawInput instead of DirectX to support HighDPI mouse
- 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 and is very bad looking
23th November 2020 : Version 5.73 LTS
- 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): link
-
Added: Add option to auto-wrap Find at end of file
(kenmo) link
-
Added: New editor shortcuts (upper/lower/invert case)
(kenmo) link
- Updated: Updated SQLite to 3.33.0
-
Fixed: Autocomplete on Linux (mk-soft) link
-
Fixed: IDE Crash on MacOS with TouchBar (mk-soft) link
-
Fixed: Some compiler and libraries related bugs
30th March 2020 : Version 5.72 LTS
- 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) link
-
Added: Zoom keyboard shortcuts in IDE (kenmo) link
-
Added: New editor shortcut functions in IDE (kenmo) link
-
Added: Memview (idle) link
- Changed: PostEvent() now returns a result as
it could fail in some extrem case
- Changed:
Sign() now returns an integer instead of a float.
- Changed: In MS WIndows, the default font changed from MS
Shell Dlg to Segoe UI size 9.
- Updated:
OpenJPEG library to version 2.3.1
- Updated: PCRE
library to version 8.44
- Updated: libpng to
version 1.6.37
- Updated: libjpeg to version 9d
- Updated: libtiff to version 4.1.0
- Updated: expat to version 2.2.9
- Updated: libflac to version 1.3.3
- Updated: libogg to version 1.3.4
- Updated: libvorbis to version 1.3.6
- Updated: sqlite to version 3.31.1
- Updated: curl to version 7.68.0
- Fixed: 'Find Previous' freezing in IDE (kenmo) link
-
Fixed: Gadgets Drag'n'Drop Position in FormDesigner
(ChrisR) link
-
Fixed: Re-enable buttons bug in window 'Find in Files'
in IDE (Sicro) link
-
Fixed: Display errors in window '#WINDOW_Form_Parent' of
the FormDesigner (Sicro) link
-
Fixed: Many documentation issues (Andre and Mesa)
-
Fixed: Some compiler and libraries related bugs
16th August 2019 : Version 5.71 LTS
- Fixed: Some compiler and libraries related
bugs
2nd January 2019 : Version 5.70 LTS
- 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 separator 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
4th February 2018 : Version 5.62
- Fixed: Some compiler and libraries related
bugs
7th January 2018 : Version 5.46 LTS
- Fixed: Some compiler and libraries related
bugs
12th September 2017 : Version 5.61
- Fixed: The touchbar issue on new MacBook
Air and the DebugOutput problem on Windows.
- Fixed:
Fix a lot of bugs. Notable bug fixes are prototype and quad return were broken,
MacBook Pro crash, and optionGadget on Windows now support keyboard.
- 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).
10th August 2017 : Version 5.45 LTS
- Fixed: The touchbar issue on new MacBook
Air and the DebugOutput problem on Windows.
- Fixed:
Fix a lot of bugs. Notable bug fixes are prototype and quad return were broken,
MacBook Pro crash, and optionGadget on Windows now support keyboard.
- 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).
2nd March 2017 : Version 5.60
- 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 <joe.doe@domain.com>" 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
- 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 Base64Encoder() to Base64EncoderBuffer()
- Changed: renamed Base64Decoder() to Base64DecoderBuffer()
- Changed: removed 'define.b' syntax to change default type as it could create hard to find bugs.
19th December 2016 : Version 5.51
- Updated: MacOS X package is now self contained to be OSX Sierra compliant
- Fixed: Some compiler and libraries related bugs
19th November 2016 : Version 5.44 LTS
- 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 $PATH.
25th July 2016 : Version Version 5.43 LTS
- 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.
25th July 2016 : Version 5.50
- 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: #StringConstant$ syntax support, to get the address of a string constant
- 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.
1st March 2016 : Version 5.42 LTS
- Removed: 'generate event loop' option in the Preferences/Form
- Fixed: Some compiler and libraries related bugs
23th December 2015 : Version 5.41 LTS
- 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'
- Fixed: Some compiler and libraries related bugs
16th October 2015 : Version 5.40
- 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 and #PB_Entity_EnableContactResponse 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 - Updated: the Windows compiler to
VC++ 2013 for better code generation - Updated:
SQLite to 3.8.10.2
- Fixed: Zip archive support
- Fixed: send mail and http request issues -
Fixed: 'CONSTANTLIST' compiler interface, now string
constants are returned as escaped strings.
- Changed: The default GTK version is now GTK3 on Linux. A
gtk2 subsystem has been added for backward compatibility. - Changed: The default string format for RunProgram()
read/writestring is not UTF8 instead of Unicode - Changed: the Cipher lib to be modular (now
UseMD5Fingerprint() and such commands needs to be used) - Changed: ExamineFingerprint() to StartFingerprint() -
Changed: NextFingerprint() to AddFingerprintBuffer()
- Changed: EntityPhysicBody() to
CreateEntityBody() - Changed: TerrainPhysicBody()
to CreateTerrainBody() - Changed: the SendMail()
'Asynchronous' parameter has been replaced by the #PB_Mail_Asynchronous flag.
- Changed: DLLImporter has been removed and .pbl
files are no more supported. New 'import library' files can be created using the
'/IMPORT' switch of the pbcompiler.
- Removed:
RemovePackFile() - Removed: #PB_Packer_CompressedSize
support for ZIP and 7z archives with PackerEntrySize() - Removed: AvailableScreenMemory()
27th October 2014 : Version 5.31
- Fixed: Some compiler and libraries related
bugs
23th July 2014 : Version 5.30
- Added: New "Issue" tool for IDE to build todo/issue lists easily from comments.
- 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: 'Issues' IDE tool to collect and display TODO/FIXME markers inside the code
- 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
- Changed: DeleteElement() now returns the data pointer to the new current element (if any)
- Changed: SetXMLAttribute() to accept newline characters in attributes (will be encoded as character entities)
- Changed: Added a mandatory "name" parameter to CreateXMLNode() as some parser needs it at node creation time
- Changed: The way (X)IncludeFile and
IncludeBinary works: it's now relative to the file which contains these
statements (which is easier to handle)
- Changed: #PB_Event_SizeWindow and
#PB_Event_MoveWindow are no more realtime on Windows, use BindEvent() to
get real time update. It should fixes ugly flickering when realtime
resizing on Windows.
- Changed: DataSection label within Procedure are now local labels.
- Changed: ASM local label prefix has been changed from "l_" to "ll_" ("ll" for local label), to avoid possible clash with main labels.
- Changed: #PB_LinkedList constant has been renamed to #PB_List for better consistancy
- Changed: Removed the "Billboard" parameter from AddBillboard() as it was not used. Now returns the new billboard index.
- Changed: Updated Scintilla to version 3.4.2
- Removed: MaterialDepthWrite() (replaced by SetMaterialAttribute())
- Removed: CountRenderedTriangles() and Engine3DFrameRate(), replaced by Engine3DStatus()
17th March 2014 : Version 5.22 LTS
- Fixed: Some compiler and libraries related bugs
20th November 2013 : Version 5.21 LTS
- Changed: 'REQUEST' to 'AUTO' for dialog splitter automatic min size calc (old syntax still supported)
- Fixed: Some compiler and libraries related bugs
17th September
2013 : Version 5.20 LTS
- 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 - Optimized: More peephole optimizations on x64 assembler
output - Optimized: Faster compilation for big
programs - Optimized: Linux build server have
been upgraded, now using a better GCC which produce better code.
- Changed: SpinGadget() EventType are now #PB_EventType_Up and
#PB_EventType_Down instead of -1 and 1. - Changed:
renamed ZoomSprite3D() to ZoomSprite() - Changed:
renamed TransformSprite3D() to TransformSprite() - Changed: renamed RotateSprite3D() to RotateSprite() -
Changed: renamed Sprite3DQuality() to SpriteQuality()
- Changed: renamed Sprite3DBlending() to
SpriteBlending() - Changed: renamed the whole
'Module' library to 'Music' - Changed: renamed
Frame3DGadget() to FrameGadget() - Changed:
renamed Frame3DGadget3D() to FrameGadget3D() - Changed: renamed #PB_Shortcut_Prior to #PB_Shortcut_PageUp
and #PB_Shortcut_Next to #PB_Shortcut_PageDown - Changed: Packer plugin constant renamed to
#PB_PackerPlugin_XXX - Changed: RayCollide() now
returns the colliding #Entity.
- Updated:
WebGadget() on Windows doesn't needs ATL.dll anymore - Updated: zlib to 1.2.8 - Updated: pqlib (PostgreSQL) to 9.2.4 - Updated: ziplib to 0.11.1 - Updated: SCNotification scintilla structure
- Removed: Mozilla ActiveX support for WebGadget() on Windows as
the last ActiveX version is way too old (2005) - Removed: Sprite3D library (merged with regular sprite library)
- Removed: Palette library (outdated) - Removed: RenderMovieFrame() and #PB_Movie_Rendered (outdated)
- Removed: DisplayTranslucentSprite() -> replaced
with 'Alpha' parameter for DisplayTransparentSprite() - Removed: DisplaySolidSprite() -> replaced with 'Color'
parameter for DisplayTransparentSprite() - Removed:
DisplayRGBFilter() -> can be replaced with a zoomed sprite with color -
Removed: DisplayShadowSprite() -> can be replaced with
DisplayTransparentSprite() with color - Removed:
StartSpecialFX(), StopSpecialFX(), DisplayAlphaSprite(), ChangeAlphaIntensity(),
UseBuffer() - Removed: Carbon subsystem on OS X, it
was too old be used with new libs
- Fixed: Many
bugs
19th March 2013 : Version 5.11
- Fixed: Some compiler and libraries related
bugs
14 February 2013 : Version 5.10
- 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 for OpenFile(), ReadFile() and CreateFile() - 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() - Changed: renamed
AddMeshVertex() to MeshVertexPosition() - Changed:
renamed LightColor() to SetLightColor() - Changed:
removed all MaterialXXXXColor() replaced by SetMaterialColor() - Changed: removed all XXXXLocate() replaced by #PB_Absolute
flag for MoveXXXX() commands - Changed: removed
ResizeEntity(), replaced by #PB_Absolute flag for ScaleEntity() command, done
also for ScaleNode() and ScaleText3D() - Changed:
replaced #PB_Sort_<Type> with #PB_<Type> to avoid possible errors
- Changed: disallow native type for pointers -
Changed: StrF/D(), trailing zeros are now
automatically removed if no decimals are specified
- Updated: OGRE core has been updated to 1.8.2 - Updated: SQLite updated to 3.7.15.2 - Updated: User-guide: new chapters about dynamic numbering and
handling multiple windows added by spikey
- Removed: SendNetworkFile(), ReceiveNetworkFile(),
#PB_NetworkEvent_File to avoid possible security hole - Removed: DirectX7 and NT4 subsystem on Windows - Removed: SDL subsystem on Linux - Removed: PowerPC version for OS X
- Optimized: FindString() is up to twice as fast
-
Fixed: Many bugs
5th November 2012 : Version 5.00
- 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 - Updated: Expat updated to 2.1.0 - Updated: libjpeg updated to 8.0d - Updated: libpng updated to 1.5.12 - Updated: Ogre to 1.8.0, bullet to 2.80, hydrax to 0.5.4,
CEGUI to 0.7.7 - Updated: ModPlug lib update to
0.8.8.4 - Updated: Use of VC++ 2010 instead of VC++
2005 to compile the Windows libraries (32-bit and 64-bit), resulting of better
optimized code - Updated: French documentation has
been greatly updated/enhanced, thanks to Jean R. VIALE.
- Changed: SetModulePosition() is now in milliseconds, no more
in pattern
- Fixed: Many bugs
3D
Engine: - Added: EntityAnimation library -
Added: NodeAnimation library - Added: VertexAnimation library - Added: Spline library - Added:
CG Toolkit support for the 3D engine (both DirectX and OpenGL), trough
InitEngine3D() - Added: optional 'Mode' parameter
to InitEngine3D() - Added: 'PickMask' parameter to
MousePick() and CreateEntity() - Added:
RenderWorld() now returns 'TimeSinceLastFrame', in milliseconds - Added: SkyBox() and SkyDome() now supports Fog() - Added: 'Color' and 'TextureSize' parameters to WorldShadows()
- Added: #PB_World_UnderWater and
#PB_World_WaterGodRays flags to CreateWater() - Added: RayPick(), CameraViewWidth(), CameraViewHeight(),
CameraViewX(), CameraViewY(), CameraDirection() - Added: CameraDirectionX/Y/Z(), SetCameraFixedYawAxis()
- Added: optional 'IsActive' parameter to
render to texture for CreateCamera() - Added:
ScaleMaterial(), MaterialFog(), ReloadMaterial(), ResetMaterial(),
NodeFixedYawAxis() - Added: optional
'TextureCoordinateIndex' parameter to AddMaterialLayer() - Added: #PB_Material_Anisotropic support to
MaterialFilteringMode() - Added: #PB_Default
support as #Material to set the default settings for materials. - Added: #PB_Material_Wireframe, #PB_Material_Point and
#PB_Material_Solid to MaterialShadingMode() - Added: SoundListenerLocate() - Added: Optional DirectionX/Y/Z parameter to NodeLookAt()
- Added: optional 'Mode' parameter to MoveLight(),
MoveEntity() and MoveNode() - Added:
CreateTexture() now handle alpha textures as well - Added: #PB_Entity_Wireframe, #PB_Entity_Solid,
#PB_Entity_Point and #PB_Entity_DisplaySkeleton to EntityRenderMode() -
Added: FreeEntityJoints(), AttachEntityObject(),
DetachEntityObject(), EntityBoneX/Y/Z() - Added:
EntityBonePitch(), EntityBoneRoll(), EntityBoneYaw(), EntityFixedYawAxis() -
Added: DirectionX/Y/Z optional parameters to
EntityLookAt() - Added: EntityVelocity(),
EntityAngularFactor(), EntityLinearFactor(), EntityCustomParameter(),
EntityParentNode() - Added:
EntityBoundingBoxX/Y/Z(), DisableEntityBody() - Added: #PB_Entity_VelocityX/Y/Z, #PB_Entity_MassCenterX/Y/Z,
#PB_Entity_MaxVelocity to Get/SetEntityAttribute() - Added: LightAttenuation(), LightX/Y/Z(), LightDirection(),
LightDirectionX/Y/Z() - Added: RotateLight(),
LightPitch(), LightYaw(), LightRoll() - Added:
GetScriptParticle(), CreateRenderTexture(), UpdateRenderTexture(),
SaveRenderTexture() - Added:
CreateCubeMapTexture(), EntityCubeMapTexture() - Added: HideEffect() now handle ribbon as well - Added: EffectID(), RibbonEffectWidth(), AttachRibbonEffect(),
DetachRibbonEffect(), CreateLensFlareEffect(), LensFlareEffectColor() -
Added: EnableHingeJointAngularMotor() - Added: Joint parameter for ConeTwistJoint(), HingeJoint(),
PointJoint(), SliderJoint() - Added:
#PB_HingeJoint_LowerLimit and #PB_HingeJoint_UpperLimit to
Get/SetJointAttribute() - Added: Optional 'Pitch',
'Yaw', 'Roll' parameters to AddStaticGeometryEntity() - Added: FreeTerrain(), SetupTerrains(), CreateTerrain(),
TerrainPhysicBody(), DefineTerrainTile() - Added:
AddTerrainTexture(), BuildTerrain(), TerrainLocate(), TerrainHeight(),
TerrainTileHeightAtPosition() - Added:
TerrainTilePointX/Y(), TerrainTileSize(), GetTerrainTileHeightAtPoint(),
SetTerrainTileHeightAtPoint() - Added:
UpdateTerrain(), TerrainTileLayerMapSize(), GetTerrainTileLayerBlend(),
SetTerrainTileLayerBlend() - Added:
UpdateTerrainTileLayerBlend(), TerrainMousePick(), SaveTerrain(),
TerrainRenderMode() - Added: special key handling
to InputEvent3D()
- Changed: CameraLookAt()
doesn't change the direction anymore - Changed:
Attach/DetachNodeObject() removed the 'type' object - Changed: 'InitialWidth' parameter has been removed for
CreateRibbonEffect()
- Removed: AnimateEntity()
(replaced with Start/StopEntityAnimation()) - Removed: #PB_Entity_Wireframe, #PB_Entity_Point and
#PB_Entity_Solid to EntityRenderMode() - Removed:
CheckEntityCollision(), NextWorldCollision(), FirstWorldCollisionEntity(),
SecondWorldCollisionEntity()
22th
May 2012 : Version 4.61
- 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) - Updated: SQLite version (3.7.9) - Updated: PCRE version (8.30)
- Changed: OpenGL subsystem is now default on linux (a new
'sdl' subsystem has appear)
- Fixed: 3D examples
for linux - Fixed: WinAPI 64 bit residents (by
Danilo) - Fixed: Quite some bugs in compiler and
libraries
7th November 2011 : Version 4.60
- 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 completness
- Changed: FindString() 'StartPosition' parameter to be
optional - Changed: WebGadget to use WebKitGtk on
Linux - Changed: ContainerGadget with
#PB_Container_Borderless to no longer add a 2px invisible border on Linux -
Changed: EntityPhysicBody(), CreateLight(),
RenderWorld(), ShowGUI(), WorldShadows() - Changed: EntityMaterial() to SetEntityMaterial()
-
Removed: Get/SetEntityMass(), Get/SetEntityFriction()
- Removed: SetMeshData()
- Fixed: Many bugs
IDE: - Added: IDE options for commandline project building -
Added: monitoring of files for changes on disk while
they are open in the IDE - Added: FilePanel custom
implementation with Drag & Drop, Dropdown menu, scrolling also on OSX -
Added: Diff tool for directories/files - Added: Html help viewer for Linux/OSX - Added: Help viewer in toolspanel - Added: new Color Picker tool - Added: enabled font selection in IDE for OSX - Added: ProjectPanel now remembers node expanded states
Debugger: - Added: maximize button
to all debugger windows - Added: all IsXxx() and
XxxID() functions to the expression parser (for data breakpoints)
8th September 2010 : Version 4.51
- Fixed: Quite some compiler and libraries
related bugs
7th June 2010 : Version 4.50 - 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: 32bit 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 24bit or 32bit (loading and saving works with other
bit depths)
- Fixed: Quite some bugs in libraries and in
the compiler
IDE/Debugger:
- Added: Keyword underline for Break,
Continue, ProcedureReturn
- Added: StatusBar help for prototypes and
interfaces
- Added: Keyword sensitive indentation (block
mode is still available)
- Added: "Format indentation" option in the
edit menu
- Added: Indentation guides and whitespace
options
- Added: The ability to select multiple
compilers in the compiler options
- Added: Purifier tool for the debugger
- Added: Full debugger compatibility between
all OS and processors
- Added: Network debugging for the standalone
debugger
- Added: Data breakpoints for the debugger
- Added: Support for structured items in the
'View Array/List/Map' tab of the Variable Viewer
- Changed: The Array, List or Map name in
the Variable viewer should be entered with a "()" now to display their
elements.
1st February 2010 : Version 4.41 - Fixed: Quite
some compiler and libraries related bugs
12/01/2009
: PureBasic V4.40 (all OS) - Added: Native Linux x64 support -
Added: Build-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(),
EllipsicalGradient(), 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'. - Changed: OpenScreen() now accepts FlipMode and RefreshRate
- Changed: FlipBuffers() doesn't take an optional
parameter anymore
- Removed:
#PB_Image_DisplayFormat is now deprecated (value set to 24 to have 24bit as
default) - Removed: SetRefreshRate() has been
removed, the parameter is in OpenScreen() now
- Fixed: Image Decoders are now threadsafe - Fixed: Quite some bugs in libraries and in the compiler
PureBasic IDE: - Added: Full project
management - Added: Highlight matching keyword for
keyword under cursor (tied to BraceMatching color setting) - Added: Edit->Goto matching keyword - Added: PB_TOOL_Preferences Environment variable for IDE tools
- Added: Theme management to customize menu icons
- Added: New 'Silk' theme based on the Iconsset by
Mark James - Added: Autocomplete scans implicit
variable declaration and respects scope - Added:
Structure item autocomplete
- Changed: moved
encoding/newline setting from compiler options to file menu
PureBasic
Debugger: - Optimized: greatly improved
VariableViewer update speeds - Added: progressbar
display if VariableViewer update takes long - Added: column sort capability to VariableViewer (Windows
only)
06/03/2009
: PureBasic V4.31 (all OS)
- Fixed: Many compiler and libraries related bugs
12/16/2008
: PureBasic V4.30 (all OS) - Added: Full 64 bits 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 bits 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) - Enhanced: InitScintilla(),
parameter is now optional - Enhanced: Complete debugger rewrite for support
of the new platforms
- Optimized: XML library to handle very big files
quickly - Optimized: LinkedList library to use memory efficiently
-
Changed: 'Read' keyword now requiers a type (Read.l, Read.q etc.) to avoid 64
bits migration problems - Changed: CountList() to ListSize() - Changed:
ClearGadgetItemList() to ClearGadgetItems() - Changed: CameraProjection() to
CameraProjectionMode() - Changed: AddElement() and such now return a pointer
to the start of data - Changed: ComboBoxGadget() height is now the real
gadget height - Changed: #Long, #Byte, #Word etc. to #PB_Long, #PB_Byte,
#PB_Word etc. for consistency - Changed: RotateEntity(), RotateCamera() and
RotateBillboard() x,y rotation axis - Changed: CameraFOV() angle from radian
to degree - Changed: Array and list parameter now requiers the 'List' or
'Array' keyword
- Removed: StrQ(), HexQ(), BinQ(), ValQ() - Removed:
ChangeListIconDisplay(), replaced by a gadget attribute - Removed:
ButtonImageGadget() backward compatibility - Removed: CreateGadgetList(),
now automatically done in OpenWindow() - Removed: CopyTexture(),
TextureOutput() - Removed: Removed CPU monitor from the IDE, as all OS
provide the same functionality - Fixed: DX9 subsystem on Windows -
Fixed: Many compiler and libraries related bugs
05/23/2008
: PureBasic V4.20 (all OS) - 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) - Optimized: The whole commandset by using a better
C compiler (Windows only)
- Fixed: Quite some bugs related to the
commands and compiler
11/09/2007
: PureBasic V4.10 (all OS) - Added: XML library - Added: Drag & Drop library - Added: Vista
compatibility (fully comptiable 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 fetaures 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() - Changed: On Windows the IDE
and PB tools preferences are now stored in the user applicationdata folder
- Removed: The SmartUpdate tool is no longer supported
- Fixed:
lots of bugs related to the commands and compiler
04/28/2007
: PureBasic V4.01 (Linux) - Fixed: All endian related issues - Fixed: GetGadgetItemText() for
TreeGadget() - Fixed: IDE crash when using the "Run" command
04/15/2007
: PureBasic V4.00 (Linux) 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: click here.
- Added: Native unicode support -
Added: Subsystems support - Added: Unlimited length strings in both ascii
and unicode mode - Added: Thread safe commandset and strings - Added:
Character type (.c) - Added: Double type (.d) - Added: Quad type (.q)
- Added: 'XOr' and 'Not' logicals operators - Added: Fixed string type
(String${#Number}) - Added: Macro/EndMacro - single and complex mode -
Added: With/EndWith for cleaner code - Added: Assign possibility to Static
(quite important), Protected and Global: "Global a = 5" - Added: It's now
possible to create a linkedlist of pointer - Added: Support for Global,
Protected, Static and Shared arrays and linkedlist: "Global NewList MyList.l()".
NewList alone does not make the list global anymore - Added:
#PB_Compiler_File, #PB_Compiler_Line, #PB_Compiler_Version, #PB_Compiler_Home,
#PB_Compiler_Debugger, #PB_Compiler_ThreadSafe, #PB_Compiler_Unicode -
Added: CompilerError "Message" directive - Added: @Procedure() and ?Label
support in Data.l directive - Added: optional parameters for procedures,
interfaces methods, and prototypes - Added: /CONSTANT Test=Value switch to
declare constants on the compiler line - Added: Swap keyword to quickly swap
2 variables or elements (Swap a,b). - Added: multiple 'Case' for
Select/EndSelect: Case 1, 2, 6 To 20 - Added: 'Prototype' keyword to declare
functions pointers easily - Added: 'ProcedureC' keyword to declare cdecl
procedure easily - Added: Procedure parameters can now have the same name
than a global variable (automatically protected) - Added:
EnableExplicit/DisableExplicit: variables must be declared with Define, Global,
Protected, Shared or Static. - Added: Defined(Name, Type) compiler function.
Type can be #PB_Constant, #PB_Variable, #PB_Array, #PB_LinkedList,
#PB_Structure, #PB_Interface - Added: ReDim for single and
multi-dimensionned arrays - Added: Import/ImportC/EndImport to import
functions and variables from external .lib - Added: LinkedList and Arrays
can now be passed as procedure parameters - Added: PseudoTypes: p-ascii,
p-unicode, and p-utf8 - Added: Assembler and Linker errors for CLI compiler
are now directly displayed - Added: OpenGL subsystem for multimedia
applications - Added: full alphachannel support for Sprite3D library (trough
PNG and TIFF) - Added: Subsystem() compiler directive to check if a
subsystem is in use - Added: exponent form for constant float: 123.5e-20
- Added: local variables aliases are generated when using '!' raw assembly
to ease their referencing (in form p.v_variable) - Added: 'Step over' and
'Step out' features to the debugger - Added: Process library - Added:
Shared objects (.so) creation
- Updated: Resident files now supports
quad, double, macros and prototypes - Updated: Many library commands -
Updated: OGRE engine to 1.0.7 version - Updated: The french documentation
has been greatly enhanced
- Optimized: Faster float and litteral numeric
mixing - Optimized: File library completely rewritten and now handle a
read/write cache for very fast performances - Optimized: Procedures are now
as small as possible, which should give some speed increase
- Changed:
When a numeric parameter is expected, it's not possible to pass a string anymore
- Changed: 'DefType' renamed to 'Define'
- Fixed: Internal system
functions no more trash reserved registers - Fixed: A lot of small/medium
issues which have arosen since the last version
12/18/2006
: PureBasic V4.02 (Windows) - Fixed: Macros issues - Fixed: LoadImage() with plugins 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
11/01/2006
: PureBasic V4.01 (Windows) - Changed: CreateThread() doesn't returns an OS thread handle anymore (use
ThreadID() instead)
- Fixed: Several important quad and unicode issues
- Fixed: Threadsafe mode wasn't properly working in some cases - Fixed:
Nested compiler directives in macros - Fixed: GetFileDate() and
DirectoryEntryDate() now uses local time - Fixed: OpenFileRequester() could
fail with a lot of selected files - Fixed: Many minors bugs
05/08/2006
: PureBasic V4.00
(Windows) The now famous, hyped version 4.00 of PureBasic is here. Just judge by yourself,
there is quite a lot of new and sexy looking features. And there is quite a lot
of changes as well, as we took the opportunity to fix long time standing issues
by reworking a bit the commandset, all for the best. Don't be affraid, it can
look a bit massive, but you will still feel at home as absolutely nothing
changed about the programming logic. To consult the changes done to the
libraries, click here. Enjoy !
- Added: Native unicode support
- Added: Subsystems support - Added: Unlimited length strings in both
ascii and unicode mode - Added: Thread safe commandset and strings -
Added: Character type (.c) - Added: Double type (.d) - Added: Quad type
(.q) - Added: 'XOr' and 'Not' logicals operators - Added: Fixed string
type (String${#Number}) - Added: Macro/EndMacro - single and complex mode
- Added: With/EndWith for cleaner code - Added: Assign possibility to
Static (quite important), Protected and Global: "Global a = 5" - Added: It's
now possible to create a linkedlist of pointer - Added: Support for Global,
Protected, Static and Shared arrays and linkedlist: "Global NewList
MyList.l()". NewList alone does not make the list global anymore
- Added: #PB_Compiler_File, #PB_Compiler_Line, #PB_Compiler_Version,
#PB_Compiler_Home, #PB_Compiler_Debugger,
#PB_Compiler_ThreadSafe, #PB_Compiler_Unicode - Added: CompilerError
"Message" directive - Added: @procedure()and ?Label support in Data.l
directive - Added: optional parameters for procedures, interfaces methods,
and prototypes - Added: /CONSTANT Test=Value switch to declare constants on
the compiler line - Added: Swap keyword to quickly swap 2 variables or
elements (Swap a,b). - Added: multiple 'Case' for Select/EndSelect: Case 1,
2, 6 To 20 - Added: 'Prototype' keyword to declare functions pointers easily
- Added: 'ProcedureC' keyword to declare cdecl procedure easily - Added:
Procedure parameters can now have the same name than a global variable
(automatically protected) - Added:
EnableExplicit/DisableExplicit: variables must be declared with Define, Global,
Protected, Shared or Static. - Added: Defined(Name, Type)
compiler function. Type can be #PB_Constant, #PB_Variable, #PB_Array,
#PB_LinkedList, #PB_Structure, #PB_Interface - Added: ReDim
for single and multi-dimensionned arrays - Added: Import/ImportC/EndImport
to import functions and variables from external .lib - Added: LinkedList and
Arrays can now be passed as procedure parameters - Added: /LINKER flags to
provide a command file directly to the linker - Added: PseudoTypes: p-ascii,
p-unicode and p-bstr to use with 'Prototype' and 'Interface' - Added:
Assembler and Linker errors for CLI compiler are now directly displayed -
Added: OpenGL subsystem for multimedia applications (can be combined with NT4
one) - Added: full alphachannel support for Sprite3D library (trough PNG and
TIFF) - Added: Subsystem() compiler directive to check if a subsystem is in
use - Added: exponent form for constant float: 123.5e-20 - Added: local
variables aliases are generated when using '!' raw assembly to ease their
referencing (in the form p.v_variable) - Added: 'Step over' and
'Step out' features to the debugger - Added: Process library
-
Updated: NT4 support is now done trough a subsystem (DirectX 3) - Updated:
Resident files now supports quad, double, macros and prototypes - Updated:
Many library commands - Updated: OGRE engine to 1.0.7 version - Updated:
The french documentation has been greatly enhanced - Updated: File library
supports 64 bits files
- Optimized: Smaller executable footprint: 1,5 kb
instead of 2,5 kb for the smallest one - Optimized: Faster float and
litteral numeric mixing - Optimized: File library completely rewritten and
now handle a read/write cache for very fast performances. - Optimized:
Procedures are now as small as possible, which should give some speed increase
- Changed: Console library commands can now fully redirected (ie: to
write CGI for example) - Changed: When a numeric parameter is expected, it's
not possible to pass a string anymore - Changed: Temporary purebasic.exe
name aren't random anymore, to comply with some firewalls - Changed:
'DefType' renamed to 'Define'
- Fixed: Internal system functions no more
trash reserved registers - Fixed: Mouse is automatically released in
windowed mode when the window loose focus - Fixed: KeyboardInkey() now
handle shift/alt modifiers correctly - Fixed: IsScreenActive() works
correctly for windowed mode as well - Fixed: A lot of small/medium issues
which have arosen since the last version
10/05/2005
: PureBasic V3.94
(MacOS X - first version) It's finally here ! It's the result of many months of hard work and we are very
happy to present the OS X version of PureBasic. It is very complete, proposes
native support of all PureBasic libraries and can be used either on the command
line (for command line freaks) or via the provided IDE. There is even an
optional support for GTK 1 and 2 to test the application look and feel with this
API (when porting from OS X to Linux for example). Don't hesitate to play with
it and reports any problems to http://forums.purebasic.com. Have fun! - Build in native IDE and debuggers (standalone or console) -
Native OS X support for GUI (Carbon), sprites (OpenGL), sounds and movies
(QuickTime). - Very fast PowerPC assembler code generation, which allows
excellent performances and reduced executable size - Build in OS X API
support (only for a few functions for now) - The IDE and debuggers are fully
written in PureBasic, which prove the portability concept between OS X,
Windows and Linux - Most of the PureBasic commandset is supported -
Much, much more !
09/21/2005
: PureBasic V3.94
(Linux) - Added: Brand new IDE for GTK1.2 and GTK2 ! - Added: Powerful integrated,
standalone and console debuggers ! - Added: SoundPlugin and SoudPluginOGG
libraries - Added: FillArea() support for both SDL and GTK - Added:
DrawingMode() support for SDL (except XOR) - Added: #PB_ToolBar_Toggle,
Get/SetToolBarButtonState() - Added: Same font than Windows for SDL drawing
commands - Added: DrawingImage() and Point() support for GTK - Added:
DrawingImage() for SDL, including with zoom support - Added: CallCFunction()
and CallCFunctionFast() - Added: Get/SetGadgetAttribute() support for
ScrollAreaGadget() - Added: ContainerGadget() border flags support -
Added: #PB_Event_ActivateWindow - Added:
#PB_Splitter_First/SecondMinimumSize support - Added:
#PB_Splitter_First/SecondFixed support - Added: CountTreeGadgetNodeItems()
support - Added: Optional 'Position' parameter for OpenTreeGadgetNode()
- Added: Optional 'Color' parameter for ColorRequester() - Added: PNG
transparency support for images (for Toolbar, and Gadgets) - Added: ParentID
support for OpenWindow()
- Changed: *Warning* CallFunction/Fast() isn't
CDecl anymore (CallCFunction is)
- Optimized: SDL and GTK shared
libraries are now linked only if used - Optimized: 2DDrawing is smaller and
faster - Optimized: Recoded completely the ListViewGadget() to be more
scalable
- Fixed: Font management for GTK2 has been reworked -
Fixed: CallFunction() and CallFunctionFast took only 11 arguments - Fixed:
Circle() and Ellipse() wasn't properly centered - Fixed: GrabImage() and
CopyImage() could fail with ID > 9 - Fixed: RunProgram() exited the
program if the file wasn't found - Fixed: PopupMenu() didn't return
WindowEventID() correctly - Fixed: SetGadgetState() with ListViewGadget()
didn't scroll - Fixed: Multiple call to CreateToolBar() could lead to a
crash - Fixed: TrackBarGadget() bug with GTK2 - Fixed: Image problems on
16 bits desktops - Fixed: Refresh problem with SetGadgetState() and
ButtonImageGadget() - Fixed: RemoveGadgetItem() didn't work with
ListIconGadget() - Fixed: DesktopDepth() wasn't working - Fixed:
EditorGadget() didn't supported Get/SetGadgetItemText(), CountGadgetItems(),
ClearGadgetItemList() - Fixed: Menu shortcuts didn't fired
any events - Fixed: MenuItem() issued a gtk warning when using a wrong
accelerator - Fixed: EventType() for ListViewGadget() wasn't working -
Fixed: Input() returned only one character - Fixed: ClipSprite() wasn't
working properly - Fixed: CatchSound() didn't have the optional parameter
- Fixed: ReceiveNetworkFile() wasn't working - Fixed:
NetworkServerEvent() didn't send deconnect event - Fixed: userlibraries\
directory wasn't working - Fixed: Arrows are now displayed when there is too
much Panels items - Fixed: Images were disappearing in the TreeGadget()
- Fixed: #PB_Event_SizeWindow event was lost sometimes
08/16/2005
: PureBasic V3.94
(Windows) - 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 - Fixed:
OpenScreen()/CloseScreen() could fail when using sprite3D - Fixed:
MovieLength() and MovieInfo() were incorrect with WMV format (thanks to
Traumatic ;-) - Fixed: ToolBar disable bug when mixing image and icon with
XP skins - Fixed: Possible crash when closing a window with a free'ed
statusbar or toolbar - Fixed: ImageGadget() and ButtonImageGadget() couldn't
be used with AnimateWindow_() - Fixed: ImageGadget() bug when using
DisableGadget() - Fixed: LineXY() didn't release memory correctly -
Fixed: Line() and LineXY() affected the DrawText() position - Fixed:
SortList() could crash with big already sorted lists - Fixed:
SetMenuItemState() did change the disable state - Fixed: Editable combobox
created with #PB_Any didn't handle TAB correctly - Fixed:
OpenFileRequester() fails if the default filename wasn't correct - Fixed:
Compiler bug with string concatenation and procedures - Fixed: Alignment
problem in procedure which could makes API call fails in some case
02/28/2005
: PureBasic V3.93
(Windows) - 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 algorythm - Added: Event
when a splitter is moved or resized so the children can be agenced - Added:
Realtime 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 !) - Updated: Uses of Kale's icons for the IDE -
Updated: French documentation spellchecked and reworked by trasfract
-
Optimized: Debugger mode is smaller and allow big structured variables -
Optimized: Splitted Misc library - Optimized: Faster Base64Encoder()
function - Optimized: Better code generation for string assignement and
concatenation
- Changed: OffsetOf() syntax, to fit with the SizeOf() one
(more consistent)
- Fixed: A bug in ImageGadget() with XP skin activated
and 32 bits bitmaps - Fixed: ExplorerListGadget() didn't displayed .ico and
.lnk files correctly - Fixed: ButtonImageGadget() was loosing its picture in
rare case with XP skins - Fixed: No more 'ding' (windows sound) on click in
fullscreen when ExamineMouse() wasn't used - Fixed: When using ALT+TAB with
a fullscreen application, the icon is correctly displayed - Fixed: Sprites
are now correctly restored when switching back from multitask - Fixed:
CopyDirectory() modified the input string in some case - Fixed: ListIndex()
was broken in some rare cases - Fixed: RemoveString() and CRC32FingerPrint()
couldn't be used in expressions - Fixed: SetGadgetItemText() was broken for
ListView() gadget - Fixed: ExamineDirectory() with an uninitialized string
variable - Fixed: CalendarGadget() bug when multiple calendars were
initialized on the same window - Fixed: RSet() returned wrong result in some
rare cases - Fixed: CreateFile() failed on hidden files - Fixed:
ZeroMemory_(), FillMemory_(), MoveMemory_() and CopyMemory_() wasn't recognized
- Fixed: #PB_Event_MoveWindow is now correctly recognized - Fixed:
#PB_EventType_LostFocus wasn't sent if 2 stringgadgets were side by side. -
Fixed: Gadget's tooltips wasn't correctly displayed on NT4 when the window was
always on top - Fixed: OGG Plugin wasn't working anymore and sometimes songs
were cut. It's also faster to decode. - Fixed: ResizeImage() doesn't change
the image anymore if the same dimensions are used. - Fixed: TAB in an
EditorGadget() doesn't give the focus to others gadgets anymore but insert a Tab
- Fixed: LCase() didn't handled the 'ß' german character correctly -
Fixed: SetGadgetState() wasn't working correctly for OptionGadget() - Fixed:
Debugger's code listing window dimensions are now saved like other windows -
Fixed: EditorGadget() while using AddGadgetItem() with blank strings and -1
position - Fixed: SortArray() could crash on big already sorted arrays and
is now thread safe - Fixed: ReceiveNetworkFile() didn't handle long filename
correctly - Fixed: Display issues with ButtonImageGadget() and toogle mode
(with API) - Fixed: SpriteWidth() and SpriteHeight() returned wrong values
when ClipSprite() was used - Fixed: MessageRequester() over a console window
sent the console window to the back - Fixed: SetGadgetState() for
ListIconGadget() stealed the current focus - Fixed: Base64Encoder() produced
wrong output sometimes - Fixed: Refresh problem with Frame3DGadget() and
#PB_Frame3D_Single/Double flags - Fixed: GDI resource leak in
ButtonImageGadget() and ImageGadget() - Fixed: RotateSprite3D was using a
wrong angle - Fixed: DisableMenuItem() didn't work with #PB_Any - Fixed:
GadgetWidth() didn't work correctly for SpinGadget() - Fixed: Date()
returned wrong result for the 1970,1,1,0,0,0 case - Fixed:
CallFunctionFast() accepted only 17 parameters instead of 20 - Fixed:
OpenWindowedScreen() with AutoStretch mode missed some pixels - Fixed: Some
refresh bug with PanelGadget() - Fixed: Transparent color error with 32 bits
screen and 'texture' sprites - Fixed: Some small bugs in the IDE -
Fixed: Several compiler bugs (string concatenation, interfaces in procedures)
01/25/2005
: PureBasic V3.92
(Linux) - Added: Full runtime debugger support with a
simple console debugger - Added: New library maker with conditional
directives - Added: Docmaker for Linux in sdk/ - Added: DynamicCPU, SSE,
SSE2, 3DNOW, MMX support to compiler - Added: General subsytem support for
the compiler - Added: GTK2+ support (optional trough compiler switch:
--subsytem gtk2) - Added: Desktop Library - Added:
RemoveKeyboardShortcut(), GetGadgetAttribute(), SetGadgetAttribute() -
Added: GetGadgetItemAttribute(), SetGadgetItemAttribute() - Added:
CalendarGadget(), ExplorerTreeGadget(), ExplorerComboGadget() - Added:
MDIGadget(), DateGadget() - Added: WebGadget() (A link from
/usr/lib/libgtkmozembed.so need to be done) - Added: UsePalette(),
CreatePalette(), SetPaletteColor(), GetPaletteColor() - Added:
SwapElements(), IsFile(), DeleteDirectory() - Added: OpenGadgetList(),
CountString(), ActivateWindow() - Added: ThreadPriority(), WaitThread()
- Added: CountLibraryFunctions(), ExamineLibraryFunctions(),
NextLibraryFunction() - Added: LibraryFunctionName(),
LibraryFunctionAddress() - Added: Standard icon button for toolbar -
Added: Bicubic Interpolation for ResizeImage()
- Updated:
ExplorerListGadget() now use icons
- Optimized: Linked lists,
MemoryExtension and Misc (splitted libraries)
- Fixed: SetGadgetFont()
with #PB_Default wasn't working - Fixed: Font support for OptionGadget(),
PanelGadget(), ExplorerListGadget() - Fixed: GTK/GDK and SDL structures in
the residents - Fixed: RunProgram() could fail if no parameters were
specified - Fixed: BMP decoder for sprites - Fixed: NetworkServerEvent()
was blocking in some cases - Fixed: ResizeImage() wasn't working -
Fixed: Memory leak in SaveImage() - Fixed: Events with ExplorerListGadget()
and ExplorerTreeGadget() - Fixed: SpinGadget() recoded from scratch to be
100% compatible with Windows - Fixed: Sounds commands doesn't crash anymore
if no soundcard is present - Fixed: MessageRequester() and InputRequester()
could lock X - Fixed: CountGadgetItems() didn't worked for TreeGadget()
- Fixed: FormatDate() crashed - Fixed: ReplaceString() which was broken
in some case - Fixed: EventWindowID() wasn't working with menu events -
Fixed: CatchSprite() 3th parameter wasn't optional - Fixed: OpenFile()
failed when the file wasn't existing - Fixed: ExamineDirectory() crashed
when a null string variable was used - Fixed: Linker errors with Random(),
PeekB() - Fixed: HideGadget() and FreeGadget() on some gadgets - Fixed:
WindowX() and WindowY() returned wrong values - Fixed:
Open/SaveFileRequester() when entering directly the file in the edit area
10/25/2004 - PureBasic V3.92 (Windows)
- Added: CalendarGadget() and DateGadget(), thanks to Fr34k ! - Added:
LibraryID(), SwapElements() - Added: SaveSprite() now have an optional
'Flags' parameter and can now save 8 bits sprite/screen - Added: Doubleclick
on windows background now generate an event (Thanks to Rings)
-
Optimized: ListCount() and ListIndex() are now very fast (no full list iteration
anymore).
- Changed: DeleteElement() now always goes back to the previous
element (can be outside the list if it was the first
element), to be fully compatible with ForEach. An optional flag has been added
to preserve previous behaviour. - Changed: the
application current directory isn't anymore touched by any PureBasic command to
conform to Windows rules.
- Fixed: CloseWindow() bug
when using the 'ParentWindow' OpenWindow() parameter - Fixed: IsSound()
wasn't available in NT4 mode - Fixed: AddDate() could fail depending of the
computer time zone - Fixed: Memory leak with linkedlists, arrays and local
variables when using a structure with strings - Fixed: SaveSprite() default
value for JPEG saving is now '7'. - Fixed: DisplayPalette() failed on XP
systems (1st and last color remained unchanged) - Fixed: ImageGadget() now
supports ToolTips and bitmap/icon live switching - Fixed: ImageButtonGadget()
now supports skinning and bitmap/icon live switching - Fixed:
SetGadgetItemText() for ListViewGadget() destroyed the item user data -
Fixed: CopyImage() failed on WinNT4 under some conditions - Fixed: A memory
leak in SendNetworkFile(). Now, it returns 1 on success or 0 on failure. -
Fixed: StatusBarText() didn't refresh the statusbar with the 'Borderless'
flag - Fixed: CatchImage() with #PB_any - Fixed: the PNG decoder nows
handle corrupted PNG safely - Fixed: the JPEG encoder with quality value
inferior to 3 could lead to a crash - Fixed: a little TreeGadget() bug when
checkboxes were activated - Fixed: Packer compression routine was sometimes
hanging on some files - Fixed: OnError library wasn't useable in a DLL
(thanks to Rings) - Fixed: Litteral string concatenation were wrong in some
cases - Fixed: The compiler didn't returned a non zero exit code if an error
occured - Fixed: Several compiler bugs
07/16/2004 - PureBasic V3.91 (Linux)
- Added: #PB_Any
for all libraries which supports it on Windows - Added: Compress routine for
the Packer library - Added: DisplayShadowSprite(), DisplayAlphaSprite(),
ChangeAlphaIntensity() - Added: IPString(), MakeIPAddress() - Added:
DirectoryEntryAttributes() - Added: Set/GetWindowTitle() - Added: 8bits
BMP RLE support for all images related commands - Added: IsDatabase(),
IsFile(), IsFont(), IsDirectory(), IsGadget(), IsImage(), IsLibrary(),
IsMenu(), IsModule(), IsMovie(), IsPalette(), IsSprite(),
IsSprite3D(), IsStatusBar(), IsSysTrayIcon(), IsToolBar(),
IsWindow()
- Updated: Database library
- Fixed: FileSize() which
doesn't returns the right values - Fixed: NextSelectedFile() to behave like
the Windows command - Fixed: OpenSubMenu() - Fixed: ColorRequester()
returned a wrong value - Fixed: Box() command when used with SpriteOutput()
or ScreenOutput() - Fixed: CatchSprite() was not decoding a all BMP
properly - Fixed: Linker bug when using InitCDAudio() alone - Fixed:
SpinGadget() was displaying some GTK warning - Fixed: EditorGadget() when put
in ContainerGadget() or SplitterGadget() - Fixed: Round() was missing -
Fixed: DrawingBufferPixelFormat() which returned a wrong value - Fixed:
PanelGadget(): GetGadgetState() and SetGadgetState() wasn't supported -
Fixed: GadgetX(), GadgetY(), GadgetWidth() and GadgetHeight() for some
gadgets - Fixed: ResizeWindow() - Fixed: a bug in WindowEvent() -
Fixed: #PB_EventType_Change and #PB_EventType_Focus for StringGadget() and
ComboBoxGadget() - Fixed: event for PanelGadget()
07/04/2004 - PureBasic V3.91 (Windows)
- Added Desktop library - Added IsDatabase(), IsFile(), IsFont(),
IsDirectory(), IsGadget(), IsImage(), IsLibrary(), IsMenu(),
IsModule(), IsMovie(), IsPalette(), IsSprite(), IsSprite3D(),
IsStatusBar(), IsSysTrayIcon(), IsToolBar(), IsWindow() - Manifest file (for
XP skins) is now included in the exe - Changed the LCC resource compiler and
linker to PellesC one - 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 behaviour).
-
Fixed: AddDate() bug - Fixed: MDIGadget resize when a StatusBar was added
after the MDI creation - Fixed: InputPathRequester() which could crash on
Win98 in some circumstances - Fixed: OpenWindowedScreen() position when used
within container gadgets - Fixed: Trim() in expression - Fixed: a crash
which could randomly occurs at the very end of the program when OpenHelp() was
used. - Fixed: a bug in PlayMovie() which could hide the movie on some
configuration - Fixed: Compiler bug when accessing a deeply nested structure
array.
04/12/2004 - PureBasic V3.90 (Windows)
- 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
realtime 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() - Changed: CDAudioName() doesn't need an ID anymore, as
stated in the docs.
- Splitted CDAudio, Database, File, Network,
StatusBar and Systray libraries
- Removed: UpdateStatusBar(),
UseMemory(), MemoryID()
- Fixed: French documentation is now perfectly up
to date - Fixed: NT4 (DirectX 3) support for Sprite, Palette, Sound, Keyboard
and Mouse libraries - Fixed: Bug in CreateSprite3D(), the width and height
was 1 pixel wider - Fixed: Bug with SpritePixelCollision if the same sprite
was used for both collisions. - Fixed: Bug in the debugger with win98
(application window was in background) - Fixed: OpenWindowedScreen() didn't
take the menu height in count (if any) - Fixed: IsFilename() missed some
checks - Fixed: Several expression parser bugs in the compiler - Fixed:
SizeOf() when used with extended structures - Fixed: NewPrinterPage() bug on
Win98 - Fixed: CloseScreen() when used with Sprite3D library - Fixed:
Several paths problems when using the compiler in console mode - Fixed: All
requesters now locks all the opened windows
01/01/2004 - PureBasic V3.81 (Linux)
- Happy New Year! - Added Sort
library - Added Toolbar library - Added StatusBar
library - Added Font library - Added full 3D engine support -
Added $PUREBASIC_HOME env variable to specify the install path - Added
ElapsedMilliseconds() - Added CatchSprite(), CreateSprite(), SpriteOutput()
and ScreenOutput() - Added 2DDrawing support for ScreenOutput() and
SpriteOutput() with very fast direct video buffer access - Added
SplitterGadget(), ContainerGadget(), ScrollAreaGadget(), IPAddressGadget(),
EditorGadget() - Added ScrollBarGadget(), SpinGadget(), TrackBarGadget(),
HyperLinkGadget(), ExplorerListGadget() - Added GetGadgetItemState(),
SetGadgetItemState(), GetGadgetItemText(), SetGadgetItemText() - Added BMP,
JPEG, PNG, TIFF and TGA decoder support for LoadImage() and LoadSprite() -
Added BMP, JPEG and PNG encoder for SaveImage() - Added SaveImage(),
CopyImage(), GrabImage() - Added CopySprite(), GrabSprite(), UseBuffer(),
DisplayTranslucideSprite(), DisplayRGBFilter() - Added WindowID(#Window),
WindowOutput() - Added PathRequester(), InputRequester() - Added
DisableMenuItem(), GetMenuItemState(), SetMenuItemState(), MenuHeight() -
Added CloseTreeGadgetNode(), UseGadgetList(), SetGadgetFont(),
ButtonImageGadget() - Added DayOfYear(), SelectedFontStyle() - Added XOR
and unfilled shape support for 2DDrawing - Added NextSelectedFileName() -
Added StrU(), CopyFile() - Added pattern matching to
ExamineDirectory()
- Splitted the Gadget library - Splitted the Sprite
library
- Compiler updated to 3.81 with Enumeration, Interface, modulo
and more...
This update is available for free to all registered users,
just send a mail to support@purebasic.com with your personnal infos and your
registration mail. Thanks a lot !
12/09/2003 - PureBasic V3.81 (Windows)
- 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 quicky 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
- Changed: Default quality for SaveImage() and JPEG plugin is now '7'
- Changed: InitModule() and InitPalette() doesn't need the maximum parameter anymore
- Changed: PlayMovie() behaviour has changed for rendered movies
- Fixed: A memory leak in Sprite rendered movies
- Fixed: Requesters commands could lock other applications if no window were opened
- Fixed: Some interfaces definitions was wrong in the Residents
- Fixed: String constants with multiple constants items
- Fixed: KeyboardReleased(#PB_Key_All) wasn't working
- Fixed: Compiler bug with Interface in procedure and with string returns
- Fixed: ProcedureDLL bug when a string return type was specified
- Fixed: CopySprite() didn't work with Alpha-Sprites
- Fixed: Bug in the compiler optimizer with bytes and word in some very rare cases
- Fixed: JPEG and TIFF decoder bug in rare situation
- Fixed: Small EditorGadget() and SpinGadget() bugs
10/06/2003 - PureBasic V3.80 (Windows)
- 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 optionnal 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
- Fixed: IncludePath problems with IncludeBinary
- Fixed: Couldn't use TAB inside an editable ComboBoxGadget()
- Fixed: DeleteDirectory() failed with a read-only directory in 'Force' mode
- Fixed: TGA decoder bug for Top/Down and RLE pictures
- Fixed: Possible lock in the AddPackFile() and PackMemory() routines
- Fixed: the structure size when the structure was very big (over 32000 bytes)
- Fixed: Int(): a negative value could produce wrong results
- Fixed: A LinkedList issue when it was used in and outside a Procedure
- Fixed: Line() and LineXY() was not drawing the last point
- Fixed: debugger checks: InitEngine3D()
- Fixed: A bug in TextLength() when an empty string was used
- Fixed: ProcedureReturn bug when used in 'Select String$' expression
- Fixed: Sounds were limited to 50 when debugger was activated
- Fixed: ClipSprite() wasn't supported by DisplayAlphaSprite(),
DisplayShowSprite(), DisplaySolidSprite() and DisplayTranslucideSprite()
- Fixed: A reserved keyword like 'Data' couldn't be used in a Structure
- Fixed: CreatePack(), SaveImage() and SaveSprite() didn't work with very long filename
- Fixed: Inkey() was halting the program flow
- Fixed: FileSize() returned wrong value on Win9x for root directories
- Fixed: An editor bug which caused panel tab inversion
07/14/2003 - PureBasic V3.72 (Windows)
- Changed: SelectedFilePattern() 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
- Updated: Toolbar library has been splitted and optimized
- Updated: all missing libraries quickhelps (status bar of the editor)
- Fixed: ParseDate() when no separators were used in the date
- Fixed: ResizeImage() has now a nice quality resampling
- Fixed: several gadget events issue (Splitter, Panel)
- Fixed: PNG and JPEG decoder in some rare cases
- Fixed: the name of several functions (OnError library)
- Fixed: several compiler bugs
06/07/2003 - PureBasic V3.70 (Windows)
- 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)
- Changed: ClosePanelGadget to CloseGadgetList()
- Changed: Inline assembly labels are now l_label instead of pLabel
- Splitted and optimized the Movie library
- Fixed: SpriteCollision() and SpritePixelCollision() was 1 pixel wrong
- Fixed: Result code for CopyDirectory was wrong in some case
- Fixed: StrF(): if a digit number is specifed it rounds correctly
- Fixed: Several debugger warning was missing
- Fixed: Floats and integers were badly mixed in some case
03/25/2003
- PureBasic V3.62 (Windows)
- Removed: FakeEndSelect
- Fixed: Several compiler bugs
- Fixed: Small bug in the PNG encoder and decoder
- Fixed: ProcedureReturn inside Select/EndSelect
- Fixed: Array allocation if no memory was available
- Fixed: Int(): broken since v3.60
- Fixed: Val(): now accepts any BASIC valid forms
- Fixed: AddPackFile() problem on some files
- Fixed: RunProgram() with very long paths
03/19/2003 - PureBasic V3.61 (Windows)
- Fixed: Major compiler array bugs
- Fixed: Major MD5FileFingerprint() bug
- Fixed: Syntax Highlightning for command/procedure and Alt+V shortcut
- Fixed: 2 bugs in the Visual Designer
- Fixed: Sprite loading and image plugin (JPEG, PNG) in 16 bits mode
- Fixed: XOR inline asm keyword was no more recognized
- Fixed: TGA decoder on some files
03/17/2003 - PureBasic V3.60 (Windows)
- 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 plugin
- Added: Native JPEG and PNG image/sprite encoder trough plugin
- Added: Native OGG sound decoder trough plugin
- 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
- Splitted: Font, Gadget and Window libraries, for smaller executable (Thanks to Danilo)
- Removed: CatchJPEGSPrite() and LoadJPEGSprite() (replaced by plugins)
- Enhanced the PureBasic library format (new compressed format)
- Enhanced Inline ASM now accept FPU opcode
- Enhanced the editor: DoubleClik on (X)IncludeFile open the file, Inline Help works for all keywords (If/EndIf..)
ASM syntax coloring, Inline ASM help
- Changed: SetGadgetFont() now takes 2 parameters, to allow runtime font change
- Fixed SortArray() when sorting string in case insensitive mode
- Fixed the RunProgram() command with 3 args
- Fixed ImageOutput() problem with Windows 98
- Fixed the 16bits sprite display problem with some old gfx cards which use 15 bits internally
- Fixed some bugs in the compiler
02/10/2003 - PureBasic V3.50 (Linux)
- Added: Date library
- Added: Joystick library
- Added: Library library
- Added: Packer library (decompress only)
- Added: #PB_Compiler_OS and #PB_Compiler_Date
- Added: WriteFloat(), ReadFloat(), RunProgram()
- Added: Base64Encoder(), MD5FileFingerPrint(), CRC32FingerPrint()
- Added: PeekF(), PokeF(), ProgramParameter(), OSVersion()
- Added: RSet(), LSet(), RemoveString(), Bin(), StringField()
- Updated: Compiler core to v3.50 (including Fasm)
- Updated: Resident file
- Updated: Documentation
- Fixed Loc() and Lof() if no current file are opened
01/13/2003 - PureBasic V3.51 (Windows)
- Updated French documentation for v3.51
- Fixed some bugs in the compiler and optimized a bit the output
- Fixed IPString() and IPAddressField() was in the reversed order
- Fixed and improved the InputRequester() by adding keyboard shortcut
- Fixed ReadPreferenceLong/String/Float() to accept spaced keywords
- Fixed MouseButton beep problem in full screen mode
- Fixed Date() and ParseDate() when an invalid date was specified
- Fixed the editor XP-Theme problem
- Fixed the editor ProcedureBrowser (Thanks to Dominique and Plouf)
- Fixed OpenWindow() dimension when no flag where specified
- Removed the Gosub/Return check introduced in v3.50 (for flexibility reason)
01/06/2003 - PureBasic V3.50 - (Windows) :
- Added: Engine3D Library
- Added: Camera Library
- Added: Light Library
- Added: Mesh Library
- Added: Texture Library
- Added: WriteFloat(), ReadFloat(), MouseLocate(), MD5FileFingerprint()
- Added: STDCALL and ANY flags to PureLibraries. See SDK doc for more informations
- Added: TreeGadget checkboxes support for GetGadgetItemState()
- Added: SetGadgetState() now work for ButtonImageGadget()
- Updated: CallFunction() and CallFunctionFast(): Floats can be passed directly
- Updated: SetStatusBarText() 'Appareance' parameter is now optional
- Updated: Frame3DGadget() 'Flags' parameter is now optional
- Optimized: CallFunctionFast() (2x faster)
- Optimized: Code generation: Speed and size enhancements
- Changed: The assembler (FASM), resulting of better optimized code (ie: PB Editor is 6 kb smaller)
- Changed: LSet() by RSet() and RSet() by LSet() (was reversed compared to normal Basic functions)
- Changed: OpenTreeGadgetNode() and CloseTreeGadgetNode() (now need a parameter)
- Changed: ReleaseMouse() now takes one parameter
- Fixed: the game mouse support in windowed mode (could lead to computer lock)
- Fixed: SelectElement() was wrong when passing -1..
- Fixed: TreeGadget() when used several times on the same window
- Fixed: SaveImage() with 16bits and 8bits desktops
- Fixed: RSet() with 2 arguments
- Fixed: a little bug in ParseDate()
- Fixed: AddPackFile() and AddPackMemory(): buffer overflow in some rare cases
- Fixed: OpenFileRequester() with MultiSelection mode
- Fixed: a silly bug when using many images in the gadget items (TreeGadget, ListIconGadget...)
- Fixed: Cipher library
10/09/2002
- PureBasic V3.40 (Windows) :
- Changed: Structure names aren't case sensitive anymore (could produce difficult bug to look at)
- Added: Date library
- Added: Hostname(), ExamineIPAddresses(), NextIPAddress(), IPString()
- Added: LSet(), RSet(), Bin(), RemoveString(), StringField()
- Added: ModuleVolume(), OSVersion(), WaitThread()
- Added: CopyDirectory(), DeleteDirectory(), IsFilename()
- Added: NextSelectedFileName(), InputRequester()
- Added: DrawingBuffer(), DrawingBufferPixelFormat(), DrawingBufferPitch(), FillArea()
- Added: #PB_Compiler_Date, #PB_Compiler_OS compiler buildin constants
- Splitted libs: FileSystem, StringExtension, Date
- Updated: RunProgram() now has an optional WorkingDirectory$ parameter
- Updated: SetGadgetFont(#PB_Font_Default) now go back to default font
- Updated: 2 news flags for OpenWindow()
- Updated: GetGadgetItemText() and SetGadgetItemText() now works for TreeGadget()
- Updated: ReplaceString now have a new 'StartFrom' optionnal parameter
- Updated: SetGadgetState() can be used with ImageGadget() to change the current image
- Updated: Added 'Level' flag for Pack commands to have faster compression
- Updated: DLL AttachXXX() commands must have an 'Instance' parameter
- Updated: no more '_' when creating a DLL
- Fixed: Debugger problem in the FileSystem library
- Fixed: ReadPreferenceLong() and ReadPreferenceFloat()
- Fixed: SpriteOutput() bug when using Plot()
- Fixed: CDAudioTrackLength(): last track returned always 0..
- Fixed: OpenWindowedScreen(): bad BottomOffset and RightOffset values
- Fixed: GetPathPart(), GetFilePart() and GetExtensionPart()
- Fixed: SetGadgetText() when used with a ComboBox and an empty string (clear the combobox content)
- Fixed: SetClipboardText(), now use the TEXT instead of OEM format.
- Fixed: Compiler didn't warn when a Global variable was used in Procedure parameter.
- Fixed: Compiler bugs in InlineASM : 'MOV eax, "String"' and 'MOV eax, #CONSTANT' were wrong
- Fixed: Compiler bug when using negative float constant
- Fixed: Compiler bug when using float operations with API functions
- Fixed: Compiler bug when comparing string with numeric (now forbidden)
- Fixed: Compiler bug when using INCLUDEBINARY in DataSection
- Fixed: Compiler bug when DECLARE and PROCEDURE didn't match (no errors were generated)
- Fixed: Compiler bug when DEBUG was used in procedures with strings operations
- Editor enhanced (Multi files, Procedure browser, custom tools...) and OpenSource. Thanks to Danilo !
|