Skip to main content

closed_gl/
lib.rs

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