mirror of
https://github.com/italicsjenga/winit-sonoma-fix.git
synced 2024-12-24 14:21:31 +11:00
Merge pull request #371 from tomaka/get-pixel-format
Adds get_pixel_format() to Window
This commit is contained in:
commit
d5138d2708
|
@ -15,6 +15,7 @@ use Api;
|
||||||
use BuilderAttribs;
|
use BuilderAttribs;
|
||||||
use CursorState;
|
use CursorState;
|
||||||
use GlRequest;
|
use GlRequest;
|
||||||
|
use PixelFormat;
|
||||||
use native_monitor::NativeMonitorId;
|
use native_monitor::NativeMonitorId;
|
||||||
|
|
||||||
pub struct Window {
|
pub struct Window {
|
||||||
|
@ -353,6 +354,10 @@ impl Window {
|
||||||
::Api::OpenGlEs
|
::Api::OpenGlEs
|
||||||
}
|
}
|
||||||
|
|
||||||
|
pub fn get_pixel_format(&self) -> PixelFormat {
|
||||||
|
unimplemented!();
|
||||||
|
}
|
||||||
|
|
||||||
pub fn set_window_resize_callback(&mut self, _: Option<fn(u32, u32)>) {
|
pub fn set_window_resize_callback(&mut self, _: Option<fn(u32, u32)>) {
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -8,6 +8,7 @@ use libc;
|
||||||
use Api;
|
use Api;
|
||||||
use BuilderAttribs;
|
use BuilderAttribs;
|
||||||
use GlRequest;
|
use GlRequest;
|
||||||
|
use PixelFormat;
|
||||||
use native_monitor::NativeMonitorId;
|
use native_monitor::NativeMonitorId;
|
||||||
|
|
||||||
use objc::runtime::{Class, Object, Sel, BOOL, YES, NO};
|
use objc::runtime::{Class, Object, Sel, BOOL, YES, NO};
|
||||||
|
@ -616,6 +617,10 @@ impl Window {
|
||||||
::Api::OpenGl
|
::Api::OpenGl
|
||||||
}
|
}
|
||||||
|
|
||||||
|
pub fn get_pixel_format(&self) -> PixelFormat {
|
||||||
|
unimplemented!();
|
||||||
|
}
|
||||||
|
|
||||||
pub fn set_window_resize_callback(&mut self, callback: Option<fn(u32, u32)>) {
|
pub fn set_window_resize_callback(&mut self, callback: Option<fn(u32, u32)>) {
|
||||||
self.delegate.state.resize_handler = callback;
|
self.delegate.state.resize_handler = callback;
|
||||||
}
|
}
|
||||||
|
|
|
@ -203,16 +203,17 @@ unsafe fn init(title: Vec<u16>, builder: BuilderAttribs<'static>,
|
||||||
};
|
};
|
||||||
|
|
||||||
// calling SetPixelFormat
|
// calling SetPixelFormat
|
||||||
{
|
let pixel_format = {
|
||||||
let formats = if extra_functions.GetPixelFormatAttribivARB.is_loaded() {
|
let formats = if extra_functions.GetPixelFormatAttribivARB.is_loaded() {
|
||||||
enumerate_arb_pixel_formats(&extra_functions, &real_window)
|
enumerate_arb_pixel_formats(&extra_functions, &real_window)
|
||||||
} else {
|
} else {
|
||||||
enumerate_native_pixel_formats(&real_window)
|
enumerate_native_pixel_formats(&real_window)
|
||||||
};
|
};
|
||||||
|
|
||||||
let (id, _) = try!(builder.choose_pixel_format(formats.into_iter().map(|(a, b)| (b, a))));
|
let (id, f) = try!(builder.choose_pixel_format(formats.into_iter().map(|(a, b)| (b, a))));
|
||||||
try!(set_pixel_format(&real_window, id));
|
try!(set_pixel_format(&real_window, id));
|
||||||
}
|
f
|
||||||
|
};
|
||||||
|
|
||||||
// creating the OpenGL context
|
// creating the OpenGL context
|
||||||
let context = try!(create_context(Some((&extra_functions, &builder)), &real_window,
|
let context = try!(create_context(Some((&extra_functions, &builder)), &real_window,
|
||||||
|
@ -263,6 +264,7 @@ unsafe fn init(title: Vec<u16>, builder: BuilderAttribs<'static>,
|
||||||
events_receiver: events_receiver,
|
events_receiver: events_receiver,
|
||||||
is_closed: AtomicBool::new(false),
|
is_closed: AtomicBool::new(false),
|
||||||
cursor_state: cursor_state,
|
cursor_state: cursor_state,
|
||||||
|
pixel_format: pixel_format,
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -13,6 +13,7 @@ use libc;
|
||||||
use {CreationError, Event, MouseCursor};
|
use {CreationError, Event, MouseCursor};
|
||||||
use CursorState;
|
use CursorState;
|
||||||
|
|
||||||
|
use PixelFormat;
|
||||||
use BuilderAttribs;
|
use BuilderAttribs;
|
||||||
|
|
||||||
pub use self::headless::HeadlessContext;
|
pub use self::headless::HeadlessContext;
|
||||||
|
@ -53,6 +54,9 @@ pub struct Window {
|
||||||
|
|
||||||
/// The current cursor state.
|
/// The current cursor state.
|
||||||
cursor_state: Arc<Mutex<CursorState>>,
|
cursor_state: Arc<Mutex<CursorState>>,
|
||||||
|
|
||||||
|
/// The pixel format that has been used to create this window.
|
||||||
|
pixel_format: PixelFormat,
|
||||||
}
|
}
|
||||||
|
|
||||||
unsafe impl Send for Window {}
|
unsafe impl Send for Window {}
|
||||||
|
@ -258,6 +262,10 @@ impl Window {
|
||||||
::Api::OpenGl
|
::Api::OpenGl
|
||||||
}
|
}
|
||||||
|
|
||||||
|
pub fn get_pixel_format(&self) -> PixelFormat {
|
||||||
|
self.pixel_format.clone()
|
||||||
|
}
|
||||||
|
|
||||||
pub fn set_window_resize_callback(&mut self, _: Option<fn(u32, u32)>) {
|
pub fn set_window_resize_callback(&mut self, _: Option<fn(u32, u32)>) {
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -8,6 +8,7 @@ use CursorState;
|
||||||
use Event;
|
use Event;
|
||||||
use GlRequest;
|
use GlRequest;
|
||||||
use MouseCursor;
|
use MouseCursor;
|
||||||
|
use PixelFormat;
|
||||||
use native_monitor::NativeMonitorId;
|
use native_monitor::NativeMonitorId;
|
||||||
|
|
||||||
use gl_common;
|
use gl_common;
|
||||||
|
@ -388,6 +389,11 @@ impl Window {
|
||||||
self.window.get_api()
|
self.window.get_api()
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/// Returns the pixel format of this window.
|
||||||
|
pub fn get_pixel_format(&self) -> PixelFormat {
|
||||||
|
self.window.get_pixel_format()
|
||||||
|
}
|
||||||
|
|
||||||
/// Create a window proxy for this window, that can be freely
|
/// Create a window proxy for this window, that can be freely
|
||||||
/// passed to different threads.
|
/// passed to different threads.
|
||||||
#[inline]
|
#[inline]
|
||||||
|
|
|
@ -12,6 +12,7 @@ use std::sync::{Arc, Mutex, Once, ONCE_INIT};
|
||||||
use Api;
|
use Api;
|
||||||
use CursorState;
|
use CursorState;
|
||||||
use GlRequest;
|
use GlRequest;
|
||||||
|
use PixelFormat;
|
||||||
|
|
||||||
pub use self::monitor::{MonitorID, get_available_monitors, get_primary_monitor};
|
pub use self::monitor::{MonitorID, get_available_monitors, get_primary_monitor};
|
||||||
|
|
||||||
|
@ -732,6 +733,10 @@ impl Window {
|
||||||
::Api::OpenGl
|
::Api::OpenGl
|
||||||
}
|
}
|
||||||
|
|
||||||
|
pub fn get_pixel_format(&self) -> PixelFormat {
|
||||||
|
unimplemented!();
|
||||||
|
}
|
||||||
|
|
||||||
pub fn set_window_resize_callback(&mut self, _: Option<fn(u32, u32)>) {
|
pub fn set_window_resize_callback(&mut self, _: Option<fn(u32, u32)>) {
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue