From 8a769203496c6bb09a40a488f382e3b949c59ff8 Mon Sep 17 00:00:00 2001 From: "Jasper St. Pierre" Date: Mon, 1 Nov 2021 11:06:10 -0700 Subject: [PATCH] queue: Another attempt at cube map rendering (#2143) The last one was wrong, because I misread a confusing line in the GL ES spec. --- wgpu-hal/src/gles/queue.rs | 15 +++++++++++---- 1 file changed, 11 insertions(+), 4 deletions(-) diff --git a/wgpu-hal/src/gles/queue.rs b/wgpu-hal/src/gles/queue.rs index c79f47b9e9..9de5be570e 100644 --- a/wgpu-hal/src/gles/queue.rs +++ b/wgpu-hal/src/gles/queue.rs @@ -22,10 +22,7 @@ fn extract_marker<'a>(data: &'a [u8], range: &std::ops::Range) -> &'a str { fn is_layered_target(target: super::BindTarget) -> bool { match target { - glow::TEXTURE_2D_ARRAY - | glow::TEXTURE_3D - | glow::TEXTURE_CUBE_MAP - | glow::TEXTURE_CUBE_MAP_ARRAY => true, + glow::TEXTURE_2D_ARRAY | glow::TEXTURE_3D | glow::TEXTURE_CUBE_MAP_ARRAY => true, _ => false, } } @@ -94,6 +91,14 @@ impl super::Queue { view.mip_levels.start as i32, view.array_layers.start as i32, ); + } else if target == glow::TEXTURE_CUBE_MAP { + gl.framebuffer_texture_2d( + fbo_target, + attachment, + CUBEMAP_FACES[view.array_layers.start as usize], + Some(raw), + view.mip_levels.start as i32, + ); } else { gl.framebuffer_texture_2d( fbo_target, @@ -297,6 +302,7 @@ impl super::Queue { ref copy, } => { //TODO: handle 3D copies + //TODO: handle cubemap copies gl.bind_framebuffer(glow::READ_FRAMEBUFFER, Some(self.copy_fbo)); if is_layered_target(src_target) { //TODO: handle GLES without framebuffer_texture_3d @@ -546,6 +552,7 @@ impl super::Queue { }); gl.bind_framebuffer(glow::READ_FRAMEBUFFER, Some(self.copy_fbo)); + //TODO: handle cubemap copies if is_layered_target(src_target) { //TODO: handle GLES without framebuffer_texture_3d gl.framebuffer_texture_layer(