Merge pull request #280 from tomaka/win32-destroy

Don't call MakeCurrent(null, null) when destroying
This commit is contained in:
tomaka 2015-02-18 09:27:21 +01:00
commit 8f8c1b71bc
3 changed files with 6 additions and 3 deletions

View file

@ -358,8 +358,9 @@ impl Drop for Window {
use std::ptr;
unsafe {
// we don't call MakeCurrent(0, 0) because we are not sure that the context
// is still the current one
android_glue::write_log("Destroying gl-init window");
ffi::egl::MakeCurrent(self.display, ptr::null(), ptr::null(), ptr::null());
ffi::egl::DestroySurface(self.display, self.surface);
ffi::egl::DestroyContext(self.display, self.context);
ffi::egl::Terminate(self.display);

View file

@ -277,8 +277,9 @@ impl<'a> Iterator for WaitEventsIterator<'a> {
impl Drop for Window {
fn drop(&mut self) {
use std::ptr;
// we don't call MakeCurrent(0, 0) because we are not sure that the context
// is still the current one
unsafe { user32::PostMessageW(self.window, winapi::WM_DESTROY, 0, 0); }
unsafe { gl::wgl::MakeCurrent(ptr::null(), ptr::null()); }
unsafe { gl::wgl::DeleteContext(self.context as *const libc::c_void); }
unsafe { user32::DestroyWindow(self.window); }
}

View file

@ -59,7 +59,8 @@ unsafe impl Sync for Window {}
impl Drop for XWindow {
fn drop(&mut self) {
unsafe {
ffi::glx::MakeCurrent(self.display, 0, ptr::null());
// we don't call MakeCurrent(0, 0) because we are not sure that the context
// is still the current one
ffi::glx::DestroyContext(self.display, self.context);
if self.is_fullscreen {