2024-03-02 14:32:48 -05:00
|
|
|
use crate::error::Result;
|
2023-02-11 00:20:35 -05:00
|
|
|
use crate::framebuffer::OwnedImage;
|
2024-03-07 20:15:16 -05:00
|
|
|
use librashader_common::{FilterMode, WrapMode};
|
2024-08-09 00:55:58 -04:00
|
|
|
use windows::Win32::Graphics::Direct3D11::ID3D11ShaderResourceView;
|
2023-01-13 02:54:16 -05:00
|
|
|
|
2022-11-28 21:00:54 -05:00
|
|
|
#[derive(Debug, Clone)]
|
2023-01-15 03:01:23 -05:00
|
|
|
pub struct InputTexture {
|
2024-03-07 20:15:16 -05:00
|
|
|
pub view: ID3D11ShaderResourceView,
|
2022-11-27 02:21:36 -05:00
|
|
|
pub filter: FilterMode,
|
|
|
|
pub wrap_mode: WrapMode,
|
2022-11-26 02:38:15 -05:00
|
|
|
}
|
|
|
|
|
2023-01-13 02:54:16 -05:00
|
|
|
impl InputTexture {
|
2023-01-15 03:01:23 -05:00
|
|
|
pub(crate) fn from_framebuffer(
|
2023-02-11 00:20:35 -05:00
|
|
|
fbo: &OwnedImage,
|
2022-12-21 21:39:31 -05:00
|
|
|
wrap_mode: WrapMode,
|
|
|
|
filter: FilterMode,
|
|
|
|
) -> Result<Self> {
|
2023-01-13 02:54:16 -05:00
|
|
|
Ok(InputTexture {
|
2024-03-07 20:15:16 -05:00
|
|
|
view: fbo.create_shader_resource_view()?,
|
2022-12-01 00:11:41 -05:00
|
|
|
filter,
|
2022-12-21 21:39:31 -05:00
|
|
|
wrap_mode,
|
2022-12-01 00:11:41 -05:00
|
|
|
})
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
2023-01-15 03:01:23 -05:00
|
|
|
impl AsRef<InputTexture> for InputTexture {
|
|
|
|
fn as_ref(&self) -> &InputTexture {
|
|
|
|
self
|
|
|
|
}
|
|
|
|
}
|