1.8.0 (pre-release) #358
ColleagueRiley
announced in
Announcements
Replies: 1 comment 1 reply
-
|
fancy |
Beta Was this translation helpful? Give feedback.
1 reply
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Uh oh!
There was an error while loading. Please reload this page.
-
This release focuses on improving RGFW’s API while making its internals more stable and less prone to bugs.
It also cleans up inconsistencies, reworks poor design choices, and removes non-essential features.
My goal with this release is to establish RGFW as more than just a GLFW alternative. RGFW is a windowing framework. This means some features found in GLFW fall outside its scope, and conversely, RGFW provides capabilities GLFW does not.
I also took inspiration from aspects of SDL’s user level API design that I found particularly well thought out.
Breaking Changes
RGFW_isPressed->RGFW_keyPressedRGFW_isKeyDownif you want to know the current state.RGFW_wasMousePressed(RGFW_isMouseReleased/RGFW_isMouseDownshould be used now)RGFW_wasPressed(RGFW_isKeyReleased/RGFW_isKeyDownshould be used now)RGFW_isClicked(RGFW_isKeyReleasedshould be used now)RGFW_sleepRGFW_checkFPSRGFW_windowFreeOnClosei32RGFW_OPENGLby default and theRGFW_windowOpenGLflag is required to create a window with OpenGLRGFW_KP_[Key]keys toRGFW_kp[Key]RGFW_MultiplytoRGFW_kpMultiplyRGFW_windowRGFW_surfacefor software rendering rather thanwin->bufferRGFW_dndtoRGFW_dropRGFW_dndInittoRGFW_dragRGFW_window_initOpenGL/RGFW_window_freeOpenGLtoRGFW_window_createContext_OpenGL/RGFW_window_deleteContext_OpenGLRGFW_getCurrent->RGFW_window_getCurrentWindow_OpenGL/RGFW_window_getCurrentWindow_EGLRGFW_window_makeCurrent->RGFW_window_makeCurrentWindow_OpenGL/RGFW_window_makeCurrentWindow_EGLRGFW_window_makeCurrent_OpenGL/RGFW_window_makeCurrent_EGL->RGFW_window_makeCurrentContext_OpenGL/RGFW_window_makeCurrentContext_EGLRGFW_window_createSwapChain_DirectXRGFW_window_createSurface_VulkanRGFW_window_eventWaittoRGFW_waitForEventRGFW_window_checkEventpolls the usesRGFW_window_pollEventsand then uses the event queue to get an eventRGFW_window_checkEventswithRGFW_window_pollEventsgl.hisn't included in RGFW, meaning you have to include it on your ownRGFW_window_mouseHold->RGFW_window_holdMouse,RGFW_window_mouseUnhold->RGFW_window_unholdMouseRGFW_getGlobalMousePoint-> RGFW_getMousePoint`RGFW_window_mouseHidden-> `RGFW_window_isMouseHiddenRGFW_windowNoInitAPIwithRGFW_windowOpenGLandRGFW_windowEGLto create an OpenGL or EGL window respectively.RGFW_windowOpenGLSoftwarein favor of an opengl context flagRGFW_getScreenSizein favor of fetching the window or primary monitorRGFW_setHint/RGFW_glHintwith single structRGFW_glHintsused increateContext` EGL/OpenGL functionsdrag.droppedFilestodrag.filesanddrag.droppedFilesCounttodrag.countRGFW_windowCocoaCHDirToResflag in favor ofRGFW_moveToMacOSResourceDirfunctionRGFW_window_initBufferPtr,RGFW_window_copyBufferandRGFW_window_freeBufferminigamepad.hto the gamepad exampleRGFW_window_isKey[X]andRGFW_windowIsMouse[X], and remove theRGFW_windowargument from the original functionsRGFW_windowUseEGLflag for choosing to use EGLMajor Changes
RGFW_windowandRGFW_infostructs to be obfuscatedRGFW_windowstruct functionalityRGFW_window_shouldCloseRGFW_createWindowPtrandRGFW_freeWindowPtrto the global API so that way behavior is properly standardizedRGFW_gfxContextTypeandRGFW_window_src.gfxTypeto identify what type of context we're using and if the context was allocated by RGFW.New Features:
RGFW_window_getEnabledEvents,RGFW_window_setDisabledEventsandRGFW_window_setDisabledEventsRGFW_enter,RGFW_printScreen,RGFW_F13-RGFW_F25,RGFW_kpEqual,RGFW_menu,RGFW_word1,RGFW_world2andRGFW_pausekeycodesRGFW_EGLcan be used along side nativeRGFW_OPENGLBug Fixes:
RGFW_setGlobalHints_OpenGLandRGFW_getGlobalHints_OpenGLRGFW_resetGlobalHints_OpenGLRGFW_MEMCPYwithRGFW_STRNCPYOther / Miscellaneous:
RGFW_getMouseScrollfunctionRGFW_getMouseVectorRGFW_NO_APIbecause it's superfluousbasic/basic, split it intostandard-mouse-icons/icons,gl11/gl11custom_alloc/custom_allocicons/icons, split intomouse-icons/iconsandwindow-icons-iconsevents/eventstoevent_queue/event_queuevoid RGFW_window_setLayer_OSX(RGFW_window* win, void* layer);void* RGFW_window_getView_OSX(RGFW_window* win);void* RGFW_window_getWindow_OSX(RGFW_window* win);void* RGFW_window_getHWND(RGFW_window* win);void* RGFW_window_getHDC(RGFW_window* win);u64 RGFW_window_getWindow_X11(RGFW_window* win);struct wl_surface* RGFW_window_getWindow_Wayland(RGFW_window* win);RGFW_EXPORTorRGFW_IMPORTis defined, default to a blank RGFWDEF if RGFWDEF is not setRGFW_window_swapBuffers_EGL)RGFW_window_getOSXViewRGFW_glContext, returnRGFW_glContext*if the user chooses to manually create a contextRGFW_glShareWithCurrentContextOpenGL hint for context sharingRGFW_WEBGPUfor Linux, MacOS, Windows AND WebRGFW_eventFlag, an enum of flags for all the RGFW eventsRGFW_window_setEnabledEvents/RGFW_window._enabledEventsto set what events you wantRGFW_eventFlagto check if an internal event should be processing it before processing itRGFW_window_pollEvents, cycles through ALL of the events WITHOUT STOPPINGRGFW_windowClosePtrfor close the window without attempting to free the function pointer (rather than RGFW attempting to keep track of who owns the RGFW_window data)RGFW_surface_freePtrRGFW_window_createContextPtr_OpenGL/RGFW_window_deleteContextPtr_OpenGLfor creating a context with a pointerRGFW_eglContextRGFW_formatARGB8andRGFW_formatRGBA8RGFW_image_copya public functionRGFW_glHintsCountas a proper limitRGFW_initfunctions and give the user more OPTIONAL control of global varsXRRConfigCurrentRateto get the refresh rate rather than using mathRGFW_setGLHint`/`RGFW_getGLHint->RGFW_setHint_OpenGLRGFW_getHint_OpenGLRGFW_window_src.ctxunion,RGFW_gfxContextofRGFW_glContext*andRGFW_eglContextso that way it can point to either context (but not both)RGFW_createWindowPlatformandRGFW_window_closePlatformcreateContextto the global createWindow functionWhat's Changed (auto gen)
-D UNICODEis tested, (windows) by @ColleagueRiley in make sure-D UNICODEis tested, (windows) #295New Contributors
Full Changelog: 1.70...1.8.0-pre
This discussion was created from the release 1.8.0 (pre-release).
Beta Was this translation helpful? Give feedback.
All reactions