Repository navigation
v0.12.0
What's Changed
Full Changelog: v0.11.0...v0.12.0
Added
- New
Instance::create_windowfunction, replacingWindowManager::create_window. - New
Instance::set_event_interceptorfunction, replacingWindowManager::set_event_interceptor. - New
Instance::has_window_openedfunction, replacingWindowManager::has_window_opened. - New
Instance::poll_eventsfunction, replacingWindowManager::poll_events. - New
Instance::wait_eventsfunction, replacingWindowManager::wait_events. - New
Instance::set_error_callbackfunction for setting error callback. - New
Window::set_resizablefunction that corresponds to setting resizable attribute. - New
Window::set_floatingfunction that corresponds to setting floating attribute. - New
Window::set_auto_iconifyfunction that corresponds to setting auto-iconify attribute. - New
Window::set_focus_on_showfunction that corresponds to setting focus-on-show attribute. - New
Window::set_decoratedfunction that corresponds to setting decorated attribute. - New
Window::set_mouse_passthroughfunction that corresponds to setting decorated attribute. - New
apply_hints,apply_hints_full, andapply_hints_defaultfor setting window creation hints. - New
make_currentandget_currentfunction for context management replacingWindow::bindandWindow::unbind - New
get_proc_addressfunction for getting OpenGL functions (wrappingglfwGetProcAddressfunction). - New
extension_supportedfunction for checking OpenGL extension function existence. - New
event_namefunction that gets the name of an event. - New structs for window creation hints:
hint::Window,hint::Frambuffer,hint::Monitor,hint::Win32,hint::Cocoa,hint::Wayland,hint::X11,Hints,PartialHints,FullHints. - New enums for GLFW initialization hints:
hint::Platform,hint::AnglePlatform,hint::WaylandLibdecor,InitHints. - New enums for context hints:
gl::CreationApi,gl::Robustness,gl::ReleaseBehavior. - New window attributes:
decorated,transparent_framebuffer,mouse_passthrough. - Add GLFW constants for
GLFW_DONT_CAREandGLFW_ANY_POSITIONin its own namespace,constants. - Emscripten support using
contrib.glfw3port. - Emscripten example.
Fixed
- Missing
#ifdefblock and enumeration for error codes. - Queued tasks not flushed before destruction.
- Add missing
NoErrorenumerator that representsGLFW_NO_ERRORonErrorCodeenum.
Changed
- Headers guards now use a fixed pattern instead of using random letters.
- Change the signature for
inittovoid init(const InitHint&)to allow for setting initialization hint. - Window creation hints can be set like in
GLFW, not passed in as argument each time to window creation function, throughapply_hints*functions. - Move
glnamespace to outside ofapinamespace. - Move
helper.hppandimgui.hppheaders to top level include. - Move the window creation and events polling from
WindowManagertoInstance. - Move error classes into its new
errornamespace: . - ImGUI functionalities now lives in
imguinamespace instead ofextra. - Remove
extra::ImguiInterceptorclass and replace the functionality withimgui::ImguiHandle::process_eventsfunction, making events handling explicit for ImGUI. - Remove logger and replace it with error callback instead.
- Remove logger enumeration,
LogLevel, since it is not necessary with the removal of general logging. - Remove the constraint of having only one kind of client context API for all windows.
- Rename
Window::polltoWindow::swap_events. - Rename
Window::displaytoWindow::swap_buffers. - Rename
Window::is_vsync_enabledtoWindow::is_vsyncmaking it shorter. - Separate window's
AttributefromProperties. - User-defined literal
_fpsnow isconstexpr. ErrorCodeenumerators for glfw-cpp errors changed from0x0002000Xto0x000F000X.
Removed
WindowManagerclass as it is not necessary (refer to Issue #6).Instance::create_window_managerfunction.Instance::set_loggerfunction.Window::bindandWindow::unbindfunctions for context management.Window::toggle_vsyncandWindow::toggle_capture_mousefunction since I deemed it redundant with the existence ofWindow::is_vsyncandWindow::is_mouse_capturedfunction.Flagenum for window hints and its bitwise operators helper.