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 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}