From 9ac12dbe9246c5e8b31f92bcc7066b8d4826a32b Mon Sep 17 00:00:00 2001 From: David Rose Date: Sat, 11 Jan 2003 18:13:22 +0000 Subject: [PATCH] clean up shutdown --- panda/src/wgldisplay/wglGraphicsWindow.cxx | 15 +++++++++++++++ panda/src/wgldisplay/wglGraphicsWindow.h | 1 + 2 files changed, 16 insertions(+) diff --git a/panda/src/wgldisplay/wglGraphicsWindow.cxx b/panda/src/wgldisplay/wglGraphicsWindow.cxx index c5d15ea84c..10ff2d1792 100644 --- a/panda/src/wgldisplay/wglGraphicsWindow.cxx +++ b/panda/src/wgldisplay/wglGraphicsWindow.cxx @@ -86,8 +86,10 @@ make_gsg() { void wglGraphicsWindow:: release_gsg() { if (_gsg != (GraphicsStateGuardian *)NULL) { + wglMakeCurrent(_hdc, _context); GraphicsWindow::release_gsg(); wglDeleteContext(_context); + wglMakeCurrent(_hdc, NULL); _context = (HGLRC)0; } } @@ -180,6 +182,19 @@ open_window() { return true; } +//////////////////////////////////////////////////////////////////// +// Function: wglGraphicsWindow::close_window +// Access: Protected, Virtual +// Description: Closes the window right now. Called from the window +// thread. +//////////////////////////////////////////////////////////////////// +void wglGraphicsWindow:: +close_window() { + ReleaseDC(_mwindow, _hdc); + _hdc = (HDC)0; + WinGraphicsWindow::close_window(); +} + //////////////////////////////////////////////////////////////////// // Function: wglGraphicsWindow::choose_pfnum // Access: Private diff --git a/panda/src/wgldisplay/wglGraphicsWindow.h b/panda/src/wgldisplay/wglGraphicsWindow.h index e57a0dea97..6288b15c16 100644 --- a/panda/src/wgldisplay/wglGraphicsWindow.h +++ b/panda/src/wgldisplay/wglGraphicsWindow.h @@ -40,6 +40,7 @@ public: protected: virtual bool open_window(); + virtual void close_window(); private: int choose_pfnum() const;