UnigineScript
The Language
Core Library
Engine Library
Node-Related Classes
Plugins Library
High-Level Systems
Samples
C++ API
API Reference
Integration Samples
Usage Examples
C++ Plugins
Content Creation
Materials
Unigine Material Library
Tutorials

WidgetSprite Class

This base class is used to create sprites, which are basically any widgets dealing with images.

A sprite has a background layer which is used to calculate a bounding box of the widget and in addition can have a number of layers. All layer including the bottom one can be assigned textures, tiled and blended.

Notice
You can transform all layers, but avoid rotating a background layer. Being used to calculate a BB, it stretches if rotated. Rotate layers instead.

See also: sprite.

WidgetSprite Class

This class inherits from Widget

Members


WidgetSprite (Gui gui, string texture = 0)

Constructor. Creates a sprite with a given texture.

Arguments

  • Gui gui - GUI, to which the new sprite will belong.
  • string texture = 0 - Path to the texture. This is an optional parameter.

int addLayer ()

Adds an empty layer with default properties to the sprite.

Return value

Number of the added layer.

int getBlendDestFunc ()

Returns the blending mode of the destination widget colour set for the first (bottom) layer of the sprite.

Return value

Blending mode (one of the GUI_BLEND_* variables).

int getBlendSrcFunc ()

Returns the blending mode of the source screen buffer colour set for the first (bottom) layer of the sprite.

Return value

Blending mode (one of the GUI_BLEND_* variables).

int getBufferMask ()

Returns the current channel mask for the whole sprite.

Return value

One of the GUI_BUFFER_* pre-defined variables.

vec4 getColor ()

Returns the current color set for the first (bottom) layer of the sprite.

Return value

Modulation color.

Image getImage ()

Returns the loaded into memory image that is currently set for the first (bottom) layer of the sprite.

Return value

Pointer to the image.

int getLayerBlendDestFunc (int layer)

Returns the blending mode of the destination widget colour set for a given layer of the sprite.

Arguments

  • int layer - Layer number in range from 0 to the total number of sprite layers.

Return value

Blending mode (one of the GUI_BLEND_* variables).

int getLayerBlendSrcFunc (int layer)

Returns the blending mode of the source screen buffer colour set for a given layer of the sprite.

Arguments

  • int layer - Layer number in range from 0 to the total number of sprite layers.

Return value

Blending mode (one of the GUI_BLEND_* variables).

int getLayerBufferMask (int layer)

Returns the current channel mask set for a given layer of the sprite.

Arguments

  • int layer - Layer number in range from 0 to the total number of sprite layers.

Return value

One of the GUI_BUFFER_* pre-defined variables.

vec4 getLayerColor (int layer)

Returns the current color set for a given layer of the sprite.

Arguments

  • int layer - Layer number in range from 0 to the total number of sprite layers.

Return value

Modulation color.

int getLayerHeight (int layer)

Returns the current height of the layer (regardless of layer transformation).

Arguments

  • int layer - Layer number in range from 0 to the total number of sprite layers.

Return value

Height of the layer in units.

Image getLayerImage (int layer)

Returns the current image set for a given layer of the sprite.

Arguments

  • int layer - Layer number in range from 0 to the total number of sprite layers.

Return value

Used image.

vec4 getLayerTexCoord (int layer)

Returns the current coordinates of the texture set for a given layer of the sprite.

Arguments

  • int layer - Layer number in range from 0 to the total number of sprite layers.

Return value

Texture coordinates. The first pair of coordinates (x and y) is for the upper left corner, the second pair (z and w) is for the lower right corner.

string getLayerTexture (int layer)

Returns the current texture set for a given layer of the sprite.

Arguments

  • int layer - Layer number in range from 0 to the total number of sprite layers.

Return value

Path to the texture.

mat4 getLayerTransform (int layer)

Returns the current transformation matrix set for a given layer of the sprite.

Arguments

  • int layer - Layer number in range from 0 to the total number of sprite layers.

Return value

Transformation matrix.

int getLayerWidth (int layer)

Returns the current width of the layer (regardless of layer transformation).

Arguments

  • int layer - Layer number in range from 0 to the total number of sprite layers.

Return value

Width of the layer in units.

int getLayerWrapRepeat (int layer)

Returns a value indicating if texture tiling is enabled for a given layer of the sprite.

Arguments

  • int layer - Layer number in range from 0 to the total number of sprite layers.

Return value

1 if texture tiling is enabled; 0 if disabled.

int getNumLayers ()

Returns the total number of layers in the sprite.

Return value

Number of layers.

vec4 getTexCoord ()

Returns the current coordinates of the texture set for the first (bottom) layer of the sprite.

Return value

Texture coordinates. The first pair of coordinates (x and y) is for the upper left corner, the second pair (z and w) is for the lower right corner.

string getTexture ()

Returns the texture from a file that is currently set for the first (bottom) layer of the sprite.

Return value

Path to the texture.

mat4 getTransform ()

Returns the current transformation matrix set for the first (bottom) layer of the sprite.

Return value

Transformation matrix.

int getWrapRepeat ()

Returns a value indicating if texture tiling is enabled for the first (bottom) layer of the sprite.

Return value

1 if texture tiling is enabled; 0 if disabled.

int isLayerEnabled (int layer)

Returns a value indicating if the layer is enabled for rendering.

Arguments

  • int layer - Layer number in range from 0 to the total number of sprite layers.

Return value

1 if the layer is enabled; 0 if disabled.

void removeLayer (int layer)

Removes a given layer from the sprite.

Arguments

  • int layer - Layer number.

void setBlendFunc (int source, int destination)

Sets blending coefficients for the first (bottom) layer of the sprite. This layer always exists in the sprite.

Arguments

  • int source - Blending mode for the source screen buffer color (one of the GUI_BLEND_* variables).
  • int destination - Blending mode for the destination widget color (one of the GUI_BLEND_* variables).

void setBufferMask (int mask)

Sets a channel mask for the whole sprite. If a mask for a channel exists, one can draw in this channel. The default is GUI_BUFFER_ALL .

Arguments

void setColor (vec4 color)

Sets a color for the first (bottom) layer of the sprite. This layer always exists in the sprite.

Arguments

  • vec4 color - Modulation color.

void setImage (Image image, int dynamic = 0)

Sets a loaded into memory image for the first (bottom) layer of the sprite. This layer always exists in the sprite. An additional flag can be set in case the sprite image is going to be updated often or even each frame (for optimized memory management).

Arguments

  • Image image - Pointer to the image.
  • int dynamic = 0 - Positive number if the image will be updated each frame; otherwise, 0.

void setLayerBlendFunc (int layer, int source, int destination)

Sets blending coefficients for a given layer of the sprite.

Arguments

  • int layer - Layer number in range from 0 to the total number of sprite layers.
  • int source - Blending mode for the source color (one of the GUI_BLEND_* variables).
  • int destination - Blending mode for the destination color (one of the GUI_BLEND_* variables).

void setLayerBufferMask (int layer, int mask)

Sets a channel mask for a given layer of the sprite. If a mask for a channel exists, one can draw in this channel. The default is GUI_BUFFER_ALL .

Arguments

  • int layer - Layer number in range from 0 to the total number of sprite layers.
  • int mask - One of the GUI_BUFFER_* pre-defined variables.

void setLayerColor (int layer, vec4 color)

Sets a color for a given layer of the sprite.

Arguments

  • int layer - Layer number in range from 0 to the total number of sprite layers.
  • vec4 color - Modulation color.

void setLayerEnabled (int layer, int enable)

Sets a value indicating if the layer is enabled for rendering. The default is 1.

Arguments

  • int layer - Layer number in range from 0 to the total number of sprite layers.
  • int enable - 1 to enable the layer; 0 to disable it.

void setLayerImage (int layer, Image image, int dynamic = 0)

Sets an image for a given layer of the sprite. An additional flag can be set in case the sprite image is going to be updated often or even each frame (for optimized memory management).

Arguments

  • int layer - Layer number in range from 0 to the total number of sprite layers.
  • Image image - Image to set.
  • int dynamic = 0 - Positive number if the image will be updated each frame; otherwise, 0.

void setLayerTexCoord (int layer, vec4 texcoord)

Sets the coordinates of the texture for a given layer of the sprite.

Arguments

  • int layer - Layer number in range from 0 to the total number of sprite layers.
  • vec4 texcoord - Texture coordinates. The first pair of coordinates (x and y) is for the upper left corner, the second pair (z and w) is for the lower right corner.

void setLayerTexture (int layer, string texture)

Sets a texture for a given layer of the sprite.

Arguments

  • int layer - Layer number in range from 0 to the total number of sprite layers.
  • string texture - Path to the texture.

void setLayerTransform (int layer, mat4 matrix)

Sets a transformation matrix for a given layer of the sprite.

Arguments

  • int layer - Layer number in range from 0 to the total number of sprite layers.
  • mat4 matrix - Transformation matrix.

void setLayerWrapRepeat (int layer, int repeat)

Sets texture tiling for a given layer of the sprite.
Notice
To see tiling in effect, you need to transform sprite texture coordinates via setLayerTexCoord().

Arguments

  • int layer - Layer number in range from 0 to the total number of sprite layers.
  • int repeat - Positive number to enable texture tiling; 0 to disable it.

Examples

Source code (UnigineScript)
sprite = new WidgetSprite(gui);
sprite.addLayer();
sprite.setLayerTexture(1,"samples/image.png");
sprite.setLayerTexCoord(1,vec4(0.0f,0.0f,4.0f,4.0f));
sprite.setLayerWrapRepeat(1,1);

void setTexCoord (vec4 texcoord)

Sets the coordinates of the texture for the first (bottom) layer of the sprite. This layer always exists in the sprite.

Arguments

  • vec4 texcoord - Texture coordinates. The first pair of coordinates (x and y) is for the upper left corner, the second pair (z and w) is for the lower right corner.

void setTexture (string texture)

Sets a texture from a file for the first (bottom) layer of the sprite. This layer always exists in the sprite.

Arguments

  • string texture - Path to the texture.

void setTransform (mat4 matrix)

Sets a transformation matrix for the first (bottom) layer of the sprite. This layer always exists in the sprite.

Arguments

  • mat4 matrix - Transformation matrix.

void setWrapRepeat (int repeat)

Sets texture tiling for the first (bottom) layer of the sprite. This layer always exists in the sprite. The default is 0 (no tiling).
Notice
To see tiling in effect, you need to transform sprite texture coordinates via setTexCoord().

Arguments

  • int repeat - Positive number to enable texture tiling; 0 to disable it.

Examples

Source code (UnigineScript)
sprite = new WidgetSprite(gui,"samples/image.png");
sprite.setTexCoord(vec4(0.0f,0.0f,4.0f,4.0f));
sprite.setWrapRepeat(1);
Last update: 2017-07-03