|
1 | 1 | changelog
|
2 | 2 | ---------
|
3 | 3 |
|
4 |
| -Current Version: RGFW 1.7-dev |
| 4 | +Release: RGFW 1.7 (May 6, 2025) |
5 | 5 | -----------------------------------------------
|
6 |
| -- fix `RGFW_window_setFlags` overwrite bugs (@DiarrheaMcgee) |
7 |
| -- add missing string override functions, casting warnings, ensure `wayland:` (@DiarrheaMcgee) |
8 |
| -- fix C++ compiling |
9 |
| -- add RGFW_windowFreeOnClose |
10 |
| -- add RGFW_windowFocusOnShow |
11 |
| -- use timeEndPeriod |
12 |
| -- make RGFW_getTime and RGFW_getTimeNS platform independent |
13 |
| -- use `CLOCK_MONOTONIC` if possible |
14 |
| -- add RGFW_setTime and run `RGFW_setTime(0)` when the window is first initialized |
15 |
| -- add `RGFW_eventQueuePush` and `RGFW_eventQueuePop` |
16 |
| -- replace WASM event queue with RGFW standard event queue |
17 |
| -- replace macOS callback events (that use `RGFW_EVENT_PASSED`) AND IOKit gamepad queue with RGFW standard event queue |
18 |
| -- replace winapi RGFW_EVENT_PASSED events (WndProc) with standardized event queue |
19 |
| -- allocate only win->event's event.droppedFiles, change droppedFiles to char** |
20 |
| -- add RGFW_windowMaximized, RGFW_windowMinimized and RGFW_windowRestored events |
21 |
| -- add RGFW_windowMinimize flag |
22 |
| -- ensure macOS focusIn/focusOut events are collected |
23 |
| -- remove `event.inFocus` |
24 |
| -- add `RGFW_window_isInFocus` and `RGFW_windowFocus` flag |
25 |
| -- windows manually convert RGB and BGR |
26 |
| -- add `RGFW_BUFFER_BGR`/ rename `RGFW_X11_DONT_CONVERT_BGR` |
27 |
| -- fix bugs with unix timers |
28 |
| -- rename `RGFW_window_checkFPS` to `RGFW_checkFPS`, |
29 |
| -- change checkFps to `u32 RGFW_window_checkFPS(double startTime, u32 frameCount, u32 fpsCap)` |
30 |
| -- ensure callback naming capitalization is consistent |
31 |
| -- rename RGFW_setMouseNotifyCallBack to RGFW_setMouseNotifyCallback |
32 |
| -- rename windowResizeCallback to windowResizedCallback and windowMoveCallback to windowMovedCallback |
33 |
| -- fix getMonitors bug (winapi) |
34 |
| -- add size_t* len to `RGFW_getMonitors` |
35 |
| -- don't freeze on RGFW_quit events anymore |
36 |
| -- change `RGFW_window_setShouldClose(RGFW_window)` to `RGFW_window_setShouldClose(RGFW_window, RGFW_BOOL)` |
37 |
| -- add `RGFW_window_swapBuffers_software` and `RGFW_window_swapBuffers_OpenGL` |
38 |
| -- add RGFW_proc |
39 |
| -- change `void* RGFW_getProcAddress(const char*)` to `RGFW_proc RGFW_getProcAddress(const char*)` |
40 |
| -- add `RGFW_window_initOpenGL` and `RGFW_window_freeOpenGL` |
41 |
| -- X11 depth defaults to 24 instead of 32 (based on RGFW_windowTransparent) (32-bit depth doesn't seem to play nice with multi-samples) |
42 |
| -- set default multi-sampling to 0, better matches GLFW, allow user to pick sampling |
43 |
| -- fix macOS warnings |
44 |
| -- fix windowRefresh (macOS) |
45 |
| -- add RGFW_ADVANCED_SMOOTH_RESIZE for X11 and winapi (allows for smoother resizing) |
46 |
| -- make it so the window can only be transparent if RGFW_windowTransparent is enabled (GLX) (depth == 24 by default), allowing only opengl settings (like multi-sampiling) |
47 |
| -- add swapInterval to wgl opengl function loading function |
48 |
| -- add RGFW_init and RGFW_deinit |
49 |
| -- fix macOS software rendering support |
50 |
| -- fix RGFW memory alignment |
51 |
| -- fix window open before flags set |
52 |
| -- simply basic example `examples/basic/basic` |
53 |
| -- add `example/multi-window/multi-window` as an example of multiple windows |
54 |
| -- fix X11 clipboard bugs |
55 |
| -- fix X11 and Cocoa waitEvent bugs |
56 |
| -- make sure icons support transparency (windows) |
57 |
| -- update macOS icons to reload every checkEvent (prevents macOS being |
58 |
| -overwritten) |
59 |
| -- add RGFW_INT_DEFINED and RGFW_BOOL_DEFINED rather than using `#define u8` and `#define RGFW_bool` |
60 |
| -- make sure `BeginPaint` and `EndPaint` is called to confirm window is validated |
61 |
| -- `RGFW_BUFFER`` init buffer unless the RGFW_windowNoInitAPI flagis added |
62 |
| -- add `RGFW_ATOF` |
63 |
| -- make default buffer size to window size if window can't resize |
64 |
| -- (msvc) don't link opengl.dll unless it's used in RGFW (`RGFW_OPENGL`) |
65 |
| -- (glx) add a fallback if glXCreateContextAttribsARB fails |
66 |
| -- fix issue for non-latin keyboards (key input not being processed) |
67 |
| -- (Windows) fix client area extending beyond titlebar (scaled displays) |
68 |
| -- fix EGL support |
69 |
| -- fix OSMesa support (image is flipped) |
70 |
| -- add premake file |
71 |
| -- test with zig |
72 |
| -- fix osmesa on wasm |
73 |
| -- fix keycodes for non-evdev X11 users |
74 |
| -- prevent crash if GLX functions fail to load, plus add more optional functions for swapInterval to use |
75 |
| -- add gears example |
76 |
| -- use direct software rendering (wasm) (no opengl) |
77 |
| -- fix GLX on Nvidia Drivers (By splitting Visual/Context creation again) |
78 |
| -- simplfy EGL context creation |
79 |
| -- fix bugs with detecting the monitor resolution (window) |
| 6 | +This release focuses on improving bug fixes and supporting more edge-cases. It also continues to work towards feature parity with GLFW. |
| 7 | +----------------------------------------------- |
| 8 | + |
| 9 | +breaking changes: |
| 10 | +- Rename `RGFW_window_checkFPS` to `RGFW_checkFPS` |
| 11 | +- Change `RGFW_window_setShouldClose(RGFW_window)` to `RGFW_window_setShouldClose(RGFW_window, RGFW_BOOL)` |
| 12 | +- Rename `RGFW_setMouseNotifyCallBack` → `RGFW_setMouseNotifyCallback` |
| 13 | +- Rename `windowResizeCallback` → `windowResizedCallback` |
| 14 | +- Rename `windowMoveCallback` → `windowMovedCallback` |
| 15 | +- Change return type of `RGFW_getProcAddress` to `RGFW_proc` |
| 16 | +- `event.inFocus` removed — use `RGFW_window_isInFocus()` instead |
| 17 | + |
| 18 | +----------------------------------------------- |
| 19 | + |
| 20 | +major changes: |
| 21 | +- **Event Queue Rewrite** |
| 22 | + - Replace internal event passing system (WASM, WinAPI, macOS) with `RGFW_eventQueuePush` / `RGFW_eventQueuePop` |
| 23 | +- **Platform-Independent Timing** |
| 24 | + - `RGFW_getTime` and `RGFW_getTimeNS` now platform-independent |
| 25 | + - Add `RGFW_setTime` (called with `0` at window init) |
| 26 | +- **New OpenGL and Buffer Management** |
| 27 | + - Add `RGFW_window_swapBuffers_software` and `RGFW_window_swapBuffers_OpenGL` |
| 28 | + - Add `RGFW_window_initOpenGL` and `RGFW_window_freeOpenGL` |
| 29 | + - Add `RGFW_proc` typedef and update `RGFW_getProcAddress` |
| 30 | + - Default multisampling is now 0 (more consistent with GLFW) |
| 31 | +- **Improved Software Rendering Support** |
| 32 | + - Better macOS and wasm software rendering |
| 33 | + - Use direct software rendering in wasm (no OpenGL required) |
| 34 | +- **Flags and Focus Enhancements** |
| 35 | + - Add `RGFW_windowFreeOnClose`, `RGFW_windowFocusOnShow` |
| 36 | + - Add `RGFW_windowFocus` and `RGFW_windowFocus` flag |
| 37 | +- **New Events** |
| 38 | + - `RGFW_windowMaximized` |
| 39 | + - `RGFW_windowMinimized` |
| 40 | + - `RGFW_windowRestored` |
| 41 | +- **Cross-Platform Improvements** |
| 42 | + - Add `RGFW_init` and `RGFW_deinit` |
| 43 | + - Make `CLOCK_MONOTONIC` default where supported |
| 44 | + - `BeginPaint`/`EndPaint` now called properly (Windows) |
| 45 | + - Fix client area scaling issues (Windows) |
| 46 | +- **Monitor and Window Enhancements** |
| 47 | + - `RGFW_getMonitors` now takes a `size_t* len` argument |
| 48 | + - Better monitor resolution detection |
| 49 | + - Fix X11 clipboard and waitEvent bugs |
| 50 | + - Add `RGFW_ADVANCED_SMOOTH_RESIZE` (WinAPI, X11) |
| 51 | + |
| 52 | +----------------------------------------------- |
| 53 | + |
| 54 | +all changes: |
| 55 | + |
| 56 | +fixes: |
| 57 | +- Fix `RGFW_window_setFlags` overwrite bugs |
| 58 | +- Fix C++ compilation issues |
| 59 | +- Fix bugs with Unix timers and macOS warnings |
| 60 | +- Fix X11 and Cocoa waitEvent behavior |
| 61 | +- Fix OpenGL fallback and function loading (GLX, EGL, WGL) |
| 62 | +- Fix software rendering support (macOS, OSMesa, wasm) |
| 63 | +- Fix key input for non-latin and non-evdev X11 users |
| 64 | +- Fix monitor resolution detection |
| 65 | +- Fix gear and multi-window examples |
| 66 | +- Fix icons and transparency (macOS, Windows) |
| 67 | +- Fix memory alignment and window flags initialization |
| 68 | +- Ensure `BeginPaint` / `EndPaint` used correctly (Windows) |
| 69 | + |
| 70 | +new features: |
| 71 | +- Add `RGFW_eventQueuePush` / `RGFW_eventQueuePop` |
| 72 | +- Add `RGFW_windowFreeOnClose` |
| 73 | +- Add `RGFW_windowFocusOnShow` |
| 74 | +- Add `RGFW_window_isInFocus` |
| 75 | +- Add `RGFW_windowFocus` flag |
| 76 | +- Add `RGFW_windowMaximized`, `RGFW_windowMinimized`, `RGFW_windowRestored` events |
| 77 | +- Add `RGFW_ATOF` macro |
| 78 | +- Add `RGFW_proc` and update function loading |
| 79 | +- Add `RGFW_window_swapBuffers_software`, `RGFW_window_swapBuffers_OpenGL` |
| 80 | +- Add `RGFW_init`, `RGFW_deinit` |
| 81 | +- Add premake build file |
| 82 | +- Add `examples/gears/gears`, `examples/multi-window/multi-window` |
| 83 | +- Add `RGFW_BUFFER_BGR`, rename `RGFW_X11_DONT_CONVERT_BGR` |
| 84 | +- Add fallback for `glXCreateContextAttribsARB` |
| 85 | +- Add swapInterval to WGL loading |
| 86 | + |
| 87 | +miscellaneous: |
| 88 | +- Only allow transparency if `RGFW_windowTransparent` is enabled |
| 89 | +- Make depth default to 24 if transparency is off |
| 90 | +- Use `timeEndPeriod` for better Windows timing |
| 91 | +- Default buffer size to window size if not resizable |
| 92 | +- Refactor default bool types (`RGFW_INT_DEFINED`, `RGFW_BOOL_DEFINED`) |
| 93 | +- (MSVC) Avoid linking `opengl32.dll` unless `RGFW_OPENGL` is used |
| 94 | +- Simplify EGL context creation |
| 95 | +- Update OpenGL context fallback for Nvidia/GLX |
| 96 | +- Fix flipped image in OSMesa (wasm) |
| 97 | + |
| 98 | + |
| 99 | +----------------------------------------------- |
| 100 | + |
| 101 | +compatibility: |
| 102 | +- Tested with Zig |
| 103 | +- Improved MSVC, macOS, wasm, X11, and EGL/OSMesa support |
| 104 | + |
| 105 | +----------------------------------------------- |
| 106 | + |
| 107 | +notes: |
| 108 | +This version continues the work from 1.6 to refine the API while introducing more robust internal systems for events, rendering, and timing. |
80 | 109 |
|
81 | 110 | Release: RGFW 1.6 (Feb 25, 2025)
|
82 | 111 | -----------------------------------------------
|
|
0 commit comments