Releases: QB64-Phoenix-Edition/QB64pe
Releases · QB64-Phoenix-Edition/QB64pe
v3.7.0
Enhancements
- #315, #319, #327 - Implemented a new "Code Export" feature reachable via the "File" menu. - @RhoSigma-QB64
- Useful for authors of tutorials, documentations or Wiki pages, they can now easily export the currently edited code and insert it in their work. The code is highlighted according to the currently chosen color scheme in the IDE and the keywords are linked to its respective Wiki pages.
- Export is possible as Hypertext (.html), Rich Text (.rtf) or Wiki encoded text (.txt).
- #188, #330, #335 - Added commands for rendering Unicode text - @a740g
_UPrintString
acts like regular_PrintString
but accepts Unicode strings._UFontHeight
gives the global glyph height of a given font, which may be larger than the_FontHeight
._UPrintString
uses this height._UPrintWidth
acts like_PrintWidth
and returns the width in pixels a Unicode string will take up when printed using_UPrintString
._ULineSpacing
will give the proper vertical spacing (font height + extra pixels) to vertically separate multiple lines of text.
- #188, #335, #330 - Improve and optimize Font internals - @a740g
- Font loading should be significantly faster due to the addition of a lazy Glyph cache.
- #232, #330, #335 - Added a new
_LoadFont()
argument which allows loading a font from memory - @a740g - #316, #317, #318, #320, #322, #325 - Many internal libraries were updated or replaced - @a740g
zlib
was replaced withminiz
stb_image.h
was updated to v2.28miniaudio
was updated to v0.11.13tinysoundfont
was updated to the latest version (2/18/23)
- #325 - Added support for using SoundFont3 (SF3) format files with
$MinisoundFont
- @a740g - #329 - Added RAD v1 file support - @a740g
- #124, #321, #326 - Improved Declare Library header file resolution - @a740g, @mkilgore
- If
Declare Library
is in an'$include
d file, then it can also find header files that are relative to the location of the'$include
d file rather than the original source file.
- If
Bug Fixes
- #319 - Fixed the "Update All Pages" process in the IDE. - @RhoSigma-QB64
- Creation/renaming/deletion of new/old Wiki pages shouldn't break the update process, but instead reflect the made changes in the local help too.
- The problem was originally discussed here: https://qb64phoenix.com/forum/showthread.php?tid=1521
- #333, #334 - Fixed the Keyboard
_Devices
entry on Windows - @mkilgoreAlt+key
combination will now be correctly reported.- Pressing left and right shift at the same time will now be correctly reported.
- #332 - Fixed potential segfault in
PLAY()
- @a740gBEEP
was also improved so that multipleBEEP
s in a row will have a short pause separating them.
Full Changelog: v3.6.0...v3.7.0
v3.6.0
Enhancements
- #286 - Added support for opening image from memory using
_LOADIMAGE()
- @a740g, @mkilgore_LOADIMAGE()
has a new optionalrequirements$
argument, similar to the string argument to_SNDOPEN()
:_LOADIMAGE(fileName$[, [mode&][, requirements$]])
.
- Providing
"memory"
in the requirements will cause_LOADIMAGE()
to treat the contents of thefileName$
argument as an image file itself, rather than attempting to open a file.
Bug Fixes
- #287, #296 - Fixed building QB64-PE on MacOS High Sierra - @mkilgore
- #288 - Add missing keywords to syntax highlighter - @SteveMcNeill
- #273, #295 - Timers will no longer take twice as long at program start - @mkilgore
- #293, #295 - A stopped timer will now correctly run when turned on if it expired while stopped - @mkilgore
- #294, #295 - On Windows, timers will now correctly trigger during SLEEP in
$Console
programs - @mkilgore - #298, #300, #302, #308 - Several improvements to the IDE Wiki - @RhoSigma-QB64
- Improved handling of HTML Entity and UTF-8 characters used in the Wiki.
- Fully implemented local links. The help page navigation in the IDE is now practically the same as in the real Wiki.
- #301, #307 - Fix using DECLARE LIBRARY with a stripped .so file - @mkilgore
- #297, #306 - The -o flag will no longer strip the extension from the executable name - @mkilgore
- The extension
.exe
will still be removed when compiling on non-Windows platforms.
- The extension
Full Changelog: v3.5.0...v3.6.0
v3.5.0
Enhancements
- #46, #98, #250, #265, #272 - Added support for opening HTTP and HTTPS requests using
_OPENCLIENT()
. - @mkilgore- Feature is current unstable and requires
$Unstable:Http
to use. - On Linux and Mac OS this functionality requires
libcurl
to be installed. - HTTP(s) connections are opened using
_OPENCLIENT()
and generally work the same as the existing TCP/IP streams. - See the Wiki page on Downloading Files to see a complete overview of this functionality.
- Feature is current unstable and requires
- #28, #279 - Added
_SNDNEW(frames&, channels&, bits&)
function which can be used to make new sound buffers of a predetermined number of frames. - @a740g- The created sound buffer can be accessed using
_MEMSOUND()
to write sound data to it, and then played like any other sound.
- The created sound buffer can be accessed using
- #232, #279 - Sounds can now be opened from memory using
_SNDOPEN(sound$, "memory")
. - @a740g- The string provided to
_SNDOPEN()
in this case is not a filename, but instead contains the actual sound data that should be loaded into the new sound buffer.
- The string provided to
- #280, #279 - Added support for playing Amiga AHX and HVL audio files. - @a740g
- They are played using
_SNDOPEN()
like any other audio file.
- They are played using
- #261 - The IDE's new open file dialog will now remember the previous directory it was open to. - @SteveMcNeill
- #264 - The error line color in the IDE is now configurable. - @SteveMcNeill
Bug Fixes
- #252, #276 - Wiki will now be downloaded using the new HTTP support,
curl
is no longer needed. - @RhoSigma-QB64 - #254 -
_FONT
settings that are invalid now produce an error rather than segfaulting. - @SteveMcNeill - #256, #258, #266, #267 - Fixed the command line compilation output when using some commands like
$NoPrefix
. - @mkilgore - #256, #257 - When compiling from the command line, the exe is now always located relative to the provided source file path. - @mkilgore
- #234, #260 - Programs now wait for GLUT to be properly initialized before starting. - @mkilgore
- #66, #270 - GLUT commands are now always executed on the correct thread. This fixes issues where some programs would randomly crash. - @mkilgore
- #262, #233 -
$IF
checks involvingVERSION
now correctly compare all segments of the version individually. - @SteveMcNeill- Previously
VERSION
was compared as a string, which would have caused incorrect comparisons when the version numbers get larger.
- Previously
- #275 - Reduced the number of times
nm
is invoked to resolve Declare Library functions. - @flukiluke - #166, #279 -
_SNDRAW
is now fully implemented for the miniaudio audio backend - @a740g- The OpenAL audio backend is likely to be removed in the next version of QB64-PE.
- #166, #279 -
PLAY(n)
now returns the number of sound samples left to play fromPLAY
,SOUND
, orBEEP
. - @a740g - #167, #279 - The timing of
SOUND
andPLAY
calls were improved so that they wait for the sound to finish playing. - @a740g - #186, #279 -
SOUND
andPLAY
now generate mono sound, reducing memory usage. - @a740g - #217, #279 - The
N
command forPLAY
now plays the note in the correct octave. - @a740g, @mkilgore - #282, #284 - The long start-up time for QB64-PE programs has been fixed, there should no longer be a delay before the QB64-PE code starts running - @mkilgore
- #281, #284 - A use-after-free bug was fixed in some of the buffer logic for the HTTP code - @mkilgore
Full Changelog: v3.4.1...v3.5.0
v3.4.1
Bug Fixes
- #236, #237, #238, #239, #245 - Several improvements made to the dialog functionality introduced in 3.4.0 - @mkilgore
- Single and double quotes can now be used in any string provided to a dialog.
- On Windows, the popup from _NotifyPopup will now be associated with the program using the command.
- On Windows, _InputBox$ no longer spawns a separate process to display the dialog.
- Previously some strings passed to the dialog functions were not properly escaped before being passed to the underlying dialog provider, those issues have been fixed.
- #241 - Fixed bug in PAINT when a border color is not provided - @TheJoyfulProgrammer, @mkilgore
- The broken syntax was
PAINT (x, y), tileString$
, where the optional border color was left off. - That would fill as though you provided zero as the border color, now it correctly fills any pixels matching the initial color at
(x, y)
.
- The broken syntax was
- #247 - The 'Open' dialog in the IDE now makes use of the system provided Open dialog - @SteveMcNeill, @mkilgore
- This can be toggled off if necessary via the 'GUI Dialogs' option in the
Options
menu. - The old dialogs may be removed in a future version.
- This can be toggled off if necessary via the 'GUI Dialogs' option in the
- #243 - The MinGW version on Windows was updated, it now provides gcc 12.2.0 - @a740g
Full Changelog: v3.4.0...v3.4.1
v3.4.0
Enhancements
- #189, #216, #225, #227, #230 - Added several cross-platform dialogs - @a740g, @mkilgore
- The commands make a best-effort of determining the way to show the dialog based on what is provided by the system.
- The following new commands were added:
- _NOTIFYPOPUP [title$][, message$][, iconType$]
- _MESSAGEBOX [title$][, message$][, iconType$]
- result& = _MESSAGEBOX(title$, message$, dialogType$, iconType$[, defaultButton&])
- result$ = _INPUTBOX$(title$, message$[, defaultInput$])
- folder$ = _SELECTFOLDERDIALOG$(title$[, defaultPath$])
- color32bpp~& = _COLORCHOOSERDIALOG(title$[, defaultRGB~&])
- result& = _OPENFILEDIALOG$(title$, defaultPathAndFile$, filterPatterns$, singleFilterDescription$[, allowMultipleSelects&])
- result& = _SAVEFILEDIALOG$(title$, defaultPathAndFile$, filterPatterns$, singleFilterDescription$)
Bug Fixes
Full Changelog: v3.3.0...v3.4.0
v3.3.0
Enhancements
- #201 - Source files provided on the command line can now be relative to the current working directory - @DualBrain, @mkilgore
- The executable name specified by -o is always relative to the location of the source file.
- The previous behavior of specifying the source file relative to the location of QB64-PE still works.
- #145, #204 - QB64-PE can now generate a ".license.txt" file beside your program - @mkilgore
- This file contains the text of all the software licenses that apply to your program based on the dependencies you are using. You can then distribute the license file alongside your program to meet the requirements of those licenses.
- The file can be generated either via a toggle option in the
Run
menu, or via the new-f:GenerateLicenseFile=[true/false]
command line option.
- #185, #208 -
_SNDPLAYCOPY
now takesx
,y
, andz
parameters to change the balance of the copied sound - @a740g
Bug Fixes
- #177, #197 - Using undeclared variables in a
CONST
expression now properly gives an error - @mkilgore - #194, #195, #197 -
_BLUE
and_RGBA
now work inCONST
expressions - @mkilgore - #202 - Fixed
String * n
andBit * n
types when used withStatic
arrays - @DualBrain, @mkilgore - #199, #203 - Fixed the command line options listed in manpage - @mkilgore
Full Changelog: v3.2.1...v3.3.0
v3.2.1
Bug Fixes
- #172, #182 - Fixed using audio commands in a
$CONSOLE:ONLY
program - @mkilgore - #178, #182 - Fixed using device commands in a
$CONSOLE:ONLY
program - @mkilgore - #175, #180 - Fix incorrect dithering applied to images loaded as a 256 color image - @a740g
- This applies to images with less than or exactly 256 colors.
- Images with more than 256 colors will still have dithering applied if they are loaded as a 256 color image.
- #184 - Fixed setup_lnx.sh to always install
make
- @AtomicSlaughter
Full Changelog: v3.2.0...v3.2.1
v3.2.0
Enhancements
- #21, #164 - The
$Unstable
command was added - @mkilgore - #115, #164 - Added MIDI support to
_SNDOPEN
- @a740g, @mkilgore- MIDI support is current unstable, and hidden behind
$Unstable:Midi
. - MIDI is enabled by using the
$MidiSoundFont
metacommand to specify a soundfont for playing MIDI files. - The selected soundfont is compiled into your program, so the file does not need to be present at runtime.
- MIDI support is current unstable, and hidden behind
- #162, #164 - Compiler settings can be supplied on the command line - @mkilgore
- QB64-PE now accepts the
-f
flag for supplying settings accessible in theCompiler Settings
menu. - Settings are only applied for that run of QB64-PE (they do not modify the preserved IDE settings)
- Using
-f
with no flag will print all of the available options.
- QB64-PE now accepts the
Bug Fixes
- #161 - Fixed _MOUSEMOVE when window is resized - @mkilgore
- #165 - Fixed compiling source files that have a
'
in their name - @mkilgore - #169, #171 - Fixed
_SNDOPEN
to return zero on failures. - @a740g - #170, #171 - Fixed
PLAY "MB"
so that it also causesSOUND
commands to play in the background - @a740g
Full Changelog: v3.1.0...v3.2.0
v3.1.0
Enhancements
- #143 - New audio backend using miniaudio - @a740g
- Miniaudio and a few other libraries have replaced the OpenAL-based audio backend that was previously used.
- This fixes licensing concerns with using OpenAL, which was LGPL licensed. See the updated licensing information page for more detailed information.
- Newly supported formats include
flac
,mod
,s3m
,xm
,it
,rad
. - There are some known incompatibilities with
_MEMSOUND
due to the new backend. See the wiki page for more information. - If incompatibilities are encountered, the old OpenAL backend can still be used via a setting in the
Compiler Settings
dialog. Any incompatibilities or bugs should be reported, the OpenAL backend will be removed in a future release.
- #141 - Image backend enhancements - @a740g
- Support for
pcx
images was added. _LOADIMAGE
was improved to support loading 256-color images. See the wiki page for more information.- The number of libraries was simplified a bit.
- Support for
- #153 - Add _ROR & _ROL support. - @a740g
Bug Fixes
- #144 - Use
-no-pie
on Linux, fixes running compiled executables from file browsers - @mkilgore - #154 - Remove DPI Awareness on Windows, QB64 executables will properly scale based on the OS setting - @mkilgore
Full Changelog: v3.0.0...v3.1.0
v3.0.0
This is the first major release of QB64 Phoenix Edition. v3.0.0 was chosen to avoid overlapping with the existing QB64 v1 and v2 versions. QB64 Phoenix Edition v3.0.0 is compatible with QB64 v2.0.2.
Enhancements
- #122, #125, #130, #132 - Several improvements to the Help display in the IDE - @RhoSigma-QB64
- #136 - Several naming and visual changes to reflect the "Phoenix Edition" branding - @RhoSigma-QB64
- The executable is now named
qb64pe
on Linux and Mac andqb64pe.exe
on Windows.
- The executable is now named
- #139 - The files written to ./internal/temp are now buffered in memory and only written out when a build is requested - @RhoSigma-QB64
Bug fixes
- #127 - Fixed linking of static libraries on Windows - @mkilgore
- #126 - The math evaluator in the IDE will no longer crash when dividing by zero - @mkilgore
- #131 -
setup_lnx.sh
was fixed to properly callmake clean
- @GeorgeMcGinn
Full Changelog: v0.8.2...v3.0.0