140 lines
5 KiB
Rust
140 lines
5 KiB
Rust
pub use uapi::c;
|
|
|
|
pub type GLbitfield = c::c_uint;
|
|
pub type GLboolean = c::c_uchar;
|
|
pub type GLchar = c::c_char;
|
|
pub type GLenum = c::c_uint;
|
|
pub type GLfloat = f32;
|
|
pub type GLint = c::c_int;
|
|
pub type GLsizei = c::c_int;
|
|
#[allow(dead_code)]
|
|
pub type GLubyte = u8;
|
|
pub type GLuint = c::c_uint;
|
|
|
|
egl_transparent!(GLeglImageOES);
|
|
|
|
pub const GL_BGRA_EXT: GLint = 0x80E1;
|
|
pub const GL_CLAMP_TO_EDGE: GLint = 0x812F;
|
|
pub const GL_COLOR_ATTACHMENT0: GLenum = 0x8CE0;
|
|
pub const GL_COLOR_BUFFER_BIT: GLbitfield = 0x00004000;
|
|
pub const GL_COMPILE_STATUS: GLenum = 0x8B81;
|
|
pub const GL_EXTENSIONS: GLenum = 0x1F03;
|
|
pub const GL_FALSE: GLboolean = 0;
|
|
pub const GL_FLOAT: GLenum = 0x1406;
|
|
pub const GL_FRAGMENT_SHADER: GLenum = 0x8B30;
|
|
pub const GL_FRAMEBUFFER_COMPLETE: GLenum = 0x8CD5;
|
|
pub const GL_FRAMEBUFFER: GLenum = 0x8D40;
|
|
pub const GL_LINEAR: GLint = 0x2601;
|
|
pub const GL_LINK_STATUS: GLenum = 0x8B82;
|
|
pub const GL_RENDERBUFFER: GLenum = 0x8D41;
|
|
pub const GL_SCISSOR_TEST: GLenum = 0x0C11;
|
|
pub const GL_TEXTURE0: GLenum = 0x84C0;
|
|
pub const GL_TEXTURE_2D: GLenum = 0x0DE1;
|
|
#[allow(dead_code)]
|
|
pub const GL_TEXTURE_MAG_FILTER: GLenum = 0x2800;
|
|
pub const GL_TEXTURE_MIN_FILTER: GLenum = 0x2801;
|
|
pub const GL_TEXTURE_WRAP_S: GLenum = 0x2802;
|
|
pub const GL_TEXTURE_WRAP_T: GLenum = 0x2803;
|
|
pub const GL_TRIANGLE_STRIP: GLenum = 0x0005;
|
|
pub const GL_TRIANGLES: GLenum = 0x0004;
|
|
pub const GL_UNPACK_ROW_LENGTH_EXT: GLenum = 0x0CF2;
|
|
pub const GL_UNSIGNED_BYTE: GLint = 0x1401;
|
|
pub const GL_VERTEX_SHADER: GLenum = 0x8B31;
|
|
pub const GL_BLEND: GLenum = 0x0BE2;
|
|
pub const GL_ONE: GLenum = 1;
|
|
pub const GL_ONE_MINUS_SRC_ALPHA: GLenum = 0x0303;
|
|
|
|
#[link(name = "GLESv2")]
|
|
extern "C" {
|
|
pub fn glGetString(name: GLenum) -> *const u8;
|
|
pub fn glGenRenderbuffers(n: GLsizei, renderbuffers: *mut GLuint);
|
|
pub fn glDeleteRenderbuffers(n: GLsizei, renderbuffers: *const GLuint);
|
|
pub fn glBindRenderbuffer(target: GLenum, renderbuffer: GLuint);
|
|
pub fn glGenFramebuffers(n: GLsizei, framebuffers: *mut GLuint);
|
|
pub fn glDeleteFramebuffers(n: GLsizei, framebuffers: *const GLuint);
|
|
pub fn glBindFramebuffer(target: GLenum, framebuffer: GLuint);
|
|
pub fn glFramebufferRenderbuffer(
|
|
target: GLenum,
|
|
attachment: GLenum,
|
|
renderbuffertarget: GLenum,
|
|
renderbuffer: GLuint,
|
|
);
|
|
#[allow(dead_code)]
|
|
pub fn glFramebufferTexture2D(
|
|
target: GLenum,
|
|
attachment: GLenum,
|
|
textarget: GLenum,
|
|
texture: GLenum,
|
|
level: GLint,
|
|
);
|
|
pub fn glCheckFramebufferStatus(target: GLenum) -> GLenum;
|
|
pub fn glClear(mask: GLbitfield);
|
|
pub fn glBlendFunc(sfactor: GLenum, dfactor: GLenum);
|
|
pub fn glClearColor(red: GLfloat, green: GLfloat, blue: GLfloat, alpha: GLfloat);
|
|
#[allow(dead_code)]
|
|
pub fn glFlush();
|
|
|
|
pub fn glGenTextures(n: GLsizei, textures: *mut GLuint);
|
|
pub fn glDeleteTextures(n: GLsizei, textures: *const GLuint);
|
|
pub fn glBindTexture(target: GLenum, texture: GLuint);
|
|
pub fn glTexParameteri(target: GLenum, pname: GLenum, param: GLint);
|
|
|
|
pub fn glPixelStorei(pname: GLenum, param: GLint);
|
|
|
|
pub fn glTexImage2D(
|
|
target: GLenum,
|
|
level: GLint,
|
|
internalformat: GLint,
|
|
width: GLsizei,
|
|
height: GLsizei,
|
|
border: GLint,
|
|
format: GLenum,
|
|
ty: GLenum,
|
|
pixels: *const c::c_void,
|
|
);
|
|
|
|
pub fn glScissor(x: GLint, y: GLint, width: GLsizei, height: GLsizei);
|
|
pub fn glEnable(cap: GLenum);
|
|
pub fn glDisable(cap: GLenum);
|
|
pub fn glViewport(x: GLint, y: GLint, width: GLsizei, height: GLsizei);
|
|
|
|
pub fn glCreateShader(ty: GLenum) -> GLuint;
|
|
pub fn glDeleteShader(shader: GLuint);
|
|
pub fn glShaderSource(
|
|
shader: GLuint,
|
|
count: GLsizei,
|
|
string: *const *const GLchar,
|
|
length: *const GLint,
|
|
);
|
|
pub fn glCompileShader(shader: GLuint);
|
|
pub fn glGetShaderiv(shader: GLuint, pname: GLenum, params: *mut GLint);
|
|
|
|
pub fn glCreateProgram() -> GLuint;
|
|
pub fn glDeleteProgram(prog: GLuint);
|
|
pub fn glAttachShader(prog: GLuint, shader: GLuint);
|
|
pub fn glDetachShader(prog: GLuint, shader: GLuint);
|
|
pub fn glLinkProgram(prog: GLuint);
|
|
pub fn glGetProgramiv(program: GLuint, pname: GLenum, params: *mut GLint);
|
|
pub fn glUseProgram(program: GLuint);
|
|
|
|
pub fn glGetUniformLocation(prog: GLuint, name: *const GLchar) -> GLint;
|
|
pub fn glGetAttribLocation(prog: GLuint, name: *const GLchar) -> GLint;
|
|
pub fn glUniform1i(location: GLint, v0: GLint);
|
|
#[allow(dead_code)]
|
|
pub fn glUniform1f(location: GLint, v0: GLfloat);
|
|
pub fn glUniform4f(location: GLint, v0: GLfloat, v1: GLfloat, v2: GLfloat, v3: GLfloat);
|
|
pub fn glVertexAttribPointer(
|
|
index: GLuint,
|
|
size: GLint,
|
|
ty: GLenum,
|
|
normalized: GLboolean,
|
|
stride: GLsizei,
|
|
pointer: *const u8,
|
|
);
|
|
|
|
pub fn glActiveTexture(texture: GLuint);
|
|
|
|
pub fn glEnableVertexAttribArray(idx: GLuint);
|
|
pub fn glDisableVertexAttribArray(idx: GLuint);
|
|
pub fn glDrawArrays(mode: GLenum, first: GLint, count: GLsizei);
|
|
}
|