1
0
Fork 0
forked from wry/wry

gfx: return formats by reference

This commit is contained in:
Julian Orth 2026-02-15 14:13:30 +01:00
parent b921c81e5d
commit 0f556fc054
7 changed files with 12 additions and 12 deletions

View file

@ -103,7 +103,7 @@ fn create_fd_data(ctx: &dyn GfxContext) -> (Vec<u8>, AHashMap<(u32, Modifier), u
let mut vec = vec![]; let mut vec = vec![];
let mut map = AHashMap::new(); let mut map = AHashMap::new();
let mut pos = 0; let mut pos = 0;
for (format, info) in &*ctx.formats() { for (format, info) in &**ctx.formats() {
for modifier in &info.read_modifiers { for modifier in &info.read_modifiers {
vec.write_u32::<NativeEndian>(*format).unwrap(); vec.write_u32::<NativeEndian>(*format).unwrap();
vec.write_u32::<NativeEndian>(0).unwrap(); vec.write_u32::<NativeEndian>(0).unwrap();

View file

@ -747,7 +747,7 @@ pub trait GfxContext: Debug {
fn render_node(&self) -> Option<Rc<CString>>; fn render_node(&self) -> Option<Rc<CString>>;
fn formats(&self) -> Rc<AHashMap<u32, GfxFormat>>; fn formats(&self) -> &Rc<AHashMap<u32, GfxFormat>>;
fn fast_ram_access(&self) -> bool; fn fast_ram_access(&self) -> bool;

View file

@ -187,8 +187,8 @@ impl GlRenderContext {
self.render_node.clone() self.render_node.clone()
} }
pub fn formats(&self) -> Rc<AHashMap<u32, GfxFormat>> { pub fn formats(&self) -> &Rc<AHashMap<u32, GfxFormat>> {
self.ctx.formats.clone() &self.ctx.formats
} }
fn dmabuf_fb(self: &Rc<Self>, buf: &DmaBuf) -> Result<Rc<Framebuffer>, RenderError> { fn dmabuf_fb(self: &Rc<Self>, buf: &DmaBuf) -> Result<Rc<Framebuffer>, RenderError> {
@ -253,7 +253,7 @@ impl GfxContext for GlRenderContext {
Some(self.render_node()) Some(self.render_node())
} }
fn formats(&self) -> Rc<AHashMap<u32, GfxFormat>> { fn formats(&self) -> &Rc<AHashMap<u32, GfxFormat>> {
self.formats() self.formats()
} }

View file

@ -263,8 +263,8 @@ impl GfxContext for Context {
Some(self.0.device.render_node.clone()) Some(self.0.device.render_node.clone())
} }
fn formats(&self) -> Rc<AHashMap<u32, GfxFormat>> { fn formats(&self) -> &Rc<AHashMap<u32, GfxFormat>> {
self.0.formats.clone() &self.0.formats
} }
fn fast_ram_access(&self) -> bool { fn fast_ram_access(&self) -> bool {

View file

@ -74,7 +74,7 @@ impl ZwpLinuxBufferParamsV1 {
Some(ctx) => ctx, Some(ctx) => ctx,
None => return Err(ZwpLinuxBufferParamsV1Error::NoRenderContext), None => return Err(ZwpLinuxBufferParamsV1Error::NoRenderContext),
}; };
let formats = ctx.formats(); let formats = ctx.formats().clone();
let format = match formats.get(&format) { let format = match formats.get(&format) {
Some(f) => f, Some(f) => f,
None => return Err(ZwpLinuxBufferParamsV1Error::InvalidFormat(format)), None => return Err(ZwpLinuxBufferParamsV1Error::InvalidFormat(format)),

View file

@ -103,8 +103,8 @@ impl GfxContext for TestGfxCtx {
None None
} }
fn formats(&self) -> Rc<AHashMap<u32, GfxFormat>> { fn formats(&self) -> &Rc<AHashMap<u32, GfxFormat>> {
self.formats.clone() &self.formats
} }
fn fast_ram_access(&self) -> bool { fn fast_ram_access(&self) -> bool {

View file

@ -211,9 +211,9 @@ impl UsrJayRenderCtxOwner for PortalDisplay {
if let Some(ctx) = render_ctx { if let Some(ctx) = render_ctx {
let client_formats = ctx.ctx.formats(); let client_formats = ctx.ctx.formats();
let usable_formats = match &server_formats { let usable_formats = match &server_formats {
None => client_formats, None => client_formats.clone(),
Some(server_formats) => { Some(server_formats) => {
Rc::new(cross_intersect_formats(&client_formats, server_formats)) Rc::new(cross_intersect_formats(client_formats, server_formats))
} }
}; };
self.render_ctx.set(Some(Rc::new(PortalServerRenderCtx { self.render_ctx.set(Some(Rc::new(PortalServerRenderCtx {