Software-update: QB64 Phoenix Edition 4.7.0

QB64 Phoenix Edition logo (Über)QB64 is een moderne versie van de programmeertaal Basic. De code wordt gecompileerd naar machinetaal en is daardoor snel en er kan worden gelinkt naar externe C- en C++-programmeerbibliotheken. Het is nagenoeg volledig compatibel met QBasic 4.5 en biedt ondersteuning voor extensies, zoals OpenGL. Nadat Fellippe Heitor drie jaar geleden plotseling bij QB64 vertrok, werd het erg stil rondom dit project. Een nieuwe groep ontwikkelaars heeft met QB64 Phoenix Edition echter een doorstart gemaakt. Net als QB64 is QB64 Phoenix Edition opensource, beschikbaar voor Windows, Linux en macOS, en heeft het een goed supportforum. Versie 4.7.0 is uitgekomen en de changelog daarvan kan hieronder worden gevonden.

v4.7.0-GLFW

This release replaces the legacy FreeGLUT/GLEW backend with GLFW and GLAD. We encourage users to test window management, input handling, fullscreen behavior, high-DPI displays, OpenGL applications, and multi-monitor configurations and report any regressions.

Enhancements
  • #701 - Replace freeglut with GLFW 3.5.1 and GLAD - a major architectural modernization of the graphics, windowing, timing, and input subsystems.
    • New _DESKTOPREFRESHRATE function - returns the vertical refresh rate (Hz) of the monitor currently displaying the application window.
    • New _WINDOWSIZELIMIT statement - restricts the user-resizable dimensions of the window to minimum and/or maximum width/height bounds.
    • New _MOUSECURSOR statement - sets a custom hardware mouse cursor from a QB64-PE image handle.
    • New _UPTIME function - returns application uptime as a high-resolution, monotonic double-precision floating-point number in seconds.
    • New _MOUSEDISABLED function - returns _TRUE if the mouse cursor is in disabled/raw motion capture mode (_MOUSEHIDE _DISABLE).
    • _WINDOWHANDLE extended with optional handleType& argument to query native OS/graphics handles (HWND/HDC/HGLRC on Windows, NSWindow*/NSView*/NSOpenGLContext* on macOS, Window/HDC/Display*/GLXContext on Linux X11).
    • _MOUSEHIDE now accepts optional _DISABLE parameter - locks the mouse cursor in raw input mode for unlimited delta motion (FPS-style camera controls and 3D navigation) without cursor hitting display edges. Works on Windows, Linux and macOS.
    • _MOUSEWHEEL extended with optional axis& parameter to support horizontal and multi-axis scrolling.
    • Sub-pixel precision for mouse and joystick coordinates - _MOUSEX, _MOUSEY, _MOUSEMOVEMENTX, _MOUSEMOVEMENTY, _MOUSEMOVE, _AXIS, _WHEEL now return DOUBLE for sub-pixel precision and better high-DPI display support.
    • Window focus and mouse enter/leave handling to fix input state on focus loss.
    • File drag and drop handling now works on Windows, Linux and macOS.
  • #760 - Add #line to generated C++ source for debugging - enables GDB/Lldb to map back to original QB64 source lines, with a new Compile Settings option for relative or absolute debug paths.
  • #767, #771, #772 - Add 32-bit cross-compilation support - use -f:TargetBits=[32|64] on the command line to change the target bitness. The bootstrap compiler is now built as 64-bit only; 32-bit QB64-PE versions are produced via cross-compilation. qbs* array elements stored in pointer-sized slots on each platform.
  • #776 - New _ARRAYCOPY statement for copying elements between arrays.
    • Supports one-dimensional and multi-dimensional arrays.
    • Four copy forms: whole-to-whole, range-to-indexed, range-to-whole (preserving source indices), and whole-to-indexed.
    • Supports byte-aligned numeric types, fixed-length strings (STRING * n), and variable-length STRING arrays.
    • Bounds validated before writing; overlapping copies handled safely; ownership-aware snapshot/deep-copy logic for variable-length STRING arrays.
  • #761 - New QB64PE_NOPROMPT environment variable to suppress interactive error prompts on unhandled runtime errors.
    • QB64PE_NOPROMPT=y or QB64PE_NOPROMPT=Continue - outputs the error text and proceeds without waiting for user input.
  • #778 - Significant performance improvements to QB64-PE C++ source generation (-z).
    • Generation times measured on QB64-PE itself and the DRAW project:

      Program Before After
      QB64-PE 41s 8.9s
      DRAW 5m 59s 43s
Library Updates
  • Update to GLFW 3.5.1 - replaces the legacy FreeGLUT and GLEW libraries.
  • Update to GLAD - modern OpenGL loader replacing GLEW.
Bug Fixes
  • #756 - Fix console PRINT with embedded null characters (issue #723).
  • #758 - Fix whole-array assignment (=) for all array types, including nested arrays. Previously only the zero index was copied.
  • #759 - Fix _CAPLOCK, _NUMLOCK and _SCROLLLOCK not working on all platforms.
  • #762 - Fix invisible _SCREENMOVE and _WINDOWSIZELIMIT on SCREEN 0 - hidden-window positioning added; _WINDOWSIZELIMIT now correctly interprets limits in cells for SCREEN 0. Closes #271.
  • #765 - Various keyboard and mouse input fixes
  • #769 - Fix compilation issue with UDT arrays and unary NOT exponent precedence (issue #23).
  • #766 - Repair comma-separated array parameter declarations in sub/function arguments (e.g., Sub bar (baz( ,) As Long)).

QB64 Phoenix Edition screenshot

Versienummer 4.7.0
Releasestatus Final
Besturingssystemen Linux, macOS, Windows 8, Windows 10, Windows 11
Website QB64 Phoenix Edition
Download https://github.com/QB64-Phoenix-Edition/QB64pe/releases/tag/v4.7.0
Licentietype GPL

Door Bart van Klaveren

Downloads en Best Buy Guide

27-09-2026 • 14:00

1

Bron: QB64 Phoenix Edition

Reacties (1)

Sorteer op:

Weergave:

Let op:

Please note that this is a preview release and that changes may still occur before we do the final release of this version. This replaces GLUT and GLEW with GLFW and GLAD, changing the entire backend of what we use with QB64. This is a HUGE change, and it's quite possible that we missed something or failed to account for some niche behavior with a command/usage, therefore this is a preview release for everyone to test and offer feedback on with anything they may find inconsistent or different than previous versions.

Het is dus nog geen echte final.

bron

[Reactie gewijzigd door zaadstra op 27 september 2026 14:33]


Om te kunnen reageren moet je ingelogd zijn