Update configs. IGNORE BROKEN CHANGESETS CLOSED TREE NO BUG a=release ba=release
[gecko.git] / gfx / webrender_bindings / src / swgl_bindings.rs
blobb1e7684a69f3f213355a37b182c09658209bf519
1 /* This Source Code Form is subject to the terms of the Mozilla Public
2  * License, v. 2.0. If a copy of the MPL was not distributed with this
3  * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
5 use gleam::gl::Gl;
7 use std::os::raw::c_void;
9 #[no_mangle]
10 pub extern "C" fn wr_swgl_create_context() -> *mut c_void {
11     swgl::Context::create().into()
14 #[no_mangle]
15 pub extern "C" fn wr_swgl_reference_context(ctx: *mut c_void) {
16     swgl::Context::from(ctx).reference();
19 #[no_mangle]
20 pub extern "C" fn wr_swgl_destroy_context(ctx: *mut c_void) {
21     swgl::Context::from(ctx).destroy();
24 #[no_mangle]
25 pub extern "C" fn wr_swgl_make_current(ctx: *mut c_void) {
26     swgl::Context::from(ctx).make_current();
29 #[no_mangle]
30 pub extern "C" fn wr_swgl_init_default_framebuffer(
31     ctx: *mut c_void,
32     x: i32,
33     y: i32,
34     width: i32,
35     height: i32,
36     stride: i32,
37     buf: *mut c_void,
38 ) {
39     swgl::Context::from(ctx).init_default_framebuffer(x, y, width, height, stride, buf);
42 #[no_mangle]
43 pub extern "C" fn wr_swgl_resolve_framebuffer(ctx: *mut c_void, fbo: u32) {
44     swgl::Context::from(ctx).resolve_framebuffer(fbo);
47 #[no_mangle]
48 pub extern "C" fn wr_swgl_gen_texture(ctx: *mut c_void) -> u32 {
49     swgl::Context::from(ctx).gen_textures(1)[0]
52 #[no_mangle]
53 pub extern "C" fn wr_swgl_delete_texture(ctx: *mut c_void, tex: u32) {
54     swgl::Context::from(ctx).delete_textures(&[tex]);
57 #[no_mangle]
58 pub extern "C" fn wr_swgl_set_texture_parameter(ctx: *mut c_void, tex: u32, pname: u32, param: i32) {
59     swgl::Context::from(ctx).set_texture_parameter(tex, pname, param);
62 #[no_mangle]
63 pub extern "C" fn wr_swgl_set_texture_buffer(
64     ctx: *mut c_void,
65     tex: u32,
66     internal_format: u32,
67     width: i32,
68     height: i32,
69     stride: i32,
70     buf: *mut c_void,
71     min_width: i32,
72     min_height: i32,
73 ) {
74     swgl::Context::from(ctx).set_texture_buffer(
75         tex,
76         internal_format,
77         width,
78         height,
79         stride,
80         buf,
81         min_width,
82         min_height,
83     );
86 #[no_mangle]
87 #[allow(clippy::many_single_char_names)]
88 pub extern "C" fn wr_swgl_clear_color_rect(
89     ctx: *mut c_void,
90     fbo: u32,
91     x: i32,
92     y: i32,
93     width: i32,
94     height: i32,
95     r: f32,
96     g: f32,
97     b: f32,
98     a: f32,
99 ) {
100     swgl::Context::from(ctx).clear_color_rect(fbo, x, y, width, height, r, g, b, a);