Loading...
Searching...
No Matches
CAPI_Bitmap.h File Reference

Overview

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.

Accessing 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:

void* pixels = ulBitmapLockPixels(bitmap);
if (pixels) {
// Zero out the pixel buffer
memset(pixels, 0, ulBitmapGetSize(bitmap));
}
// Unlock the pixels when you're done.
ULExport size_t ulBitmapGetSize(ULBitmap bitmap)
Get the size in bytes of the underlying pixel buffer.
ULExport void ulBitmapUnlockPixels(ULBitmap bitmap)
Unlock pixels after locking.
ULExport void * ulBitmapLockPixels(ULBitmap bitmap)
Lock pixels for reading/writing, returns pointer to pixel buffer.

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.
 

Function Documentation

◆ ulBitmapErase()

ULExport void ulBitmapErase ( ULBitmap bitmap)

Reset bitmap pixels to 0.

◆ ulBitmapGetBpp()

ULExport unsigned int ulBitmapGetBpp ( ULBitmap bitmap)

Get the bytes per pixel.

◆ ulBitmapGetFormat()

ULExport ULBitmapFormat ulBitmapGetFormat ( ULBitmap bitmap)

Get the pixel format.

◆ ulBitmapGetHeight()

ULExport unsigned int ulBitmapGetHeight ( ULBitmap bitmap)

Get the height in pixels.

◆ ulBitmapGetRowBytes()

ULExport unsigned int ulBitmapGetRowBytes ( ULBitmap bitmap)

Get the number of bytes per row.

◆ ulBitmapGetSize()

ULExport size_t ulBitmapGetSize ( ULBitmap bitmap)

Get the size in bytes of the underlying pixel buffer.

◆ ulBitmapGetWidth()

ULExport unsigned int ulBitmapGetWidth ( ULBitmap bitmap)

Get the width in pixels.

◆ ulBitmapIsEmpty()

ULExport bool ulBitmapIsEmpty ( ULBitmap bitmap)

Whether or not this bitmap is empty.

◆ ulBitmapLockPixels()

ULExport void * ulBitmapLockPixels ( ULBitmap bitmap)

Lock pixels for reading/writing, returns pointer to pixel buffer.

◆ ulBitmapOwnsPixels()

ULExport bool ulBitmapOwnsPixels ( ULBitmap bitmap)

Whether or not this bitmap owns its own pixel buffer.

◆ ulBitmapRawPixels()

ULExport void * ulBitmapRawPixels ( ULBitmap bitmap)

Get raw pixel buffer– you should only call this if Bitmap is already locked.

◆ ulBitmapSwapRedBlueChannels()

ULExport void ulBitmapSwapRedBlueChannels ( ULBitmap bitmap)

This converts a BGRA bitmap to RGBA bitmap and vice-versa by swapping the red and blue channels.

◆ ulBitmapUnlockPixels()

ULExport void ulBitmapUnlockPixels ( ULBitmap bitmap)

Unlock pixels after locking.

◆ ulBitmapWritePNG()

ULExport bool ulBitmapWritePNG ( ULBitmap bitmap,
const char * path )

Write bitmap to a PNG on disk.

◆ ulCreateBitmap()

ULExport ULBitmap ulCreateBitmap ( unsigned int width,
unsigned int height,
ULBitmapFormat format )

Create bitmap with certain dimensions and pixel format.

◆ ulCreateBitmapFromCopy()

ULExport ULBitmap ulCreateBitmapFromCopy ( ULBitmap existing_bitmap)

Create bitmap from copy.

◆ ulCreateBitmapFromPixels()

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.

See also
Bitmap for help using this function.

◆ ulCreateEmptyBitmap()

ULExport ULBitmap ulCreateEmptyBitmap ( )

Create empty bitmap.

◆ ulDestroyBitmap()

ULExport void ulDestroyBitmap ( ULBitmap bitmap)

Destroy a bitmap (you should only destroy Bitmaps you have explicitly created via one of the creation functions above.

Go to the source code of this file.