librashader_runtime_d3d11/
texture.rs

1use crate::error::Result;
2use crate::framebuffer::OwnedImage;
3use librashader_common::{FilterMode, WrapMode};
4use windows::Win32::Graphics::Direct3D11::ID3D11ShaderResourceView;
5
6#[derive(Debug, Clone)]
7pub struct InputTexture {
8    pub view: ID3D11ShaderResourceView,
9    pub filter: FilterMode,
10    pub wrap_mode: WrapMode,
11}
12
13impl InputTexture {
14    pub(crate) fn from_framebuffer(
15        fbo: &OwnedImage,
16        wrap_mode: WrapMode,
17        filter: FilterMode,
18    ) -> Result<Self> {
19        Ok(InputTexture {
20            view: fbo.create_shader_resource_view()?,
21            filter,
22            wrap_mode,
23        })
24    }
25}
26
27impl AsRef<InputTexture> for InputTexture {
28    fn as_ref(&self) -> &InputTexture {
29        self
30    }
31}