vispy.gloo.texture module#

class vispy.gloo.texture.BaseTexture(data=None, format=None, resizable=True, interpolation=None, wrapping=None, shape=None, internalformat=None, resizeable=None)#

Bases: GLObject

A Texture is used to represent a topological set of scalar values.

Parameters:
datandarray | tuple | None

Texture data in the form of a numpy array (or something that can be turned into one). A tuple with the shape of the texture can also be given.

formatstr | enum | None

The format of the texture: ‘luminance’, ‘alpha’, ‘luminance_alpha’, ‘rgb’, or ‘rgba’. If not given the format is chosen automatically based on the number of channels. When the data has one channel, ‘luminance’ is assumed.

resizablebool

Indicates whether texture can be resized. Default True.

interpolationstr | None

Interpolation mode, must be one of: ‘nearest’, ‘linear’. Default ‘nearest’.

wrappingstr | None

Wrapping mode, must be one of: ‘repeat’, ‘clamp_to_edge’, ‘mirrored_repeat’. Default ‘clamp_to_edge’.

shapetuple | None

Optional. A tuple with the shape of the texture. If data is also a tuple, it will override the value of shape.

internalformatstr | None

Internal format to use.

resizeableNone

Deprecated version of resizable.

property format#

The texture format (color channels).

property internalformat#

The texture internalformat.

property interpolation#

Texture interpolation for minification and magnification.

resize(shape, format=None, internalformat=None)#

Set the texture size and format

Parameters:
shapetuple of integers

New texture shape in zyx order. Optionally, an extra dimention may be specified to indicate the number of color channels.

formatstr | enum | None

The format of the texture: ‘luminance’, ‘alpha’, ‘luminance_alpha’, ‘rgb’, or ‘rgba’. If not given the format is chosen automatically based on the number of channels. When the data has one channel, ‘luminance’ is assumed.

internalformatstr | enum | None

The internal (storage) format of the texture: ‘luminance’, ‘alpha’, ‘r8’, ‘r16’, ‘r16f’, ‘r32f’; ‘luminance_alpha’, ‘rg8’, ‘rg16’, ‘rg16f’, ‘rg32f’; ‘rgb’, ‘rgb8’, ‘rgb16’, ‘rgb16f’, ‘rgb32f’; ‘rgba’, ‘rgba8’, ‘rgba16’, ‘rgba16f’, ‘rgba32f’. If None, the internalformat is chosen automatically based on the number of channels. This is a hint which may be ignored by the OpenGL implementation.

set_data(data, offset=None, copy=False)#

Set texture data

Parameters:
datandarray

Data to be uploaded

offset: int | tuple of ints

Offset in texture where to start copying data

copy: bool

Since the operation is deferred, data may change before data is actually uploaded to GPU memory. Asking explicitly for a copy will prevent this behavior.

Notes

This operation implicitly resizes the texture to the shape of the data if given offset is None.

property shape#

Data shape (last dimension indicates number of color channels)

property wrapping#

Texture wrapping mode

class vispy.gloo.texture.Texture1D(data=None, format=None, resizable=True, interpolation=None, wrapping=None, shape=None, internalformat=None, resizeable=None)#

Bases: BaseTexture

One dimensional texture

Parameters:
datandarray | tuple | None

Texture data in the form of a numpy array (or something that can be turned into one). A tuple with the shape of the texture can also be given.

formatstr | enum | None

The format of the texture: ‘luminance’, ‘alpha’, ‘luminance_alpha’, ‘rgb’, or ‘rgba’. If not given the format is chosen automatically based on the number of channels. When the data has one channel, ‘luminance’ is assumed.

resizablebool

Indicates whether texture can be resized. Default True.

interpolationstr | None

Interpolation mode, must be one of: ‘nearest’, ‘linear’. Default ‘nearest’.

wrappingstr | None

Wrapping mode, must be one of: ‘repeat’, ‘clamp_to_edge’, ‘mirrored_repeat’. Default ‘clamp_to_edge’.

shapetuple | None

Optional. A tuple with the shape of the texture. If data is also a tuple, it will override the value of shape.

internalformatstr | None

Internal format to use.

resizeableNone

Deprecated version of resizable.

property glsl_sample#

GLSL function that samples the texture.

property glsl_sampler_type#

GLSL type of the sampler.

property glsl_type#

GLSL declaration strings required for a variable to hold this data.

property width#

Texture width

class vispy.gloo.texture.Texture2D(data=None, format=None, resizable=True, interpolation=None, wrapping=None, shape=None, internalformat=None, resizeable=None)#

Bases: BaseTexture

Two dimensional texture

Parameters:
datandarray

Texture data shaped as W, or a tuple with the shape for the texture (W).

formatstr | enum | None

The format of the texture: ‘luminance’, ‘alpha’, ‘luminance_alpha’, ‘rgb’, or ‘rgba’. If not given the format is chosen automatically based on the number of channels. When the data has one channel, ‘luminance’ is assumed.

resizablebool

Indicates whether texture can be resized. Default True.

interpolationstr

Interpolation mode, must be one of: ‘nearest’, ‘linear’. Default ‘nearest’.

wrappingstr

Wrapping mode, must be one of: ‘repeat’, ‘clamp_to_edge’, ‘mirrored_repeat’. Default ‘clamp_to_edge’.

shapetuple

Optional. A tuple with the shape HxW. If data is also a tuple, it will override the value of shape.

internalformatstr | None

Internal format to use.

resizeableNone

Deprecated version of resizable.

property glsl_sample#

GLSL function that samples the texture.

property glsl_sampler_type#

GLSL type of the sampler.

property glsl_type#

GLSL declaration strings required for a variable to hold this data.

property height#

Texture height

property width#

Texture width

class vispy.gloo.texture.Texture3D(data=None, format=None, resizable=True, interpolation=None, wrapping=None, shape=None, internalformat=None, resizeable=None)#

Bases: BaseTexture

Three dimensional texture

Parameters:
datandarray | tuple | None

Texture data in the form of a numpy array (or something that can be turned into one). A tuple with the shape of the texture can also be given.

formatstr | enum | None

The format of the texture: ‘luminance’, ‘alpha’, ‘luminance_alpha’, ‘rgb’, or ‘rgba’. If not given the format is chosen automatically based on the number of channels. When the data has one channel, ‘luminance’ is assumed.

resizablebool

Indicates whether texture can be resized. Default True.

interpolationstr | None

Interpolation mode, must be one of: ‘nearest’, ‘linear’. Default ‘nearest’.

wrappingstr | None

Wrapping mode, must be one of: ‘repeat’, ‘clamp_to_edge’, ‘mirrored_repeat’. Default ‘clamp_to_edge’.

shapetuple | None

Optional. A tuple with the shape of the texture. If data is also a tuple, it will override the value of shape.

internalformatstr | None

Internal format to use.

resizeableNone

Deprecated version of resizable.

property depth#

Texture depth

property glsl_sample#

GLSL function that samples the texture.

property glsl_sampler_type#

GLSL type of the sampler.

property glsl_type#

GLSL declaration strings required for a variable to hold this data.

property height#

Texture height

property width#

Texture width

class vispy.gloo.texture.TextureAtlas(shape=(1024, 1024), dtype=<class 'numpy.float32'>)#

Bases: Texture2D

Group multiple small data regions into a larger texture.

The algorithm is based on the article by Jukka Jylänki : “A Thousand Ways to Pack the Bin - A Practical Approach to Two-Dimensional Rectangle Bin Packing”, February 27, 2010. More precisely, this is an implementation of the Skyline Bottom-Left algorithm based on C++ sources provided by Jukka Jylänki at: http://clb.demon.fi/files/RectangleBinPack/.

Parameters:
shapetuple of int

Texture shape (optional).

dtypenumpy.dtype object

Texture starting data type (default: float32)

Notes

This creates a 2D texture that holds 1D float32 data. An example of simple access:

>>> atlas = TextureAtlas()
>>> bounds = atlas.get_free_region(20, 30)
>>> atlas.set_region(bounds, np.random.rand(20, 30).T)
get_free_region(width, height)#

Get a free region of given size and allocate it

Parameters:
widthint

Width of region to allocate

heightint

Height of region to allocate

Returns:
boundstuple | None

A newly allocated region as (x, y, w, h) or None (if failed).

class vispy.gloo.texture.TextureCube(data=None, format=None, resizable=True, interpolation=None, wrapping=None, shape=None, internalformat=None, resizeable=None)#

Bases: BaseTexture

Texture Cube

Parameters:
datandarray | tuple | None

Texture data in the form of a numpy array (or something that can be turned into one). A tuple with the shape of the texture can also be given.

formatstr | enum | None

The format of the texture: ‘luminance’, ‘alpha’, ‘luminance_alpha’, ‘rgb’, or ‘rgba’. If not given the format is chosen automatically based on the number of channels. When the data has one channel, ‘luminance’ is assumed.

resizablebool

Indicates whether texture can be resized. Default True.

interpolationstr | None

Interpolation mode, must be one of: ‘nearest’, ‘linear’. Default ‘nearest’.

wrappingstr | None

Wrapping mode, must be one of: ‘repeat’, ‘clamp_to_edge’, ‘mirrored_repeat’. Default ‘clamp_to_edge’.

shapetuple | None

Optional. A tuple with the shape of the texture. If data is also a tuple, it will override the value of shape.

internalformatstr | None

Internal format to use.

resizeableNone

Deprecated version of resizable.

property depth#

Texture depth

property glsl_sample#

GLSL function that samples the texture.

property glsl_sampler_type#

GLSL type of the sampler.

property glsl_type#

GLSL declaration strings required for a variable to hold this data.

property height#

Texture height

property width#

Texture width

class vispy.gloo.texture.TextureEmulated3D(data=None, format=None, resizable=True, interpolation=None, wrapping=None, shape=None, internalformat=None, resizeable=None)#

Bases: Texture2D

Two dimensional texture that is emulating a three dimensional texture

Parameters:
datandarray | tuple | None

Texture data in the form of a numpy array (or something that can be turned into one). A tuple with the shape of the texture can also be given.

formatstr | enum | None

The format of the texture: ‘luminance’, ‘alpha’, ‘luminance_alpha’, ‘rgb’, or ‘rgba’. If not given the format is chosen automatically based on the number of channels. When the data has one channel, ‘luminance’ is assumed.

resizablebool

Indicates whether texture can be resized. Default True.

interpolationstr | None

Interpolation mode, must be one of: ‘nearest’, ‘linear’. Default ‘nearest’.

wrappingstr | None

Wrapping mode, must be one of: ‘repeat’, ‘clamp_to_edge’, ‘mirrored_repeat’. Default ‘clamp_to_edge’.

shapetuple | None

Optional. A tuple with the shape of the texture. If data is also a tuple, it will override the value of shape.

internalformatstr | None

Internal format to use.

resizeableNone

Deprecated version of resizable.

property depth#

Texture depth

property glsl_sample#

GLSL function that samples the texture.

property height#

Texture height

resize(shape, format=None, internalformat=None)#

Set the texture size and format

Parameters:
shapetuple of integers

New texture shape in zyx order. Optionally, an extra dimention may be specified to indicate the number of color channels.

formatstr | enum | None

The format of the texture: ‘luminance’, ‘alpha’, ‘luminance_alpha’, ‘rgb’, or ‘rgba’. If not given the format is chosen automatically based on the number of channels. When the data has one channel, ‘luminance’ is assumed.

internalformatstr | enum | None

The internal (storage) format of the texture: ‘luminance’, ‘alpha’, ‘r8’, ‘r16’, ‘r16f’, ‘r32f’; ‘luminance_alpha’, ‘rg8’, ‘rg16’, ‘rg16f’, ‘rg32f’; ‘rgb’, ‘rgb8’, ‘rgb16’, ‘rgb16f’, ‘rgb32f’; ‘rgba’, ‘rgba8’, ‘rgba16’, ‘rgba16f’, ‘rgba32f’. If None, the internalformat is chosen automatically based on the number of channels. This is a hint which may be ignored by the OpenGL implementation.

set_data(data, offset=None, copy=False)#

Set texture data

Parameters:
datandarray

Data to be uploaded

offset: int | tuple of ints

Offset in texture where to start copying data

copy: bool

Since the operation is deferred, data may change before data is actually uploaded to GPU memory. Asking explicitly for a copy will prevent this behavior.

Notes

This operation implicitely resizes the texture to the shape of the data if given offset is None.

property shape#

Data shape (last dimension indicates number of color channels)

property width#

Texture width

vispy.gloo.texture.convert_dtype_and_clip(data, dtype, copy=False)#

cast dtype to a new one, but first clip data to the new dtype’s limits if needed

vispy.gloo.texture.downcast_to_32bit_if_needed(data, copy=False, dtype=None)#

Downcast to 32bit dtype if necessary.

vispy.gloo.texture.get_dtype_limits(dtype)#