1pub mod functions;
2pub mod constants;
3
4pub type GLenum = u32;
5pub type GLuint = u32;
6pub type GLbuffer = u32;
7pub type GLuint64 = u64;
8pub type GLsizei = i32;
9pub type GLint = i32;
10pub type GLboolean = u8;
11pub type GLsizeiptr = isize;
12pub type GLintptr = isize;
13pub type GLbitfield = u32;
14
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}