closed_gl/
lib.rs

1pub mod 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}