renderer: rename Texture to TextureId to better convey nature of the handle

This commit is contained in:
Victor Brekenfeld 2021-04-28 20:25:34 +02:00
parent ab6dd61592
commit 85bef5fec6
4 changed files with 26 additions and 26 deletions

View File

@ -223,17 +223,17 @@ where
D: AsRawFd + 'static, D: AsRawFd + 'static,
A: Allocator<B, Error=E1>, A: Allocator<B, Error=E1>,
B: Buffer + TryInto<Dmabuf, Error=E2>, B: Buffer + TryInto<Dmabuf, Error=E2>,
R: Bind<Dmabuf> + Renderer<Error=E3, Texture=T>, R: Bind<Dmabuf> + Renderer<Error=E3, TextureId=T>,
T: Texture, T: Texture,
E1: std::error::Error + 'static, E1: std::error::Error + 'static,
E2: std::error::Error + 'static, E2: std::error::Error + 'static,
E3: std::error::Error + 'static, E3: std::error::Error + 'static,
{ {
type Error = Error<E1, E2, E3>; type Error = Error<E1, E2, E3>;
type Texture = T; type TextureId = T;
#[cfg(feature = "image")] #[cfg(feature = "image")]
fn import_bitmap<C: std::ops::Deref<Target=[u8]>>(&mut self, image: &image::ImageBuffer<image::Rgba<u8>, C>) -> Result<Self::Texture, Self::Error> { fn import_bitmap<C: std::ops::Deref<Target=[u8]>>(&mut self, image: &image::ImageBuffer<image::Rgba<u8>, C>) -> Result<Self::TextureId, Self::Error> {
self.renderer.import_bitmap(image).map_err(Error::RenderError) self.renderer.import_bitmap(image).map_err(Error::RenderError)
} }
@ -243,16 +243,16 @@ where
} }
#[cfg(feature = "wayland_frontend")] #[cfg(feature = "wayland_frontend")]
fn import_shm(&mut self, buffer: &wl_buffer::WlBuffer) -> Result<Self::Texture, Self::Error> { fn import_shm(&mut self, buffer: &wl_buffer::WlBuffer) -> Result<Self::TextureId, Self::Error> {
self.renderer.import_shm(buffer).map_err(Error::RenderError) self.renderer.import_shm(buffer).map_err(Error::RenderError)
} }
#[cfg(feature = "wayland_frontend")] #[cfg(feature = "wayland_frontend")]
fn import_egl(&mut self, buffer: &EGLBuffer) -> Result<Self::Texture, Self::Error> { fn import_egl(&mut self, buffer: &EGLBuffer) -> Result<Self::TextureId, Self::Error> {
self.renderer.import_egl(buffer).map_err(Error::RenderError) self.renderer.import_egl(buffer).map_err(Error::RenderError)
} }
fn destroy_texture(&mut self, texture: Self::Texture) -> Result<(), Self::Error> { fn destroy_texture(&mut self, texture: Self::TextureId) -> Result<(), Self::Error> {
self.renderer.destroy_texture(texture).map_err(Error::RenderError) self.renderer.destroy_texture(texture).map_err(Error::RenderError)
} }
@ -271,7 +271,7 @@ where
self.renderer.clear(color).map_err(Error::RenderError) self.renderer.clear(color).map_err(Error::RenderError)
} }
fn render_texture(&mut self, texture: &Self::Texture, matrix: Matrix3<f32>, alpha: f32) -> Result<(), Self::Error> { fn render_texture(&mut self, texture: &Self::TextureId, matrix: Matrix3<f32>, alpha: f32) -> Result<(), Self::Error> {
self.renderer.render_texture(texture, matrix, alpha).map_err(Error::RenderError) self.renderer.render_texture(texture, matrix, alpha).map_err(Error::RenderError)
} }

View File

@ -426,7 +426,7 @@ static TEX_COORDS: [ffi::types::GLfloat; 8] = [
impl Renderer for Gles2Renderer { impl Renderer for Gles2Renderer {
type Error = Gles2Error; type Error = Gles2Error;
type Texture = Gles2Texture; type TextureId = Gles2Texture;
#[cfg(feature = "wayland_frontend")] #[cfg(feature = "wayland_frontend")]
fn shm_formats(&self) -> &[wl_shm::Format] { fn shm_formats(&self) -> &[wl_shm::Format] {
@ -439,7 +439,7 @@ impl Renderer for Gles2Renderer {
} }
#[cfg(feature = "image")] #[cfg(feature = "image")]
fn import_bitmap<C: std::ops::Deref<Target=[u8]>>(&mut self, image: &image::ImageBuffer<image::Rgba<u8>, C>) -> Result<Self::Texture, Self::Error> { fn import_bitmap<C: std::ops::Deref<Target=[u8]>>(&mut self, image: &image::ImageBuffer<image::Rgba<u8>, C>) -> Result<Self::TextureId, Self::Error> {
self.make_current()?; self.make_current()?;
let mut tex = 0; let mut tex = 0;
@ -467,7 +467,7 @@ impl Renderer for Gles2Renderer {
#[cfg(feature = "wayland_frontend")] #[cfg(feature = "wayland_frontend")]
fn import_shm(&mut self, buffer: &wl_buffer::WlBuffer) -> Result<Self::Texture, Self::Error> { fn import_shm(&mut self, buffer: &wl_buffer::WlBuffer) -> Result<Self::TextureId, Self::Error> {
use crate::wayland::shm::with_buffer_contents; use crate::wayland::shm::with_buffer_contents;
with_buffer_contents(&buffer, |slice, data| { with_buffer_contents(&buffer, |slice, data| {
@ -522,7 +522,7 @@ impl Renderer for Gles2Renderer {
} }
#[cfg(feature = "wayland_frontend")] #[cfg(feature = "wayland_frontend")]
fn import_egl(&mut self, buffer: &EGLBuffer) -> Result<Self::Texture, Self::Error> { fn import_egl(&mut self, buffer: &EGLBuffer) -> Result<Self::TextureId, Self::Error> {
if !self.extensions.iter().any(|ext| ext == "GL_OES_EGL_image") { if !self.extensions.iter().any(|ext| ext == "GL_OES_EGL_image") {
return Err(Gles2Error::GLExtensionNotSupported(&["GL_OES_EGL_image"])); return Err(Gles2Error::GLExtensionNotSupported(&["GL_OES_EGL_image"]));
} }
@ -559,7 +559,7 @@ impl Renderer for Gles2Renderer {
Ok(texture) Ok(texture)
} }
fn destroy_texture(&mut self, mut texture: Self::Texture) -> Result<(), Self::Error> { fn destroy_texture(&mut self, mut texture: Self::TextureId) -> Result<(), Self::Error> {
self.make_current()?; self.make_current()?;
unsafe { unsafe {
@ -612,7 +612,7 @@ impl Renderer for Gles2Renderer {
Ok(()) Ok(())
} }
fn render_texture(&mut self, tex: &Self::Texture, mut matrix: Matrix3<f32>, alpha: f32) -> Result<(), Self::Error> { fn render_texture(&mut self, tex: &Self::TextureId, mut matrix: Matrix3<f32>, alpha: f32) -> Result<(), Self::Error> {
self.make_current()?; self.make_current()?;
if self.current_projection.is_none() { if self.current_projection.is_none() {
return Err(Gles2Error::UnconstraintRenderingOperation); return Err(Gles2Error::UnconstraintRenderingOperation);

View File

@ -134,27 +134,27 @@ pub trait Texture {
pub trait Renderer { pub trait Renderer {
type Error: Error; type Error: Error;
type Texture: Texture; type TextureId: Texture;
#[cfg(feature = "image")] #[cfg(feature = "image")]
fn import_bitmap<C: std::ops::Deref<Target=[u8]>>(&mut self, image: &image::ImageBuffer<image::Rgba<u8>, C>) -> Result<Self::Texture, Self::Error>; fn import_bitmap<C: std::ops::Deref<Target=[u8]>>(&mut self, image: &image::ImageBuffer<image::Rgba<u8>, C>) -> Result<Self::TextureId, Self::Error>;
#[cfg(feature = "wayland_frontend")] #[cfg(feature = "wayland_frontend")]
fn shm_formats(&self) -> &[wl_shm::Format] { fn shm_formats(&self) -> &[wl_shm::Format] {
// Mandatory // Mandatory
&[wl_shm::Format::Argb8888, wl_shm::Format::Xrgb8888] &[wl_shm::Format::Argb8888, wl_shm::Format::Xrgb8888]
} }
#[cfg(feature = "wayland_frontend")] #[cfg(feature = "wayland_frontend")]
fn import_shm(&mut self, buffer: &wl_buffer::WlBuffer) -> Result<Self::Texture, Self::Error>; fn import_shm(&mut self, buffer: &wl_buffer::WlBuffer) -> Result<Self::TextureId, Self::Error>;
#[cfg(feature = "wayland_frontend")] #[cfg(feature = "wayland_frontend")]
fn import_egl(&mut self, buffer: &EGLBuffer) -> Result<Self::Texture, Self::Error>; fn import_egl(&mut self, buffer: &EGLBuffer) -> Result<Self::TextureId, Self::Error>;
fn destroy_texture(&mut self, texture: Self::Texture) -> Result<(), Self::Error>; fn destroy_texture(&mut self, texture: Self::TextureId) -> Result<(), Self::Error>;
fn begin(&mut self, width: u32, height: u32, transform: Transform) -> Result<(), <Self as Renderer>::Error>; fn begin(&mut self, width: u32, height: u32, transform: Transform) -> Result<(), <Self as Renderer>::Error>;
fn finish(&mut self) -> Result<(), SwapBuffersError>; fn finish(&mut self) -> Result<(), SwapBuffersError>;
fn clear(&mut self, color: [f32; 4]) -> Result<(), Self::Error>; fn clear(&mut self, color: [f32; 4]) -> Result<(), Self::Error>;
fn render_texture(&mut self, texture: &Self::Texture, matrix: Matrix3<f32>, alpha: f32) -> Result<(), Self::Error>; fn render_texture(&mut self, texture: &Self::TextureId, matrix: Matrix3<f32>, alpha: f32) -> Result<(), Self::Error>;
fn render_texture_at(&mut self, texture: &Self::Texture, pos: (i32, i32), transform: Transform, alpha: f32) -> Result<(), Self::Error> { fn render_texture_at(&mut self, texture: &Self::TextureId, pos: (i32, i32), transform: Transform, alpha: f32) -> Result<(), Self::Error> {
let mut mat = Matrix3::<f32>::identity(); let mut mat = Matrix3::<f32>::identity();
// position and scale // position and scale

View File

@ -258,10 +258,10 @@ impl WinitGraphicsBackend {
impl Renderer for WinitGraphicsBackend { impl Renderer for WinitGraphicsBackend {
type Error = Gles2Error; type Error = Gles2Error;
type Texture = Gles2Texture; type TextureId = Gles2Texture;
#[cfg(feature = "image")] #[cfg(feature = "image")]
fn import_bitmap<C: std::ops::Deref<Target=[u8]>>(&mut self, image: &image::ImageBuffer<image::Rgba<u8>, C>) -> Result<Self::Texture, Self::Error> { fn import_bitmap<C: std::ops::Deref<Target=[u8]>>(&mut self, image: &image::ImageBuffer<image::Rgba<u8>, C>) -> Result<Self::TextureId, Self::Error> {
self.renderer.import_bitmap(image) self.renderer.import_bitmap(image)
} }
@ -271,16 +271,16 @@ impl Renderer for WinitGraphicsBackend {
} }
#[cfg(feature = "wayland_frontend")] #[cfg(feature = "wayland_frontend")]
fn import_shm(&mut self, buffer: &wl_buffer::WlBuffer) -> Result<Self::Texture, Self::Error> { fn import_shm(&mut self, buffer: &wl_buffer::WlBuffer) -> Result<Self::TextureId, Self::Error> {
self.renderer.import_shm(buffer) self.renderer.import_shm(buffer)
} }
#[cfg(feature = "wayland_frontend")] #[cfg(feature = "wayland_frontend")]
fn import_egl(&mut self, buffer: &EGLBuffer) -> Result<Self::Texture, Self::Error> { fn import_egl(&mut self, buffer: &EGLBuffer) -> Result<Self::TextureId, Self::Error> {
self.renderer.import_egl(buffer) self.renderer.import_egl(buffer)
} }
fn destroy_texture(&mut self, texture: Self::Texture) -> Result<(), Self::Error> { fn destroy_texture(&mut self, texture: Self::TextureId) -> Result<(), Self::Error> {
self.renderer.destroy_texture(texture) self.renderer.destroy_texture(texture)
} }
@ -293,7 +293,7 @@ impl Renderer for WinitGraphicsBackend {
self.renderer.clear(color) self.renderer.clear(color)
} }
fn render_texture(&mut self, texture: &Self::Texture, matrix: Matrix3<f32>, alpha: f32) -> Result<(), Self::Error> { fn render_texture(&mut self, texture: &Self::TextureId, matrix: Matrix3<f32>, alpha: f32) -> Result<(), Self::Error> {
self.renderer.render_texture(texture, matrix, alpha) self.renderer.render_texture(texture, matrix, alpha)
} }