renderer: Allow Bind implementations to expose supported formats
This commit is contained in:
parent
b7aa4c416b
commit
52d581371c
|
@ -1,3 +1,4 @@
|
|||
use std::collections::HashSet;
|
||||
use std::ffi::CStr;
|
||||
use std::ptr;
|
||||
use std::sync::Arc;
|
||||
|
@ -5,7 +6,7 @@ use std::sync::Arc;
|
|||
use cgmath::{prelude::*, Matrix3, Vector2};
|
||||
|
||||
mod shaders;
|
||||
use crate::backend::allocator::dmabuf::{Dmabuf, WeakDmabuf};
|
||||
use crate::backend::allocator::{dmabuf::{Dmabuf, WeakDmabuf}, Format};
|
||||
use crate::backend::egl::{EGLContext, EGLSurface, ffi::egl::types::EGLImage};
|
||||
use super::{Renderer, Frame, Bind, Unbind, Transform, Texture};
|
||||
|
||||
|
@ -346,6 +347,10 @@ impl Bind<Dmabuf> for Gles2Renderer {
|
|||
self.current_buffer = Some(buffer);
|
||||
Ok(())
|
||||
}
|
||||
|
||||
fn supported_formats(&self) -> Option<HashSet<Format>> {
|
||||
Some(self.internal.egl.display.dmabuf_render_formats.clone())
|
||||
}
|
||||
}
|
||||
|
||||
impl Unbind for Gles2Renderer {
|
||||
|
|
|
@ -1,3 +1,4 @@
|
|||
use std::collections::HashSet;
|
||||
use std::error::Error;
|
||||
|
||||
use cgmath::{prelude::*, Matrix3, Vector2};
|
||||
|
@ -111,6 +112,9 @@ impl From<wayland_server::protocol::wl_output::Transform> for Transform {
|
|||
|
||||
pub trait Bind<Target>: Unbind {
|
||||
fn bind(&mut self, target: Target) -> Result<(), <Self as Renderer>::Error>;
|
||||
fn supported_formats(&self) -> Option<HashSet<crate::backend::allocator::Format>> {
|
||||
None
|
||||
}
|
||||
}
|
||||
|
||||
pub trait Unbind: Renderer {
|
||||
|
|
Loading…
Reference in New Issue