Trait servo::gl::Gl
source · pub trait Gl {
Show 228 methods
// Required methods
fn get_type(&self) -> GlType;
fn buffer_data_untyped(
&self,
target: u32,
size: isize,
data: *const c_void,
usage: u32,
);
fn buffer_sub_data_untyped(
&self,
target: u32,
offset: isize,
size: isize,
data: *const c_void,
);
fn map_buffer(&self, target: u32, access: u32) -> *mut c_void;
fn map_buffer_range(
&self,
target: u32,
offset: isize,
length: isize,
access: u32,
) -> *mut c_void;
fn unmap_buffer(&self, target: u32) -> u8;
fn tex_buffer(&self, target: u32, internal_format: u32, buffer: u32);
fn shader_source(&self, shader: u32, strings: &[&[u8]]);
fn read_buffer(&self, mode: u32);
fn read_pixels_into_buffer(
&self,
x: i32,
y: i32,
width: i32,
height: i32,
format: u32,
pixel_type: u32,
dst_buffer: &mut [u8],
);
fn read_pixels(
&self,
x: i32,
y: i32,
width: i32,
height: i32,
format: u32,
pixel_type: u32,
) -> Vec<u8> ⓘ;
unsafe fn read_pixels_into_pbo(
&self,
x: i32,
y: i32,
width: i32,
height: i32,
format: u32,
pixel_type: u32,
);
fn sample_coverage(&self, value: f32, invert: bool);
fn polygon_offset(&self, factor: f32, units: f32);
fn pixel_store_i(&self, name: u32, param: i32);
fn gen_buffers(&self, n: i32) -> Vec<u32>;
fn gen_renderbuffers(&self, n: i32) -> Vec<u32>;
fn gen_framebuffers(&self, n: i32) -> Vec<u32>;
fn gen_textures(&self, n: i32) -> Vec<u32>;
fn gen_vertex_arrays(&self, n: i32) -> Vec<u32>;
fn gen_vertex_arrays_apple(&self, n: i32) -> Vec<u32>;
fn gen_queries(&self, n: i32) -> Vec<u32>;
fn begin_query(&self, target: u32, id: u32);
fn end_query(&self, target: u32);
fn query_counter(&self, id: u32, target: u32);
fn get_query_object_iv(&self, id: u32, pname: u32) -> i32;
fn get_query_object_uiv(&self, id: u32, pname: u32) -> u32;
fn get_query_object_i64v(&self, id: u32, pname: u32) -> i64;
fn get_query_object_ui64v(&self, id: u32, pname: u32) -> u64;
fn delete_queries(&self, queries: &[u32]);
fn delete_vertex_arrays(&self, vertex_arrays: &[u32]);
fn delete_vertex_arrays_apple(&self, vertex_arrays: &[u32]);
fn delete_buffers(&self, buffers: &[u32]);
fn delete_renderbuffers(&self, renderbuffers: &[u32]);
fn delete_framebuffers(&self, framebuffers: &[u32]);
fn delete_textures(&self, textures: &[u32]);
fn framebuffer_renderbuffer(
&self,
target: u32,
attachment: u32,
renderbuffertarget: u32,
renderbuffer: u32,
);
fn renderbuffer_storage(
&self,
target: u32,
internalformat: u32,
width: i32,
height: i32,
);
fn depth_func(&self, func: u32);
fn active_texture(&self, texture: u32);
fn attach_shader(&self, program: u32, shader: u32);
fn bind_attrib_location(&self, program: u32, index: u32, name: &str);
unsafe fn get_uniform_iv(
&self,
program: u32,
location: i32,
result: &mut [i32],
);
unsafe fn get_uniform_fv(
&self,
program: u32,
location: i32,
result: &mut [f32],
);
fn get_uniform_block_index(&self, program: u32, name: &str) -> u32;
fn get_uniform_indices(&self, program: u32, names: &[&str]) -> Vec<u32>;
fn bind_buffer_base(&self, target: u32, index: u32, buffer: u32);
fn bind_buffer_range(
&self,
target: u32,
index: u32,
buffer: u32,
offset: isize,
size: isize,
);
fn uniform_block_binding(
&self,
program: u32,
uniform_block_index: u32,
uniform_block_binding: u32,
);
fn bind_buffer(&self, target: u32, buffer: u32);
fn bind_vertex_array(&self, vao: u32);
fn bind_vertex_array_apple(&self, vao: u32);
fn bind_renderbuffer(&self, target: u32, renderbuffer: u32);
fn bind_framebuffer(&self, target: u32, framebuffer: u32);
fn bind_texture(&self, target: u32, texture: u32);
fn bind_vertex_buffer(
&self,
binding_index: u32,
buffer: u32,
offset: isize,
stride: i32,
);
fn draw_buffers(&self, bufs: &[u32]);
fn tex_image_2d(
&self,
target: u32,
level: i32,
internal_format: i32,
width: i32,
height: i32,
border: i32,
format: u32,
ty: u32,
opt_data: Option<&[u8]>,
);
fn compressed_tex_image_2d(
&self,
target: u32,
level: i32,
internal_format: u32,
width: i32,
height: i32,
border: i32,
data: &[u8],
);
fn compressed_tex_sub_image_2d(
&self,
target: u32,
level: i32,
xoffset: i32,
yoffset: i32,
width: i32,
height: i32,
format: u32,
data: &[u8],
);
fn tex_image_3d(
&self,
target: u32,
level: i32,
internal_format: i32,
width: i32,
height: i32,
depth: i32,
border: i32,
format: u32,
ty: u32,
opt_data: Option<&[u8]>,
);
fn copy_tex_image_2d(
&self,
target: u32,
level: i32,
internal_format: u32,
x: i32,
y: i32,
width: i32,
height: i32,
border: i32,
);
fn copy_tex_sub_image_2d(
&self,
target: u32,
level: i32,
xoffset: i32,
yoffset: i32,
x: i32,
y: i32,
width: i32,
height: i32,
);
fn copy_tex_sub_image_3d(
&self,
target: u32,
level: i32,
xoffset: i32,
yoffset: i32,
zoffset: i32,
x: i32,
y: i32,
width: i32,
height: i32,
);
fn tex_sub_image_2d(
&self,
target: u32,
level: i32,
xoffset: i32,
yoffset: i32,
width: i32,
height: i32,
format: u32,
ty: u32,
data: &[u8],
);
fn tex_sub_image_2d_pbo(
&self,
target: u32,
level: i32,
xoffset: i32,
yoffset: i32,
width: i32,
height: i32,
format: u32,
ty: u32,
offset: usize,
);
fn tex_sub_image_3d(
&self,
target: u32,
level: i32,
xoffset: i32,
yoffset: i32,
zoffset: i32,
width: i32,
height: i32,
depth: i32,
format: u32,
ty: u32,
data: &[u8],
);
fn tex_sub_image_3d_pbo(
&self,
target: u32,
level: i32,
xoffset: i32,
yoffset: i32,
zoffset: i32,
width: i32,
height: i32,
depth: i32,
format: u32,
ty: u32,
offset: usize,
);
fn tex_storage_2d(
&self,
target: u32,
levels: i32,
internal_format: u32,
width: i32,
height: i32,
);
fn tex_storage_3d(
&self,
target: u32,
levels: i32,
internal_format: u32,
width: i32,
height: i32,
depth: i32,
);
fn get_tex_image_into_buffer(
&self,
target: u32,
level: i32,
format: u32,
ty: u32,
output: &mut [u8],
);
unsafe fn copy_image_sub_data(
&self,
src_name: u32,
src_target: u32,
src_level: i32,
src_x: i32,
src_y: i32,
src_z: i32,
dst_name: u32,
dst_target: u32,
dst_level: i32,
dst_x: i32,
dst_y: i32,
dst_z: i32,
src_width: i32,
src_height: i32,
src_depth: i32,
);
fn invalidate_framebuffer(&self, target: u32, attachments: &[u32]);
fn invalidate_sub_framebuffer(
&self,
target: u32,
attachments: &[u32],
xoffset: i32,
yoffset: i32,
width: i32,
height: i32,
);
unsafe fn get_integer_v(&self, name: u32, result: &mut [i32]);
unsafe fn get_integer_64v(&self, name: u32, result: &mut [i64]);
unsafe fn get_integer_iv(&self, name: u32, index: u32, result: &mut [i32]);
unsafe fn get_integer_64iv(&self, name: u32, index: u32, result: &mut [i64]);
unsafe fn get_boolean_v(&self, name: u32, result: &mut [u8]);
unsafe fn get_float_v(&self, name: u32, result: &mut [f32]);
fn get_framebuffer_attachment_parameter_iv(
&self,
target: u32,
attachment: u32,
pname: u32,
) -> i32;
fn get_renderbuffer_parameter_iv(&self, target: u32, pname: u32) -> i32;
fn get_tex_parameter_iv(&self, target: u32, name: u32) -> i32;
fn get_tex_parameter_fv(&self, target: u32, name: u32) -> f32;
fn tex_parameter_i(&self, target: u32, pname: u32, param: i32);
fn tex_parameter_f(&self, target: u32, pname: u32, param: f32);
fn framebuffer_texture_2d(
&self,
target: u32,
attachment: u32,
textarget: u32,
texture: u32,
level: i32,
);
fn framebuffer_texture_layer(
&self,
target: u32,
attachment: u32,
texture: u32,
level: i32,
layer: i32,
);
fn blit_framebuffer(
&self,
src_x0: i32,
src_y0: i32,
src_x1: i32,
src_y1: i32,
dst_x0: i32,
dst_y0: i32,
dst_x1: i32,
dst_y1: i32,
mask: u32,
filter: u32,
);
fn vertex_attrib_4f(&self, index: u32, x: f32, y: f32, z: f32, w: f32);
fn vertex_attrib_binding(&self, attrib_index: u32, binding_index: u32);
fn vertex_attrib_pointer_f32(
&self,
index: u32,
size: i32,
normalized: bool,
stride: i32,
offset: u32,
);
fn vertex_attrib_pointer(
&self,
index: u32,
size: i32,
type_: u32,
normalized: bool,
stride: i32,
offset: u32,
);
fn vertex_attrib_i_pointer(
&self,
index: u32,
size: i32,
type_: u32,
stride: i32,
offset: u32,
);
fn vertex_attrib_divisor(&self, index: u32, divisor: u32);
fn vertex_attrib_format(
&self,
attrib_index: u32,
size: i32,
type_: u32,
normalized: bool,
relative_offset: u32,
);
fn vertex_attrib_i_format(
&self,
attrib_index: u32,
size: i32,
type_: u32,
relative_offset: u32,
);
fn vertex_binding_divisor(&self, binding_index: u32, divisor: u32);
fn viewport(&self, x: i32, y: i32, width: i32, height: i32);
fn scissor(&self, x: i32, y: i32, width: i32, height: i32);
fn line_width(&self, width: f32);
fn use_program(&self, program: u32);
fn validate_program(&self, program: u32);
fn draw_arrays(&self, mode: u32, first: i32, count: i32);
fn draw_arrays_instanced(
&self,
mode: u32,
first: i32,
count: i32,
primcount: i32,
);
fn draw_elements(
&self,
mode: u32,
count: i32,
element_type: u32,
indices_offset: u32,
);
fn draw_elements_instanced(
&self,
mode: u32,
count: i32,
element_type: u32,
indices_offset: u32,
primcount: i32,
);
fn blend_color(&self, r: f32, g: f32, b: f32, a: f32);
fn blend_func(&self, sfactor: u32, dfactor: u32);
fn blend_func_separate(
&self,
src_rgb: u32,
dest_rgb: u32,
src_alpha: u32,
dest_alpha: u32,
);
fn blend_equation(&self, mode: u32);
fn blend_equation_separate(&self, mode_rgb: u32, mode_alpha: u32);
fn color_mask(&self, r: bool, g: bool, b: bool, a: bool);
fn cull_face(&self, mode: u32);
fn front_face(&self, mode: u32);
fn enable(&self, cap: u32);
fn disable(&self, cap: u32);
fn hint(&self, param_name: u32, param_val: u32);
fn is_enabled(&self, cap: u32) -> u8;
fn is_shader(&self, shader: u32) -> u8;
fn is_texture(&self, texture: u32) -> u8;
fn is_framebuffer(&self, framebuffer: u32) -> u8;
fn is_renderbuffer(&self, renderbuffer: u32) -> u8;
fn check_frame_buffer_status(&self, target: u32) -> u32;
fn enable_vertex_attrib_array(&self, index: u32);
fn disable_vertex_attrib_array(&self, index: u32);
fn uniform_1f(&self, location: i32, v0: f32);
fn uniform_1fv(&self, location: i32, values: &[f32]);
fn uniform_1i(&self, location: i32, v0: i32);
fn uniform_1iv(&self, location: i32, values: &[i32]);
fn uniform_1ui(&self, location: i32, v0: u32);
fn uniform_2f(&self, location: i32, v0: f32, v1: f32);
fn uniform_2fv(&self, location: i32, values: &[f32]);
fn uniform_2i(&self, location: i32, v0: i32, v1: i32);
fn uniform_2iv(&self, location: i32, values: &[i32]);
fn uniform_2ui(&self, location: i32, v0: u32, v1: u32);
fn uniform_3f(&self, location: i32, v0: f32, v1: f32, v2: f32);
fn uniform_3fv(&self, location: i32, values: &[f32]);
fn uniform_3i(&self, location: i32, v0: i32, v1: i32, v2: i32);
fn uniform_3iv(&self, location: i32, values: &[i32]);
fn uniform_3ui(&self, location: i32, v0: u32, v1: u32, v2: u32);
fn uniform_4f(&self, location: i32, x: f32, y: f32, z: f32, w: f32);
fn uniform_4i(&self, location: i32, x: i32, y: i32, z: i32, w: i32);
fn uniform_4iv(&self, location: i32, values: &[i32]);
fn uniform_4ui(&self, location: i32, x: u32, y: u32, z: u32, w: u32);
fn uniform_4fv(&self, location: i32, values: &[f32]);
fn uniform_matrix_2fv(&self, location: i32, transpose: bool, value: &[f32]);
fn uniform_matrix_3fv(&self, location: i32, transpose: bool, value: &[f32]);
fn uniform_matrix_4fv(&self, location: i32, transpose: bool, value: &[f32]);
fn depth_mask(&self, flag: bool);
fn depth_range(&self, near: f64, far: f64);
fn get_active_attrib(&self, program: u32, index: u32) -> (i32, u32, String);
fn get_active_uniform(&self, program: u32, index: u32) -> (i32, u32, String);
fn get_active_uniforms_iv(
&self,
program: u32,
indices: Vec<u32>,
pname: u32,
) -> Vec<i32>;
fn get_active_uniform_block_i(
&self,
program: u32,
index: u32,
pname: u32,
) -> i32;
fn get_active_uniform_block_iv(
&self,
program: u32,
index: u32,
pname: u32,
) -> Vec<i32>;
fn get_active_uniform_block_name(&self, program: u32, index: u32) -> String;
fn get_attrib_location(&self, program: u32, name: &str) -> i32;
fn get_frag_data_location(&self, program: u32, name: &str) -> i32;
fn get_uniform_location(&self, program: u32, name: &str) -> i32;
fn get_program_info_log(&self, program: u32) -> String;
unsafe fn get_program_iv(
&self,
program: u32,
pname: u32,
result: &mut [i32],
);
fn get_program_binary(&self, program: u32) -> (Vec<u8>, u32);
fn program_binary(&self, program: u32, format: u32, binary: &[u8]);
fn program_parameter_i(&self, program: u32, pname: u32, value: i32);
unsafe fn get_vertex_attrib_iv(
&self,
index: u32,
pname: u32,
result: &mut [i32],
);
unsafe fn get_vertex_attrib_fv(
&self,
index: u32,
pname: u32,
result: &mut [f32],
);
fn get_vertex_attrib_pointer_v(&self, index: u32, pname: u32) -> isize;
fn get_buffer_parameter_iv(&self, target: u32, pname: u32) -> i32;
fn get_shader_info_log(&self, shader: u32) -> String;
fn get_string(&self, which: u32) -> String;
fn get_string_i(&self, which: u32, index: u32) -> String;
unsafe fn get_shader_iv(&self, shader: u32, pname: u32, result: &mut [i32]);
fn get_shader_precision_format(
&self,
shader_type: u32,
precision_type: u32,
) -> (i32, i32, i32);
fn compile_shader(&self, shader: u32);
fn create_program(&self) -> u32;
fn delete_program(&self, program: u32);
fn create_shader(&self, shader_type: u32) -> u32;
fn delete_shader(&self, shader: u32);
fn detach_shader(&self, program: u32, shader: u32);
fn link_program(&self, program: u32);
fn clear_color(&self, r: f32, g: f32, b: f32, a: f32);
fn clear(&self, buffer_mask: u32);
fn clear_depth(&self, depth: f64);
fn clear_stencil(&self, s: i32);
fn flush(&self);
fn finish(&self);
fn get_error(&self) -> u32;
fn stencil_mask(&self, mask: u32);
fn stencil_mask_separate(&self, face: u32, mask: u32);
fn stencil_func(&self, func: u32, ref_: i32, mask: u32);
fn stencil_func_separate(&self, face: u32, func: u32, ref_: i32, mask: u32);
fn stencil_op(&self, sfail: u32, dpfail: u32, dppass: u32);
fn stencil_op_separate(
&self,
face: u32,
sfail: u32,
dpfail: u32,
dppass: u32,
);
fn egl_image_target_texture2d_oes(&self, target: u32, image: *const c_void);
fn egl_image_target_renderbuffer_storage_oes(
&self,
target: u32,
image: *const c_void,
);
fn generate_mipmap(&self, target: u32);
fn insert_event_marker_ext(&self, message: &str);
fn push_group_marker_ext(&self, message: &str);
fn pop_group_marker_ext(&self);
fn debug_message_insert_khr(
&self,
source: u32,
type_: u32,
id: u32,
severity: u32,
message: &str,
);
fn push_debug_group_khr(&self, source: u32, id: u32, message: &str);
fn pop_debug_group_khr(&self);
fn fence_sync(&self, condition: u32, flags: u32) -> *const __GLsync;
fn client_wait_sync(
&self,
sync: *const __GLsync,
flags: u32,
timeout: u64,
) -> u32;
fn wait_sync(&self, sync: *const __GLsync, flags: u32, timeout: u64);
fn delete_sync(&self, sync: *const __GLsync);
fn texture_range_apple(&self, target: u32, data: &[u8]);
fn gen_fences_apple(&self, n: i32) -> Vec<u32>;
fn delete_fences_apple(&self, fences: &[u32]);
fn set_fence_apple(&self, fence: u32);
fn finish_fence_apple(&self, fence: u32);
fn test_fence_apple(&self, fence: u32);
fn test_object_apple(&self, object: u32, name: u32) -> u8;
fn finish_object_apple(&self, object: u32, name: u32);
fn blend_barrier_khr(&self);
fn bind_frag_data_location_indexed(
&self,
program: u32,
color_number: u32,
index: u32,
name: &str,
);
fn get_frag_data_index(&self, program: u32, name: &str) -> i32;
fn get_debug_messages(&self) -> Vec<DebugMessage>;
fn provoking_vertex_angle(&self, mode: u32);
fn copy_texture_chromium(
&self,
source_id: u32,
source_level: i32,
dest_target: u32,
dest_id: u32,
dest_level: i32,
internal_format: i32,
dest_type: u32,
unpack_flip_y: u8,
unpack_premultiply_alpha: u8,
unpack_unmultiply_alpha: u8,
);
fn copy_sub_texture_chromium(
&self,
source_id: u32,
source_level: i32,
dest_target: u32,
dest_id: u32,
dest_level: i32,
x_offset: i32,
y_offset: i32,
x: i32,
y: i32,
width: i32,
height: i32,
unpack_flip_y: u8,
unpack_premultiply_alpha: u8,
unpack_unmultiply_alpha: u8,
);
fn copy_texture_3d_angle(
&self,
source_id: u32,
source_level: i32,
dest_target: u32,
dest_id: u32,
dest_level: i32,
internal_format: i32,
dest_type: u32,
unpack_flip_y: u8,
unpack_premultiply_alpha: u8,
unpack_unmultiply_alpha: u8,
);
fn copy_sub_texture_3d_angle(
&self,
source_id: u32,
source_level: i32,
dest_target: u32,
dest_id: u32,
dest_level: i32,
x_offset: i32,
y_offset: i32,
z_offset: i32,
x: i32,
y: i32,
z: i32,
width: i32,
height: i32,
depth: i32,
unpack_flip_y: u8,
unpack_premultiply_alpha: u8,
unpack_unmultiply_alpha: u8,
);
fn buffer_storage(
&self,
target: u32,
size: isize,
data: *const c_void,
flags: u32,
);
fn flush_mapped_buffer_range(
&self,
target: u32,
offset: isize,
length: isize,
);
fn start_tiling_qcom(
&self,
x: u32,
y: u32,
width: u32,
height: u32,
preserve_mask: u32,
);
fn end_tiling_qcom(&self, preserve_mask: u32);
}