PatchworkOS
Loading...
Searching...
No Matches
pixel.h File Reference
#include <stdint.h>

Go to the source code of this file.

Macros

#define PIXEL_ALPHA(pixel)   (((pixel) >> 24) & 0xFF)
 
#define PIXEL_RED(pixel)   (((pixel) >> 16) & 0xFF)
 
#define PIXEL_GREEN(pixel)   (((pixel) >> 8) & 0xFF)
 
#define PIXEL_BLUE(pixel)   (((pixel) >> 0) & 0xFF)
 
#define PIXEL_ARGB(a, r, g, b)   (((a) << 24) | ((r) << 16) | ((g) << 8) | ((b) << 0))
 
#define PIXEL_BLEND(dest, src)
 

Typedefs

typedef uint32_t pixel_t
 

Macro Definition Documentation

◆ PIXEL_ALPHA

#define PIXEL_ALPHA (   pixel)    (((pixel) >> 24) & 0xFF)

Definition at line 13 of file pixel.h.

◆ PIXEL_ARGB

#define PIXEL_ARGB (   a,
  r,
  g,
 
)    (((a) << 24) | ((r) << 16) | ((g) << 8) | ((b) << 0))

Definition at line 18 of file pixel.h.

◆ PIXEL_BLEND

#define PIXEL_BLEND (   dest,
  src 
)
Value:
({ \
uint8_t aAlpha = PIXEL_ALPHA(*src); \
uint8_t bAlpha = PIXEL_ALPHA(*dest); \
uint8_t alpha = aAlpha + ((bAlpha * (0xFF - aAlpha)) / 0xFF); \
if (alpha != 0) \
{ \
*dest = PIXEL_ARGB(alpha, \
(PIXEL_RED(*src) * aAlpha + PIXEL_RED(*dest) * bAlpha * (0xFF - aAlpha) / 0xFF) / alpha, \
(PIXEL_GREEN(*src) * aAlpha + PIXEL_GREEN(*dest) * bAlpha * (0xFF - aAlpha) / 0xFF) / alpha, \
(PIXEL_BLUE(*src) * aAlpha + PIXEL_BLUE(*dest) * bAlpha * (0xFF - aAlpha) / 0xFF) / alpha); \
} \
else \
{ \
*dest = 0; \
} \
})
#define PIXEL_GREEN(pixel)
Definition pixel.h:15
#define PIXEL_RED(pixel)
Definition pixel.h:14
#define PIXEL_BLUE(pixel)
Definition pixel.h:16
#define PIXEL_ARGB(a, r, g, b)
Definition pixel.h:18
#define PIXEL_ALPHA(pixel)
Definition pixel.h:13
__UINT8_TYPE__ uint8_t
Definition stdint.h:11

Definition at line 20 of file pixel.h.

◆ PIXEL_BLUE

#define PIXEL_BLUE (   pixel)    (((pixel) >> 0) & 0xFF)

Definition at line 16 of file pixel.h.

◆ PIXEL_GREEN

#define PIXEL_GREEN (   pixel)    (((pixel) >> 8) & 0xFF)

Definition at line 15 of file pixel.h.

◆ PIXEL_RED

#define PIXEL_RED (   pixel)    (((pixel) >> 16) & 0xFF)

Definition at line 14 of file pixel.h.

Typedef Documentation

◆ pixel_t

typedef uint32_t pixel_t

Definition at line 11 of file pixel.h.