Struct webrender::texture_pack::AllocatorList

source ·
pub struct AllocatorList<Allocator: AtlasAllocator, TextureParameters> {
    units: SmallVec<[TextureUnit<Allocator>; 1]>,
    size: i32,
    atlas_parameters: Allocator::Parameters,
    texture_parameters: TextureParameters,
}

Fields§

§units: SmallVec<[TextureUnit<Allocator>; 1]>§size: i32§atlas_parameters: Allocator::Parameters§texture_parameters: TextureParameters

Implementations§

source§

impl<Allocator: AtlasAllocator, TextureParameters> AllocatorList<Allocator, TextureParameters>

source

pub fn new( size: i32, atlas_parameters: Allocator::Parameters, texture_parameters: TextureParameters, ) -> Self

source

pub fn allocate( &mut self, requested_size: DeviceIntSize, texture_alloc_cb: &mut dyn FnMut(DeviceIntSize, &TextureParameters) -> CacheTextureId, ) -> (CacheTextureId, AllocId, DeviceIntRect)

source

pub fn deallocate(&mut self, texture_id: CacheTextureId, alloc_id: AllocId)

source

pub fn release_empty_textures<'l>( &mut self, texture_dealloc_cb: &'l mut dyn FnMut(CacheTextureId), )

source

pub fn clear(&mut self, texture_dealloc_cb: &mut dyn FnMut(CacheTextureId))

source

pub fn dump_as_svg(&self, output: &mut dyn Write) -> Result<()>

source

pub fn allocated_space(&self) -> i32

source

pub fn allocated_textures(&self) -> usize

source

pub fn size(&self) -> i32

source§

impl<P> AllocatorList<ShelfAllocator, P>

source

pub fn try_compaction( &mut self, max_pixels: i32, changes: &mut Vec<CompactionChange>, )

Attempt to move some allocations from a texture to another to reduce the number of textures.

Trait Implementations§

source§

impl<Allocator: AtlasAllocator, TextureParameters> AtlasAllocatorList<TextureParameters> for AllocatorList<Allocator, TextureParameters>

source§

fn allocate( &mut self, requested_size: DeviceIntSize, texture_alloc_cb: &mut dyn FnMut(DeviceIntSize, &TextureParameters) -> CacheTextureId, ) -> (CacheTextureId, AllocId, DeviceIntRect)

Allocate a rectangle. Read more
source§

fn set_handle( &mut self, texture_id: CacheTextureId, alloc_id: AllocId, handle: &TextureCacheHandle, )

source§

fn deallocate(&mut self, texture_id: CacheTextureId, alloc_id: AllocId)

Deallocate a rectangle and return its size.
source§

fn texture_parameters(&self) -> &TextureParameters

source§

impl<Allocator, TextureParameters> Serialize for AllocatorList<Allocator, TextureParameters>
where Allocator: Serialize + AtlasAllocator, TextureParameters: Serialize, Allocator::Parameters: Serialize,

source§

fn serialize<__S>(&self, __serializer: __S) -> Result<__S::Ok, __S::Error>
where __S: Serializer,

Serialize this value into the given Serde serializer. Read more

Auto Trait Implementations§

§

impl<Allocator, TextureParameters> Freeze for AllocatorList<Allocator, TextureParameters>
where <Allocator as AtlasAllocator>::Parameters: Freeze, TextureParameters: Freeze, Allocator: Freeze,

§

impl<Allocator, TextureParameters> RefUnwindSafe for AllocatorList<Allocator, TextureParameters>
where <Allocator as AtlasAllocator>::Parameters: RefUnwindSafe, TextureParameters: RefUnwindSafe, Allocator: RefUnwindSafe,

§

impl<Allocator, TextureParameters> Send for AllocatorList<Allocator, TextureParameters>
where <Allocator as AtlasAllocator>::Parameters: Send, TextureParameters: Send, Allocator: Send,

§

impl<Allocator, TextureParameters> Sync for AllocatorList<Allocator, TextureParameters>
where <Allocator as AtlasAllocator>::Parameters: Sync, TextureParameters: Sync, Allocator: Sync,

§

impl<Allocator, TextureParameters> Unpin for AllocatorList<Allocator, TextureParameters>
where <Allocator as AtlasAllocator>::Parameters: Unpin, TextureParameters: Unpin, Allocator: Unpin,

§

impl<Allocator, TextureParameters> UnwindSafe for AllocatorList<Allocator, TextureParameters>
where <Allocator as AtlasAllocator>::Parameters: UnwindSafe, TextureParameters: UnwindSafe, Allocator: RefUnwindSafe + UnwindSafe,

Blanket Implementations§

source§

impl<T> Any for T
where T: 'static + ?Sized,

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
source§

impl<T> Borrow<T> for T
where T: ?Sized,

source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
source§

impl<T> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

source§

impl<T, U> Into<U> for T
where U: From<T>,

source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

source§

impl<T> IntoEither for T

source§

fn into_either(self, into_left: bool) -> Either<Self, Self>

Converts self into a Left variant of Either<Self, Self> if into_left is true. Converts self into a Right variant of Either<Self, Self> otherwise. Read more
source§

fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
where F: FnOnce(&Self) -> bool,

Converts self into a Left variant of Either<Self, Self> if into_left(&self) returns true. Converts self into a Right variant of Either<Self, Self> otherwise. Read more
source§

impl<T> Pointable for T

source§

const ALIGN: usize = _

The alignment of pointer.
§

type Init = T

The type for initializers.
source§

unsafe fn init(init: <T as Pointable>::Init) -> usize

Initializes a with the given initializer. Read more
source§

unsafe fn deref<'a>(ptr: usize) -> &'a T

Dereferences the given pointer. Read more
source§

unsafe fn deref_mut<'a>(ptr: usize) -> &'a mut T

Mutably dereferences the given pointer. Read more
source§

unsafe fn drop(ptr: usize)

Drops the object pointed to by the given pointer. Read more
source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

§

type Error = Infallible

The type returned in the event of a conversion error.
source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.