Releases: ColleagueRiley/RGFW
RGFW v1.5.0
RGFW 1.5.0 is released after 4 months of development and includes a lot of major changes!
This may not include all of the changes or breaking changes made.
This is because 1.5 is the first release, and I took releases and release notes more seriously.
In later commits, the CHANGELOG will be updated while the release is being worked on.
1.5 also has many breaking changes. These are essential changes for API consistency and to better expose functionality. Later releases will aim to have fewer breaking commits. I wanted to get as many of these changes out of the way as possible while the project is still relatively new.
major changes:
- gamepad rewrite
- keycode rewrite
- macOS gamepad support
- RGFW_allocator, RGFW_createWindowPtr, and better memory control
- monitor refinement
- A lot of bug fixes
breaking changes:
- gamepad rewrite changes JS/Joystick -> gamepad
- clipboard is now freed by RGFW
- rewrite keymods/ledState -> modState (Control, Shift, numlock, capslock, alt)
- RGFW_window_setMouse -> RGFW_loadMouse, RGFW_window_setMouse, RGFW_freeMouse
- make enum naming more consistent, make window args enums
RGFW_Key -> RGFW_key
RGFW_Control -> RGFW_control (for example)
RGFW_(ARG) -> RGFW_window(Arg)
RGFW_CENTER -> RGFW_windowCenter
- RGFW_window_setMouse -> RGFW_loadMouse, RGFW_window_setMouse, RGFW_freeMouse
all changes:
new features:
- RGFW_setClassName, allows program class (grouping) to be set
- start of MacOS EGL support
- add support for loading an icon from a .rc file
- add RGFW_allocator for runtime changes to the allocator
- add RGFW_readClipboardPtr to load clipboard data into a buffer, or send a NULL buffer to get the size
- RGFW_createWindowPtr to create a window without allocating a window struct
- add gamepad support for macOS (IOKit)
- Add XDL.h to this repo for optionally dynamically linking X11
- auto free clipboard (no need to free it yourself)
- RGFW_window_setBufferPtr to set win->buffer to your own pointer
- RGFW_window_setMouse -> RGFW_loadMouse, RGFW_window_setMouse, RGFW_freeMouse
- Wayland fallback
- fallback to X functions when Wayland function isn't yet supported (eg. clipboard)
- Fallback to X when Wayland compositor is not found (eg. when using an X11 server)
- Allow the user to switch to wayland/X during runtime (you have to compile with Wayland support (RGFW_WAYLAND))
bugs:
- Fix GLX runtime errors for certain GPUs
- Fix C++ support, mostly fixes warnings and errors
- fix ctypes, drop support for non stdint types (MSVC)
- fix RGFW_window_resize lock (when RGFW_noResize is enabled)
- fix xDND crash
- Fix multi-window bugs (macOS)
- fix event misses when the unknown event is sent
- fix scale/center order
- make it easier to add custom backends
- allow for less linking to be required (eg. -lopengl32 -lwimm, optional
RGFW_USE_XDL
)
reviews/rewrites - Wayland rewrite
- Integrate Wayland with X code, allow for callbacks
- monitor review
- SetProcessDPIAware, effective DPI
- fix scaling units and math
- refine monitor support
- fix RGFW_window_getMonitor
- fix hiDPI support (monitor.pixelRatio)
- fix transparency support (GLX) (WGL)
- Windows XP Support, don't call unsupport functions, testing
- remove weird tabbing synax (eg. extra tabbing in a #ifdef for functions)
- gamepad (joystick) review/rewrite
- rename joystick to gamepad
- fix emscripten gamepad, update gamepad api (whichAxis)
- Add L3 + L2 (gamepad)
- add connect, and disconnect events (RGFW_gamepadConnected / RGFW_gamepadDisconnected)
- change enums (RGFW_GP_A -> RGFW_gamepadA)
- support for gamepad names, types, refined axis checking, change mapping
- fix gamepad bugs and make gamepad support more stable overall
- get gamepad count
- RGFW_isPressedGamepad, RGFW_isHeldGamepad, RGFW_isReleasedGamepad, RGFW_wasPressedGamepad, RGFW_getGamepadAxis, RGFW_getGamepadName, RGFW_getGamepadCount, RGFW_getGamepadType
- keycode rewrite/review
- rewrite keycodes to use physical keycodes (event.key) and add keyChar for scancodes
- Ensure all functions use RGFWDEF
- Remove the convert key from the char function -> event.keyChar (keycode)
- refine RGFW raw input support
- dependency limiting
- get rid of CoreVideo dependency
- remove internal dependency on math.h
- allow for the use of the standard library to be limited
- make enum naming more consistent, make window args enums,
- rewrite keymods/ledState -> modState (Control, Shift, numlock, capslock, alt)
- Update UTF8 support
- Update Wayland support
new examples: - DOOM example on the website
- MicroUI example
- metal example
- fix Vulkan example
- add OSMesa example
- Add minimal linking
- Add custom backend example
- Add gamepad example
- Add no standard library example
What's Changed (pull requests)
- Fix casting warnings when building in MSVC by @JeffM2501 in #43
- fixed cross initialization with a jump to label in cpp by @DarekParodia in #44
- a more polished README.md by @TheYahton in #52
- unnecessary
static
keywords by @TheYahton in #54 - keycode rewrite by @ColleagueRiley in #53
- update RGFW gamepad support by @ColleagueRiley in #60
- Update simple example to add scancode by @zenitsuy in #61
- Gamepad update 2 by @ColleagueRiley in #62
- Update Wayland backend by @ColleagueRiley in #64
New Contributors
- @meshula made their first contribution in #38
- @TheLastVoyager made their first contribution in #42
- @JeffM2501 made their first contribution in #43
- @DarekParodia made their first contribution in #44
- @TheYahton made their first contribution in #52
- @ColleagueRiley made their first contribution in #53
- @zenitsuy made their first contribution in #61
Full Changelog: 1.06...1.50
RGFW 1.06
Quality of life update:
- more opengl options (core vs comp, disable double buffer, samples defaults to 0)
- deleted unneeded functions
- Experimental Wayland support
- re-done Makefile, with
- More MSVC support
- c++ support
- nuklear example
- Metal example
(Bug fixes)
- raw input data shouldn't be flipped
What's Changed
- fix: window not at the front on macOS by @omnisci3nce in #29
- fix(msvc): cpp cast error, .rh header redefinition warnings by @lesleyrs in #30
- fix: gl33 example by @lesleyrs in #31
- fix(windows): don't show dummy window on start by @lesleyrs in #32
New Contributors
- @omnisci3nce made their first contribution in #29
- @lesleyrs made their first contribution in #30
Full Changelog: 1.05...1.06
RGFW 1.05
- fixes a lot of bugs
- general quality of life/code updates
- HTML5 backend
- raw mouse input
Full Changelog: 1.00...1.05
RGFW 1.0
RGFW 1.0 is Finally out, with plenty of bug fixes and features being properly implemented on all OSes.
Plus a couple more features added for sake of completeness. Some reworking of functions and other cleaning of the RGFW codebase.
All of RGFW's basic features should be mostly finished now, the next release will focus on adding things not included in base RGFW 1.0.
What's Changed
Full Changelog: 0.99...1.00
RGFW binaries
What's Changed
- fixed issue with move and resize event on X11 by @Code-Nycticebus in #17
- Update RGFW.h by @robrohan in #18 (fixes bug with drag and drop data (X11))
- Keycodes are abstracted into an enum and a lookup table
- new events are added
New Contributors
- @Code-Nycticebus made their first contribution in #17
- @robrohan made their first contribution in #18
Full Changelog: 0.98...0.99
RGFW binaries
Full Changelog: 0.91...0.98
RGFW binaries
Full Changelog: 0.90...0.91
RGFW binaries
0.90 update build system