libui-ng
A portable GUI library for C
uiImage Struct Reference

A container for an image to be displayed on screen. More...

#include <ui.h>

Public Member Functions

uiImageuiNewImage (double width, double height)
 Creates a new image container. More...
 
void uiFreeImage (uiImage *i)
 Frees the image container and all associated resources. More...
 
void uiImageAppend (uiImage *i, const void *pixels, int pixelWidth, int pixelHeight, int byteStride)
 Appends a new image representation. More...
 

Detailed Description

A container for an image to be displayed on screen.

The container can hold multiple representations of the same image with the same aspect ratio but in different resolutions to support high-density displays.

Common image dimension scale factors are 1x and 2x. Providing higher density representations is entirely optional.

The system will automatically determine the correct image to render depending on the screen's pixel density.

uiImage only supports premultiplied 32-bit RGBA images.

No image file loading or image format conversion utilities are provided.

Member Function Documentation

◆ uiFreeImage()

void uiFreeImage ( uiImage i)

Frees the image container and all associated resources.

If called from a user callback, the free is deferred and ordered with any control destruction requested by that callback.

Parameters
iuiImage instance.

◆ uiImageAppend()

void uiImageAppend ( uiImage i,
const void *  pixels,
int  pixelWidth,
int  pixelHeight,
int  byteStride 
)

Appends a new image representation.

Parameters
iuiImage instance.
pixelsByte array of premultiplied pixels in [R G B A] order.
((const uint8_t *) pixels)[0] equals the R of the first pixel, [3] the A of the first pixel.
pixels must be at least byteStride * pixelHeight bytes long.
Data is copied internally. Ownership is not transferred.
pixelWidthWidth in pixels.
pixelHeightHeight in pixels.
byteStrideNumber of bytes per row of the pixel array.
Todo:
see if we either need the stride or can provide a way to get the OS-preferred stride (in cairo we do)

◆ uiNewImage()

uiImage * uiNewImage ( double  width,
double  height 
)

Creates a new image container.

Dimensions are measured in points. This is most commonly the pixel size of the 1x scaled image.

Parameters
widthWidth in points.
heightHeight in points.
Note
Both dimensions must be finite, positive, and no greater than INT_MAX.
Returns
A new uiImage instance.

The documentation for this struct was generated from the following file: