From 5778c4967987d987d3a463c2550ba69da37f3f58 Mon Sep 17 00:00:00 2001 From: Julian Orth Date: Mon, 23 Oct 2023 20:04:57 +0200 Subject: [PATCH] render: move take_render_ops to GfxFramebuffer --- src/gfx_api.rs | 4 ++-- src/gfx_apis/gl/renderer/context.rs | 5 ----- src/gfx_apis/gl/renderer/framebuffer.rs | 7 ++++++- 3 files changed, 8 insertions(+), 8 deletions(-) diff --git a/src/gfx_api.rs b/src/gfx_api.rs index c425c18e..1f03625c 100644 --- a/src/gfx_api.rs +++ b/src/gfx_api.rs @@ -113,6 +113,8 @@ pub enum ResetStatus { pub trait GfxFramebuffer: Debug { fn as_any(&self) -> &dyn Any; + fn take_render_ops(&self) -> Vec; + fn clear(&self); fn clear_with(&self, r: f32, g: f32, b: f32, a: f32); @@ -167,8 +169,6 @@ pub trait GfxTexture: Debug { } pub trait GfxContext: Debug { - fn take_render_ops(&self) -> Vec; - fn reset_status(&self) -> Option; fn supports_external_texture(&self) -> bool; diff --git a/src/gfx_apis/gl/renderer/context.rs b/src/gfx_apis/gl/renderer/context.rs index 55674b08..46ed57dd 100644 --- a/src/gfx_apis/gl/renderer/context.rs +++ b/src/gfx_apis/gl/renderer/context.rs @@ -25,7 +25,6 @@ use { cell::{Cell, RefCell}, ffi::CString, fmt::{Debug, Formatter}, - mem, rc::Rc, }, uapi::ustr, @@ -203,10 +202,6 @@ impl GlRenderContext { } impl GfxContext for GlRenderContext { - fn take_render_ops(&self) -> Vec { - mem::take(&mut self.gfx_ops.borrow_mut()) - } - fn reset_status(&self) -> Option { self.reset_status() } diff --git a/src/gfx_apis/gl/renderer/framebuffer.rs b/src/gfx_apis/gl/renderer/framebuffer.rs index 7c884252..c0e3e978 100644 --- a/src/gfx_apis/gl/renderer/framebuffer.rs +++ b/src/gfx_apis/gl/renderer/framebuffer.rs @@ -3,7 +3,7 @@ use { cursor::Cursor, fixed::Fixed, format::{Format, ARGB8888, XRGB8888}, - gfx_api::{GfxFramebuffer, GfxTexture}, + gfx_api::{GfxApiOpt, GfxFramebuffer, GfxTexture}, gfx_apis::gl::{ gl::{ frame_buffer::GlFrameBuffer, @@ -26,6 +26,7 @@ use { any::Any, cell::Cell, fmt::{Debug, Formatter}, + mem, rc::Rc, }, }; @@ -263,6 +264,10 @@ impl GfxFramebuffer for Framebuffer { self } + fn take_render_ops(&self) -> Vec { + mem::take(&mut self.ctx.gfx_ops.borrow_mut()) + } + fn clear(&self) { self.clear() }