Skip to content

Commit bca4c86

Browse files
Merge pull request #143 from ColleagueRiley/dev
update changelog and version
2 parents 00c3b52 + 5f75160 commit bca4c86

File tree

2 files changed

+105
-76
lines changed

2 files changed

+105
-76
lines changed

CHANGELOG

Lines changed: 104 additions & 75 deletions
Original file line numberDiff line numberDiff line change
@@ -1,82 +1,111 @@
11
changelog
22
---------
33

4-
Current Version: RGFW 1.7-dev
4+
Release: RGFW 1.7 (May 6, 2025)
55
-----------------------------------------------
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.
80109

81110
Release: RGFW 1.6 (Feb 25, 2025)
82111
-----------------------------------------------

RGFW.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
/*
22
*
3-
* RGFW 1.7-dev
3+
* RGFW 1.7
44
*
55
* Copyright (C) 2022-25 ColleagueRiley
66
*

0 commit comments

Comments
 (0)