aboutsummaryrefslogtreecommitdiffstats
path: root/components/canvas/webgl_thread.rs
diff options
context:
space:
mode:
Diffstat (limited to 'components/canvas/webgl_thread.rs')
-rw-r--r--components/canvas/webgl_thread.rs42
1 files changed, 13 insertions, 29 deletions
diff --git a/components/canvas/webgl_thread.rs b/components/canvas/webgl_thread.rs
index 06c3f579327..4488fd5543c 100644
--- a/components/canvas/webgl_thread.rs
+++ b/components/canvas/webgl_thread.rs
@@ -26,8 +26,8 @@ use euclid::default::Size2D;
use fnv::FnvHashMap;
use glow::{
self as gl, bytes_per_type, components_per_format, ActiveTransformFeedback, Context as Gl,
- HasContext, NativeFramebuffer, NativeTransformFeedback, NativeUniformLocation,
- NativeVertexArray, PixelUnpackData, ShaderPrecisionFormat,
+ HasContext, NativeTransformFeedback, NativeUniformLocation, NativeVertexArray, PixelUnpackData,
+ ShaderPrecisionFormat,
};
use half::f16;
use log::{debug, error, trace, warn};
@@ -49,7 +49,6 @@ use crate::webgl_limits::GLLimitsDetect;
#[cfg(feature = "webxr")]
use crate::webxr::{WebXRBridge, WebXRBridgeContexts, WebXRBridgeInit};
-type GLuint = u32;
type GLint = i32;
fn native_uniform_location(location: i32) -> Option<NativeUniformLocation> {
@@ -606,10 +605,7 @@ impl WebGLThread {
.framebuffer_object;
unsafe {
- gl.bind_framebuffer(
- gl::FRAMEBUFFER,
- NonZeroU32::new(framebuffer).map(NativeFramebuffer),
- );
+ gl.bind_framebuffer(gl::FRAMEBUFFER, framebuffer);
gl.viewport(0, 0, size.width as i32, size.height as i32);
gl.scissor(0, 0, size.width as i32, size.height as i32);
gl.clear_color(0., 0., 0., !has_alpha as u32 as f32);
@@ -839,7 +835,7 @@ impl WebGLThread {
.unwrap()
.unwrap();
debug!(
- "... rebound framebuffer {}, new back buffer surface is {:?}",
+ "... rebound framebuffer {:?}, new back buffer surface is {:?}",
framebuffer_object, id
);
@@ -2698,14 +2694,13 @@ impl WebGLImpl {
) {
let id = match request {
WebGLFramebufferBindingRequest::Explicit(id) => Some(id.glow()),
- WebGLFramebufferBindingRequest::Default => NonZeroU32::new(
+ WebGLFramebufferBindingRequest::Default => {
device
.context_surface_info(ctx)
.unwrap()
.expect("No surface attached!")
- .framebuffer_object,
- )
- .map(NativeFramebuffer),
+ .framebuffer_object
+ },
};
debug!("WebGLImpl::bind_framebuffer: {:?}", id);
@@ -3188,9 +3183,8 @@ struct FramebufferRebindingInfo {
impl FramebufferRebindingInfo {
fn detect(device: &Device, context: &Context, gl: &Gl) -> FramebufferRebindingInfo {
unsafe {
- let (mut read_framebuffer, mut draw_framebuffer) = ([0], [0]);
- gl.get_parameter_i32_slice(gl::READ_FRAMEBUFFER_BINDING, &mut read_framebuffer);
- gl.get_parameter_i32_slice(gl::DRAW_FRAMEBUFFER_BINDING, &mut draw_framebuffer);
+ let read_framebuffer = gl.get_parameter_framebuffer(gl::READ_FRAMEBUFFER_BINDING);
+ let draw_framebuffer = gl.get_parameter_framebuffer(gl::DRAW_FRAMEBUFFER_BINDING);
let context_surface_framebuffer = device
.context_surface_info(context)
@@ -3199,10 +3193,10 @@ impl FramebufferRebindingInfo {
.framebuffer_object;
let mut flags = FramebufferRebindingFlags::empty();
- if context_surface_framebuffer == read_framebuffer[0] as GLuint {
+ if context_surface_framebuffer == read_framebuffer {
flags.insert(FramebufferRebindingFlags::REBIND_READ_FRAMEBUFFER);
}
- if context_surface_framebuffer == draw_framebuffer[0] as GLuint {
+ if context_surface_framebuffer == draw_framebuffer {
flags.insert(FramebufferRebindingFlags::REBIND_DRAW_FRAMEBUFFER);
}
@@ -3227,23 +3221,13 @@ impl FramebufferRebindingInfo {
.flags
.contains(FramebufferRebindingFlags::REBIND_READ_FRAMEBUFFER)
{
- unsafe {
- gl.bind_framebuffer(
- gl::READ_FRAMEBUFFER,
- NonZeroU32::new(context_surface_framebuffer).map(NativeFramebuffer),
- )
- };
+ unsafe { gl.bind_framebuffer(gl::READ_FRAMEBUFFER, context_surface_framebuffer) };
}
if self
.flags
.contains(FramebufferRebindingFlags::REBIND_DRAW_FRAMEBUFFER)
{
- unsafe {
- gl.bind_framebuffer(
- gl::DRAW_FRAMEBUFFER,
- NonZeroU32::new(context_surface_framebuffer).map(NativeFramebuffer),
- )
- };
+ unsafe { gl.bind_framebuffer(gl::DRAW_FRAMEBUFFER, context_surface_framebuffer) };
}
unsafe {