115 lines
2.8 KiB
Rust
115 lines
2.8 KiB
Rust
|
|
#![feature(unsafe_destructor)]
|
||
|
|
|
||
|
|
extern crate libc;
|
||
|
|
|
||
|
|
#[cfg(windows)]
|
||
|
|
pub use win32::Window;
|
||
|
|
|
||
|
|
#[cfg(windows)]
|
||
|
|
mod win32;
|
||
|
|
|
||
|
|
#[deriving(Clone,Show)]
|
||
|
|
pub enum Event {
|
||
|
|
/// The position of the window has changed.
|
||
|
|
PositionChanged(uint, uint),
|
||
|
|
|
||
|
|
/// The size of the window has changed.
|
||
|
|
SizeChanged(uint, uint),
|
||
|
|
|
||
|
|
/// The window has been closed.
|
||
|
|
Closed,
|
||
|
|
|
||
|
|
/// The cursor has moved on the window.
|
||
|
|
///
|
||
|
|
/// The parameter are the (x,y) coords in pixels relative to the top-left corner of the window.
|
||
|
|
CursorPositionChanged(uint, uint),
|
||
|
|
|
||
|
|
/// The window gained or lost focus.
|
||
|
|
///
|
||
|
|
/// The parameter is true if the window has gained focus, and false if it has lost focus.
|
||
|
|
Focused(bool),
|
||
|
|
|
||
|
|
/// The window has been turned into an icon or restored.
|
||
|
|
///
|
||
|
|
/// The parameter is true if the window has been iconified, and false if it has been restored.
|
||
|
|
Iconified(bool),
|
||
|
|
|
||
|
|
/// The system asked that the content of this window must be redrawn.
|
||
|
|
NeedRefresh,
|
||
|
|
|
||
|
|
/// The size of the framebuffer of the window has changed.
|
||
|
|
FramebufferSizeChanged(uint, uint),
|
||
|
|
}
|
||
|
|
|
||
|
|
#[deriving(Clone,Show)]
|
||
|
|
pub struct Hints {
|
||
|
|
pub resizable: bool,
|
||
|
|
pub visible: bool,
|
||
|
|
pub decorated: bool,
|
||
|
|
pub red_bits: u8,
|
||
|
|
pub green_bits: u8,
|
||
|
|
pub blue_bits: u8,
|
||
|
|
pub alpha_bits: u8,
|
||
|
|
pub depth_bits: u8,
|
||
|
|
pub stencil_bits: u8,
|
||
|
|
pub accum_red_bits: u8,
|
||
|
|
pub accum_green_bits: u8,
|
||
|
|
pub accum_blue_bits: u8,
|
||
|
|
pub accum_alpha_bits: u8,
|
||
|
|
pub aux_buffers: u8,
|
||
|
|
pub samples: u8,
|
||
|
|
pub refresh_rate: u8,
|
||
|
|
pub stereo: bool,
|
||
|
|
pub srgb_capable: bool,
|
||
|
|
pub client_api: ClientAPI,
|
||
|
|
pub context_version: (u8, u8),
|
||
|
|
//pub robustness: ,
|
||
|
|
pub opengl_forward_compat: bool,
|
||
|
|
pub opengl_debug_context: bool,
|
||
|
|
pub opengl_profile: Profile,
|
||
|
|
}
|
||
|
|
|
||
|
|
#[deriving(Clone, Show)]
|
||
|
|
pub enum ClientAPI {
|
||
|
|
OpenGL,
|
||
|
|
OpenGLES,
|
||
|
|
}
|
||
|
|
|
||
|
|
#[deriving(Clone, Show)]
|
||
|
|
pub enum Profile {
|
||
|
|
AnyProfile,
|
||
|
|
CompatProfile,
|
||
|
|
CoreProfile,
|
||
|
|
}
|
||
|
|
|
||
|
|
impl std::default::Default for Hints {
|
||
|
|
fn default() -> Hints {
|
||
|
|
Hints {
|
||
|
|
resizable: true,
|
||
|
|
visible: true,
|
||
|
|
decorated: true,
|
||
|
|
red_bits: 8,
|
||
|
|
green_bits: 8,
|
||
|
|
blue_bits: 8,
|
||
|
|
alpha_bits: 8,
|
||
|
|
depth_bits: 24,
|
||
|
|
stencil_bits: 8,
|
||
|
|
accum_red_bits: 0,
|
||
|
|
accum_green_bits: 0,
|
||
|
|
accum_blue_bits: 0,
|
||
|
|
accum_alpha_bits: 0,
|
||
|
|
aux_buffers: 0,
|
||
|
|
samples: 0,
|
||
|
|
refresh_rate: 0,
|
||
|
|
stereo: false,
|
||
|
|
srgb_capable: false,
|
||
|
|
client_api: OpenGL,
|
||
|
|
context_version: (1, 0),
|
||
|
|
//robustness: ,
|
||
|
|
opengl_forward_compat: false,
|
||
|
|
opengl_debug_context: false,
|
||
|
|
opengl_profile: AnyProfile,
|
||
|
|
}
|
||
|
|
}
|
||
|
|
}
|