Ultralight C API 1.4.0
|
A thread-safe container for pixel data.
#include <Ultralight/CAPI/CAPI_Bitmap.h>
The bitmap class is used to store pixel data in a variety of formats. It intelligently manages the lifetime of the pixel buffer and provides thread-safe access to the pixel data.
To access the pixel data, you must first lock the pixels using ulBitmapLockPixels(). This will return a pointer to the pixel buffer. An example follows:
Functions | |
ULExport ULBitmap | ulCreateEmptyBitmap () |
Create empty bitmap. | |
ULExport ULBitmap | ulCreateBitmap (unsigned int width, unsigned int height, ULBitmapFormat format) |
Create bitmap with certain dimensions and pixel format. | |
ULExport ULBitmap | ulCreateBitmapFromPixels (unsigned int width, unsigned int height, ULBitmapFormat format, unsigned int row_bytes, const void *pixels, size_t size, bool should_copy) |
Create bitmap from existing pixel buffer. | |
ULExport ULBitmap | ulCreateBitmapFromCopy (ULBitmap existing_bitmap) |
Create bitmap from copy. | |
ULExport void | ulDestroyBitmap (ULBitmap bitmap) |
Destroy a bitmap (you should only destroy Bitmaps you have explicitly created via one of the creation functions above. | |
ULExport unsigned int | ulBitmapGetWidth (ULBitmap bitmap) |
Get the width in pixels. | |
ULExport unsigned int | ulBitmapGetHeight (ULBitmap bitmap) |
Get the height in pixels. | |
ULExport ULBitmapFormat | ulBitmapGetFormat (ULBitmap bitmap) |
Get the pixel format. | |
ULExport unsigned int | ulBitmapGetBpp (ULBitmap bitmap) |
Get the bytes per pixel. | |
ULExport unsigned int | ulBitmapGetRowBytes (ULBitmap bitmap) |
Get the number of bytes per row. | |
ULExport size_t | ulBitmapGetSize (ULBitmap bitmap) |
Get the size in bytes of the underlying pixel buffer. | |
ULExport bool | ulBitmapOwnsPixels (ULBitmap bitmap) |
Whether or not this bitmap owns its own pixel buffer. | |
ULExport void * | ulBitmapLockPixels (ULBitmap bitmap) |
Lock pixels for reading/writing, returns pointer to pixel buffer. | |
ULExport void | ulBitmapUnlockPixels (ULBitmap bitmap) |
Unlock pixels after locking. | |
ULExport void * | ulBitmapRawPixels (ULBitmap bitmap) |
Get raw pixel buffer– you should only call this if Bitmap is already locked. | |
ULExport bool | ulBitmapIsEmpty (ULBitmap bitmap) |
Whether or not this bitmap is empty. | |
ULExport void | ulBitmapErase (ULBitmap bitmap) |
Reset bitmap pixels to 0. | |
ULExport bool | ulBitmapWritePNG (ULBitmap bitmap, const char *path) |
Write bitmap to a PNG on disk. | |
ULExport void | ulBitmapSwapRedBlueChannels (ULBitmap bitmap) |
This converts a BGRA bitmap to RGBA bitmap and vice-versa by swapping the red and blue channels. | |
ULExport ULBitmapFormat ulBitmapGetFormat | ( | ULBitmap | bitmap | ) |
Get the pixel format.
Get the size in bytes of the underlying pixel buffer.
Lock pixels for reading/writing, returns pointer to pixel buffer.
Whether or not this bitmap owns its own pixel buffer.
Get raw pixel buffer– you should only call this if Bitmap is already locked.
This converts a BGRA bitmap to RGBA bitmap and vice-versa by swapping the red and blue channels.
Write bitmap to a PNG on disk.
ULExport ULBitmap ulCreateBitmap | ( | unsigned int | width, |
unsigned int | height, | ||
ULBitmapFormat | format ) |
Create bitmap with certain dimensions and pixel format.
ULExport ULBitmap ulCreateBitmapFromPixels | ( | unsigned int | width, |
unsigned int | height, | ||
ULBitmapFormat | format, | ||
unsigned int | row_bytes, | ||
const void * | pixels, | ||
size_t | size, | ||
bool | should_copy ) |
Create bitmap from existing pixel buffer.
Destroy a bitmap (you should only destroy Bitmaps you have explicitly created via one of the creation functions above.