Source code for moderngl_window.loaders.texture.array

from moderngl_window.loaders.texture.pillow import PillowLoader, image_data
from moderngl_window.exceptions import ImproperlyConfigured

class Loader(PillowLoader):
    kind = 'array'

[docs] def __init__(self, meta): super().__init__(meta) self.layers = self.meta.layers if self.layers is None: raise ImproperlyConfigured("TextureArray requires layers parameter")
[docs] def load(self): """Load a texture array as described by the supplied ``TextureDescription``` Returns: moderngl.TextureArray: The TextureArray instance """ self._open_image() width, height, depth = self.image.size[0], self.image.size[1] // self.layers, self.layers components, data = image_data(self.image) texture = self.ctx.texture_array( (width, height, depth), components, data, ) texture.extra = {'meta': self.meta} if self.meta.mipmap_levels is not None: self.meta.mipmap = True if self.meta.mipmap: if isinstance(self.meta.mipmap_levels, tuple): texture.build_mipmaps(*self.meta.mipmap_levels) else: texture.build_mipmaps() if self.meta.anisotropy: texture.anisotropy = self.meta.anisotropy self._close_image() return texture