[−][src]Struct web_glitz::image::texture_2d::LevelSubImage
Returned from Level::sub_image, a reference to a sub-region of a Level's image.
See Level::sub_image for details.
Implementations
impl<'a, F> LevelSubImage<'a, F> where
F: TextureFormat, [src]
F: TextureFormat,
pub fn level(&self) -> usize[src]
Returns the index of the mipmap level this LevelSubImage references.
pub fn region(&self) -> Region2D[src]
Returns the Region2D of the level this LevelSubImage references.
pub fn width(&self) -> u32[src]
Returns the width of this LevelSubImage.
pub fn height(&self) -> u32[src]
Returns the height of this LevelSubImage.
pub fn sub_image(&self, region: Region2D) -> LevelSubImage<'_, F>[src]
Returns a reference to the sub-region of this LevelSubImage's image described by region.
See also Level::sub_image.
pub fn upload_command<D, T>(
&self,
data: Image2DSource<D, T>
) -> UploadCommand<D, T, F> where
T: PixelUnpack<F>, [src]
&self,
data: Image2DSource<D, T>
) -> UploadCommand<D, T, F> where
T: PixelUnpack<F>,
Returns a command which, when executed, replaces the image data in this LevelSubImage's
image region with the image data provided in data.
The image data must be stored as a PixelUnpack type that is suitable for the texture's TextureFormat.
If the dimensions of the image provided in data are not sufficient to cover the
LevelSubImage region entirely, starting from the region's origin, then only the region of
overlap is updated (note that the origin of a region is at its lower left corner). For
example, given a LevelSubImage with a width of 256 pixels and a height of 256 pixels, and
data with a width of 128 pixels and a height of 128 pixels, then only the lower left
quadrant of the LevelSubImage's region is updated. If the dimensions of the image provided
in data would, when starting from the LevelSubImage's origin, cover more than the
LevelSubImage's region (the width and/or height of data is/are greater than the width
and/or height of the LevelSubImage's region), then any pixels that would fall outside of
the LevelSubImage's region are ignored. For example, given a LevelSubImage with a width
of 256 pixels and a height of 256 pixels, and data with a width of 256 pixels and a height
of 512 pixels, then only the lower half of the image in data is used to update the
LevelSubImage and the upper half is ignored.
Example
use web_glitz::image::{Image2DSource, MipmapLevels, Region2D}; use web_glitz::image::format::RGB8; use web_glitz::image::texture_2d::Texture2DDescriptor; let texture = context.try_create_texture_2d(&Texture2DDescriptor { format: RGB8, width: 256, height: 256, levels: MipmapLevels::Complete }).unwrap(); let base_level = texture.base_level(); let sub_image = base_level.sub_image(Region2D::Area((0, 0), 128, 128)); let pixels: Vec<[u8; 3]> = vec![[255, 0, 0]; 128 * 128]; let data = Image2DSource::from_pixels(pixels, 128, 128).unwrap(); context.submit(sub_image.upload_command(data));
pub fn pack_to_buffer_command<P>(
&self,
buffer: BufferView<'_, [P]>
) -> PackToBufferCommand<F, P> where
P: PixelPack<F>, [src]
&self,
buffer: BufferView<'_, [P]>
) -> PackToBufferCommand<F, P> where
P: PixelPack<F>,
Trait Implementations
impl<'a, F> BlitSource for Texture2DLevelSubImage<'a, F> where
F: TextureFormat + 'static, [src]
F: TextureFormat + 'static,
type Format = F
The image storage format used by the source image.
fn descriptor(&self) -> BlitSourceDescriptor[src]
impl<'a, F: Hash> Hash for LevelSubImage<'a, F>[src]
fn hash<__H: Hasher>(&self, state: &mut __H)[src]
fn hash_slice<H>(data: &[Self], state: &mut H) where
H: Hasher, 1.3.0[src]
H: Hasher,
impl<'a, F: PartialEq> PartialEq<LevelSubImage<'a, F>> for LevelSubImage<'a, F>[src]
fn eq(&self, other: &LevelSubImage<'a, F>) -> bool[src]
fn ne(&self, other: &LevelSubImage<'a, F>) -> bool[src]
impl<'a, F> StructuralPartialEq for LevelSubImage<'a, F>[src]
Auto Trait Implementations
impl<'a, F> !RefUnwindSafe for LevelSubImage<'a, F>
impl<'a, F> !Send for LevelSubImage<'a, F>
impl<'a, F> !Sync for LevelSubImage<'a, F>
impl<'a, F> Unpin for LevelSubImage<'a, F>
impl<'a, F> !UnwindSafe for LevelSubImage<'a, F>
Blanket Implementations
impl<T> Any for T where
T: 'static + ?Sized, [src]
T: 'static + ?Sized,
impl<T> Borrow<T> for T where
T: ?Sized, [src]
T: ?Sized,
impl<T> BorrowMut<T> for T where
T: ?Sized, [src]
T: ?Sized,
fn borrow_mut(&mut self) -> &mut T[src]
impl<T> From<T> for T[src]
impl<T, U> Into<U> for T where
U: From<T>, [src]
U: From<T>,
impl<D, T> IntoBuffer<T> for D where
D: Borrow<T> + 'static,
T: Copy + 'static, [src]
D: Borrow<T> + 'static,
T: Copy + 'static,
fn into_buffer<Rc>(Self, &Rc, BufferId, UsageHint) -> Buffer<T> where
Rc: RenderingContext + Clone + 'static, [src]
Rc: RenderingContext + Clone + 'static,
impl<T, U> TryFrom<U> for T where
U: Into<T>, [src]
U: Into<T>,
type Error = Infallible
The type returned in the event of a conversion error.
fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>[src]
impl<T, U> TryInto<U> for T where
U: TryFrom<T>, [src]
U: TryFrom<T>,