- Added
PossiblyCurrentContext::make_not_current_in_place(&self)
for whenSend
capability ofNotCurrentContext
is not required. - Added
NotCurrentContext::make_current_surfaceless(self)
andPossiblyCurrentContext::make_current_surfaceless(&self)
in theCgl
implementation to allow the use of surfaceless contexts on MacOS. - Added
NotCurrentContext::make_current_surfaceless(self)
andPossiblyCurrentContext::make_current_surfaceless(&self)
in theGlx
implementation to allow the use of surfaceless contexts with GLX. - Added
NotCurrentContext::make_current_surfaceless(self)
andPossiblyCurrentContext::make_current_surfaceless(&self)
in theWgl
implementation to allow the use of surfaceless contexts with WGL.
- Fixed EGL's
Device::query_devices()
being too strict about required extensions. - Fixed crash in
EglGetProcAddress
on Win32-x86 platform due to wrong calling convention. - Fixed EGL's
Display::device()
always returning an error due to invalid pointer-argument passing inside. - Fixed EGL's
Display::new()
making anEGLDisplay::Khr
when the EGL version for the display is 1.4 or lower. - Added
Device::drm_device_node_path()
andDevice::drm_render_device_node_path()
getters to EGL viaEGL_EXT_device_drm
. - Added support for
DrmDisplayHandle
in EGL'sDisplay::with_device()
usingEGL_DRM_MASTER_FD_EXT
fromEGL_EXT_device_drm
. - Properly set up OpenGL-specific stuff on the
NSView
, instead of relying on Winit to do it. - Added
OpenHarmony
platform support with EGL. - Added support for
Display::create_pbuffer_surface()
in WGL viaWGL_ARB_pbuffer
.
- Breaking: updated
raw-window-handle
dependency to0.6
. - Bump MSRV from
1.65
to1.70
. - Bump
windows-sys
from0.48.0
to0.52.0
. - Expose
Egl
andGlx
raw API functions onEgl
andGlx
displays. - Add
GLUTIN_WGL_OPENGL_DLL
environment variable to change OpenGL provider name with WGL.
- Change
Surface
to beSend
. This makes it consistent with the context, so now they are bothSend
but notSync
.
- Fixed EGL not setting context version with EGL versions before 1.5 and missing context ext.
- Fixed
CGLContextObj
having an invalid encoding on newer macOS versions.
- Bump MSRV from
1.60
to1.65
. - Breaking:
bitflags
which is used as a part of public API was updated to2.0
. - Breaking:
.*SurfaceAccessor
traits got removed; their methods now on respective.*GlContext
traits instead. - Breaking:
GlContext
trait is now a part of theprelude
. - Automatically cleanup the
EGLDisplay
whenEGL_KHR_display_reference
is present. - Add
api::egl::Display::terminate
to terminate the display when glutin doesn't manage it. - Fixed handling of
Robustness::NoError
anddebug
attribute when building context. Robustness::NoError
not being properly enabled with GLX/WGL.
- Add
X11VisualInfo::visual_id
to getXID
of the visual. - Added support for EGL on Windows using Angle. This assumes libEGL.dll/libGLESv2.dll present.
- EGL's
Display::create_pbuffer_surface()
no longer sets the invalidRENDER_BUFFER
attribute.
- Fixed lock on SwapBuffers with some GLX drivers.
- Fixed EGL's
Surface::is_single_buffered
being inversed.
- Fixed EGL dereferencing raw window handles on everything but X11 in legacy
Window
andPixmap
surface creation. - On GLX, fixed startup failure when passing default
Flush
withKHR_context_flush_control
. - Behavior change: the
Config
'sApi
now has platform specific default instead of being unspecified.
- Altered specification for
objc2
crate to pull patch update.
- Fixed handling of
*_base
extensions with EGL.
- Fixed EGL/GLX display initialization when the provided raw-window-handle has an unknown visual_id.
- Fixed EGL always returning
None
forx11_visual()
. - Fixed GLX error handling assuming that
XError
's will arrive like they should on X11. - Fixed EGL window/pixmap creation when using legacy path.
- Fixed EGL display initialization with XcbDisplayHandle.
- Fixed EGL/GLX
Surface::width
returning the height instead of the width. - On GLX, fixed handling of errors not directly requested by glutin.
- Added
GlConfig::hardware_accelerated
to check if the config is hardware accelerated. - Added
GlContext::context_api
to get theContextApi
used by the context. - Added missing implementations of
Surface::{width,height}
for WGL/CGL - Fixed crash when accessing context from the off-thread on macOS.
- Clarified that
make_{,not}_current()
,GlSurface::width()
,GlSurface::height()
, andGlSurface::resize()
could block on macOS.
- Fixed wrong amount of rects committed in
Surface::swap_buffers_with_damage
with EGL. - Added missing
Eq
,PartialEq
, andHash
impls forsurface::Rect
.
- Fixed robust context creation with EGL.
- Moved to stable version of
wayland-sys
. - Allow offline renderers with CGL.
- Fixed an error when compiling the EGL backend with only one of Wayland and X11 enabled.
- Added new
glutin-winit
crate to help bootstrapping newglutin
withwinit
. - Added
EGLDevice
wrappers for EGL. - Added EGL dependent api to make a context current without a surface.
- Added
supports_transparency
onGlConfig
. - On GLX, try all extensions when setting vsync.
- On WGL, fixed that
Surface::swap_buffers
takes longer with every call caused by frequent calls of the win32 functionHDC GetDC(HWND hWnd)
.
- This version of
glutin
has been rewritten from the ground and no longer depends onwinit
, theraw-window-handle
is now used instead of it. - The Api is now built around
Display
,Surface
,Config
, andSurface
. For more info see crate documentation and examples. - Breaking: Bump MSRV from
1.57
to1.60
. - The ios support was removed for the lack of maintenance for now. In case there's a need for it, contributions are welcome.
- The context creation is no longer limited to winit's supported platforms.
- The underlying Api providers are publicly exposed now, so glutin could be used with just e.g.
EGL
. - Fixed soundness issues with
Surface
MT safety, since beforeEGLSurface
could be sent to a different thread, which is not safe. - Fallback to
Surface::swap_buffers
whenSurface::swap_buffers_with_damage
is not supported onEGL
.
- Fix build failures when building from crates.io
- Fix crash when creating OpenGLES context without explicit version.
- Add
buffer_age
method onWindowedContext
. - Return an
Err
instead of panicking when surfaceless GLX context creation fails on Linux. - Fix compilation on Android:
- Switch from
StaticStructGenerator
toStructGenerator
to dynamically load symbols. - Replace
android_glue
dependency withraw-window-handle
, and remove broken lifecycle event handling. - Glutin can now be used on Android, however, the application must ensure it only creates the
Context
following a winitEvent::Resumed
event, and destroys theContext
in response to aEvent::Suspended
event.
- Switch from
- Updated winit dependency to 0.27.0. See winit's CHANGELOG for more info.
- On Windows,
build_raw_context
now usesisize
forhwnd
to follow winit change.
- On Windows, fixed a panic for headless contexts because of active drag-and-drop (OleInitialize failed! Result was:
RPC_E_CHANGED_MODE
) - Updated winit dependency to 0.26.0. See winit's CHANGELOG for more info.
- Remove emscripten support leftover.
- Updated winit dependency to 0.25.0. See winit's CHANGELOG for more info.
- Updated winit dependency to 0.24.0. See winit's CHANGELOG for more info.
- X11 and Wayland are now optional features (enabled by default)
- Updated winit dependency to 0.23.0. See winit's CHANGELOG for more info.
- Avoid loading libEGL.dll from PATH on Windows.
- On X11, Fixed unnecessary instantiation of GLX/EGL
- Updated winit dependency to 0.22.0. See winit's CHANGELOG for more info.
- Updated winit dependency to 0.21.0. See winit's CHANGELOG for more info.
- Removed broken CI for the
armv7-apple-ios
target.
- Fixed incorrectly documented default value for
ContextBuilder::with_srgb
- Updated winit dependency to 0.20.0. See winit's CHANGELOG for more info.
- Fixed dependencies so wrong winit version is not used.
- On X11, got rid of mistaken
XRenderFindVisualFormat
call so that glutin doesn't ignore configs that lack aXRenderPictFormat
. - On iOS, fixed not linking against OpenGLES.framework.
- On X11, fixed VSync not being disabled when requested.
- Fixed build issue.
- Update winit dependency to 0.20.0-alpha4. See winit's CHANGELOG for more info.
- Added an xcode example for building for iOS.
- Made using sRGB the default.
- MacOSX's raw_handle trait method now returns the CGLContext object.
- Switched from needing a
EventLoop
to aEventLoopWindowTarget
- Fixed attribute handling for sRGB in WGL.
- Fixed VSync being always enabled on EGL.
- Backport: We now load
libGL.so
instead oflibGLX.so
.
- Update winit dependency to 0.20.0-alpha1. See winit's CHANGELOG for more info.
- Bumped dependencies, fixed docs.
- Bumped dependencies.
- Breaking: Removed
DisplayLost
variant toContextError
. - Breaking: Renamed
NotCurrentContext
toNotCurrent
. - Breaking: Renamed
PossiblyCurrentContext
toPossiblyCurrent
. - Added
treat_as_current
function.
- Breaking: Replaced
CreationErrorPair
enum variant withCreationErrors
. - Added
Clone
toContextBuilder
. - Added headless example.
- Removed internal code relating to libcaca.
- Implemented
Debug
on all public facing types. - Dropping contexts on platforms using egl and/or glx no longer resets the current context, if the context dropped wasn't the current context.
- Added context sharing support to MacOS.
- Breaking: Removed
ContextTrait
. - Breaking: Renamed
OsMesaContextExt
toHeadlessContextExt
. Added functions for using egl-surfaceless. - Breaking: Changed
WindowedContext
andRawContext
into typedefs ofContextWrapper
. - Breaking: Removed
new_windowed
andnew_headless
fromWindowedContext
andContext
, respectively. - Breaking: Added two new types,
NotCurrentContext
andPossiblyCurrentContext
, whichRawContext
,WindowedContext
,ContextBuilder
andContext
are now generic over. - Added
{make,treat_as}_not_current
function to{Raw,Windowed,}Context
. - We now load
libGL.so
instead oflibGLX.so
. - Breaking: Added
DisplayLost
variant toContextError
. - Fixed bug where we drop the hidden window belonging to a headless context on on X11 and/or Wayland before the actual context.
- "Fixed" bug where we will close
EGLDisplay
s while they are still in use by others. Angry and/or salty rant can be found inglutin/src/api/egl/mod.rs
, you can't miss it. - Breaking:
WindowedContext
s now deref toContext
, notWindow
. Please use.window()
to access the window.
- We no longer load
libEGL.so
andlibGL.so
multiple times. - Fixes
Context::is_current
incorrectly returningfalse
. - Made
ContextBuilder
'spf_reqs
public. - Breaking: Renamed
GlContext{,Ext}
toContextTrait{,Ext}
. - Breaking: Renamed
GlWindow
toWindowedContext
. - Implemented context sharing support for Windows and Linux.
- Added support for contexts made from raw parts for Windows and Linux.
- Breaking: Removed
shareable_with_windowed_contexts
. Now you must build OsMesa contexts via a separate extension. - Added
ContextBuilder::build_{windowed,headless}
methods. - Breaking: Renamed
Context::new
toContext::new_headless
.new_headless
now accepts dimensions for the off-screen surface backing it. - Breaking: Renamed
GlWindow::new
toWindowedContext::new_windowed
. - On X11 and Wayland, you can now use shared contexts, however, one limitation of the Wayland backend is that all shared contexts must use the same events pool as each other.
- Added context sharing support to windows.
- Improved docs.
- Refactored code to be more consistent/cleaner. Ran rustfmt on everything.
- Added NetBSD support.
- Breaking: Removed
new_shared
function fromContext
andGlWindow
, in favor ofnew
. - Added
build
method toContextBuilder
. - Added
get_egl_display
method toGlContextExt
trait and its implementation for platforms. - Removed minimum supported Rust version guarantee.
NoBackendAvailable
is nowSync
, as a resultCreationError
is alsoSync
.- Update winit dependency to 0.19.0. See winit's CHANGELOG for more info.
- Breaking: The entire API for headless contexts has been removed. Please instead use
Context::new()
when trying to make a context without a visible window. Also removedheadless
feature. - Breaking: Types implementing the
GlContext
trait must now be sized. - Breaking: Added new
CreationErrorPair
enum variant to enumCreationError
. - Remove requirement for EGL dev packages on Wayland.
- Update winit dependency to 0.18.0. See winit's CHANGELOG for more info.
- cocoa and core-graphics updates.
- Breaking: Added
OsError
variant toContextError
. - Improved glX error reporting.
- The iOS backend no longer fails to compile... again (added iOS testing on CI to prevent further issues).
- Update winit dependency to 0.17.0. See winit's CHANGELOG for more info.
- Fix regression that prevented automatic graphics switching in macOS (#980).
- Add
ContextBuilder::with_double_buffer
function. - Add
ContextBuilder::with_hardware_acceleration
function. - Work around a presumed Android emulator bug
that would cause context creation to return
CreationError::OpenGlVersionNotSupported
in some configurations (#1036). - Update winit dependency to 0.16.0. See winit's CHANGELOG for more info.
- The iOS backend no longer fails to compile.
- Update winit dependency to 0.14.0. See winit's CHANGELOG for more info.
- Update winit dependency to 0.15.0. See winit's CHANGELOG for more info.
- Update winit dependency to 0.13.0. See winit's CHANGELOG for more info.
- Update winit dependency to 0.12.0. See winit's CHANGELOG for more info.
- Update Wayland backend to not use deprecated
get_inner_size_points
method.
- Fix Android activity life cycle.
- Update winit dependency to 0.11.2. See winit's CHANGELOG for more info.
- Update winit dependency to 0.11.1. See winit's CHANGELOG for more info.
- Don't use yanked version of winit.