1
0
Fork 0
forked from wry/wry

render: don't require framebuffer to perform shm screencopies

This commit is contained in:
Julian Orth 2024-02-28 13:41:08 +01:00
parent 69d63b7e83
commit 9de63bddf3
12 changed files with 65 additions and 76 deletions

View file

@ -2,9 +2,8 @@ use {
crate::{
gfx_api::{GfxError, GfxFramebuffer, GfxImage, GfxTexture},
gfx_apis::gl::{
egl::image::EglImage,
gl::{render_buffer::GlRenderBuffer, texture::GlTexture},
Framebuffer, GlRenderContext, RenderError, Texture,
egl::image::EglImage, gl::texture::GlTexture, Framebuffer, GlRenderContext,
RenderError, Texture,
},
},
std::rc::Rc,
@ -34,14 +33,7 @@ impl Image {
}
fn to_framebuffer(&self) -> Result<Rc<Framebuffer>, RenderError> {
self.ctx.ctx.with_current(|| unsafe {
let rb = GlRenderBuffer::from_image(&self.gl, &self.ctx.ctx)?;
let fb = rb.create_framebuffer()?;
Ok(Rc::new(Framebuffer {
ctx: self.ctx.clone(),
gl: fb,
}))
})
self.ctx.image_to_fb(&self.gl)
}
}