aboutsummaryrefslogtreecommitdiffstats
path: root/src/hints.rs
blob: 530fdc9a4795e074492732d233685c9a26123b8a (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
use std::default::Default;

#[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 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,
        }
    }
}