use crate::assets::{TextureDesc, TextureHandle, TextureSamplerDesc, TextureSourceFormat};
use crate::material::TextureColorSpace;
#[derive(Debug, Clone, Copy, PartialEq, Eq)]
pub struct SceneTextureInspection {
texture: TextureHandle,
color_space: TextureColorSpace,
sampler: TextureSamplerDesc,
source_format: TextureSourceFormat,
decoded_dimensions: Option<(u32, u32)>,
has_decoded_pixels: bool,
}
impl SceneTextureInspection {
pub(super) fn new(texture: TextureHandle, desc: TextureDesc) -> Self {
Self {
texture,
color_space: desc.color_space(),
sampler: desc.sampler(),
source_format: desc.source_format(),
decoded_dimensions: desc.decoded_dimensions(),
has_decoded_pixels: desc.has_decoded_pixels(),
}
}
pub const fn texture(&self) -> TextureHandle {
self.texture
}
pub const fn color_space(&self) -> TextureColorSpace {
self.color_space
}
pub const fn sampler(&self) -> TextureSamplerDesc {
self.sampler
}
pub const fn source_format(&self) -> TextureSourceFormat {
self.source_format
}
pub const fn decoded_dimensions(&self) -> Option<(u32, u32)> {
self.decoded_dimensions
}
pub const fn has_decoded_pixels(&self) -> bool {
self.has_decoded_pixels
}
}