aboutsummaryrefslogtreecommitdiffstats
path: root/src/api/win32/mod.rs
diff options
context:
space:
mode:
Diffstat (limited to 'src/api/win32/mod.rs')
-rw-r--r--src/api/win32/mod.rs38
1 files changed, 5 insertions, 33 deletions
diff --git a/src/api/win32/mod.rs b/src/api/win32/mod.rs
index af339c5..d21f16d 100644
--- a/src/api/win32/mod.rs
+++ b/src/api/win32/mod.rs
@@ -11,6 +11,7 @@ use std::sync::{
};
use std::sync::mpsc::Receiver;
use libc;
+use ContextError;
use {CreationError, Event, MouseCursor};
use CursorState;
use GlContext;
@@ -47,9 +48,6 @@ pub struct Window {
/// Receiver for the events dispatched by the window callback.
events_receiver: Receiver<Event>,
- /// True if a `Closed` event has been received.
- is_closed: AtomicBool,
-
/// The current cursor state.
cursor_state: Arc<Mutex<CursorState>>,
}
@@ -98,12 +96,6 @@ impl Window {
}
/// See the docs in the crate root file.
- pub fn is_closed(&self) -> bool {
- use std::sync::atomic::Ordering::Relaxed;
- self.is_closed.load(Relaxed)
- }
-
- /// See the docs in the crate root file.
///
/// Calls SetWindowText on the HWND.
pub fn set_title(&self, text: &str) {
@@ -315,7 +307,7 @@ impl Window {
}
impl GlContext for Window {
- unsafe fn make_current(&self) {
+ unsafe fn make_current(&self) -> Result<(), ContextError> {
match self.context {
Context::Wgl(ref c) => c.make_current(),
Context::Egl(ref c) => c.make_current(),
@@ -336,7 +328,7 @@ impl GlContext for Window {
}
}
- fn swap_buffers(&self) {
+ fn swap_buffers(&self) -> Result<(), ContextError> {
match self.context {
Context::Wgl(ref c) => c.swap_buffers(),
Context::Egl(ref c) => c.swap_buffers(),
@@ -366,17 +358,7 @@ impl<'a> Iterator for PollEventsIterator<'a> {
type Item = Event;
fn next(&mut self) -> Option<Event> {
- use events::Event::Closed;
-
- match self.window.events_receiver.try_recv() {
- Ok(Closed) => {
- use std::sync::atomic::Ordering::Relaxed;
- self.window.is_closed.store(true, Relaxed);
- Some(Closed)
- },
- Ok(ev) => Some(ev),
- Err(_) => None
- }
+ self.window.events_receiver.try_recv().ok()
}
}
@@ -388,17 +370,7 @@ impl<'a> Iterator for WaitEventsIterator<'a> {
type Item = Event;
fn next(&mut self) -> Option<Event> {
- use events::Event::Closed;
-
- match self.window.events_receiver.recv() {
- Ok(Closed) => {
- use std::sync::atomic::Ordering::Relaxed;
- self.window.is_closed.store(true, Relaxed);
- Some(Closed)
- },
- Ok(ev) => Some(ev),
- Err(_) => None
- }
+ self.window.events_receiver.recv().ok()
}
}