closed_gl/
lib.rs

1mod functions;
2
3pub type GLenum = u32;
4pub type GLuint = u32;
5pub type GLsizei = i32;
6pub type GLint = i32;
7
8pub enum GLerror {
9    GlNoError,
10    GlInvalidEnum,
11    GlInvalidValue,
12    GlInvalidOperation,
13    GlInvalidFramebufferOperation,
14    GlOutOfMemory,
15    GlStackUnderflow,
16    GlStackOverflow,
17    GlUnknown(GLenum),
18
19    // custom errors
20    CreateShaderFail,
21    CreateProgramFail
22}
23
24impl GLerror {
25    pub fn from_gl_error(code: GLenum) -> Self {
26        match code {
27            gl::NO_ERROR => GLerror::GlNoError,
28            gl::INVALID_ENUM => GLerror::GlInvalidEnum,
29            gl::INVALID_VALUE => GLerror::GlInvalidValue,
30            gl::INVALID_OPERATION => GLerror::GlInvalidOperation,
31            gl::INVALID_FRAMEBUFFER_OPERATION => GLerror::GlInvalidFramebufferOperation,
32            gl::OUT_OF_MEMORY => GLerror::GlOutOfMemory,
33            gl::STACK_UNDERFLOW => GLerror::GlStackUnderflow,
34            gl::STACK_OVERFLOW => GLerror::GlStackOverflow,
35            other => GLerror::GlUnknown(other),
36        }
37    }
38}
39
40#[cfg(test)]
41mod tests {
42    
43
44    #[test]
45    fn testing() {
46
47        assert_eq!(result, 4);
48    }
49}