GFXprim
2D bitmap graphics library with emphasis on speed and correctness
Loading...
Searching...
No Matches
gp_get_put_pixel.gen.h
Go to the documentation of this file.
1// SPDX-License-Identifier: GPL-2.1-or-later
2/*
3 * gp_get_put_pixel.gen.h
4 *
5 * GENERATED on 2025 08 01 21:54:28 from gp_get_put_pixel.gen.h.t
6 *
7 * DO NOT MODIFY THIS FILE DIRECTLY!
8 */
9#ifndef GP_GET_PUT_PIXEL_GEN_H
10#define GP_GET_PUT_PIXEL_GEN_H
11
12/*
13 * Access pixel bytes, get and put pixel
14 * Do not include directly, use gp_pixel.h
15 *
16 * Copyright (C) 2011-2025 Cyril Hrubis <metan@ucw.cz>
17 * Copyright (C) 2011 Tomas Gavenciak <gavento@ucw.cz>
18 */
19
76#include <core/gp_pixmap.h>
77
78
87#define GP_PIXEL_ADDR_1BPP_DB(pixmap, x, y) \
88 ((gp_pixel*)(((void*)((pixmap)->pixels)) + (pixmap)->bytes_per_row * (y) + \
89 (1 * ((pixmap)->offset + x)) / 8))
90
97#define GP_PIXEL_ADDR_SHIFT_1BPP_DB(pixmap, x) \
98 (((x + (pixmap)->offset) % 8) * 1)
99
103#define GP_PIXEL_ADDR_OFFSET_1BPP_DB(pixmap, x) \
104 (((pixmap)->offset + x) % 8)
105
118{
119 /*
120 * Whole pixel is stored in one byte
121 *
122 * The full list = {1, 2, 4}
123 */
125 GP_PIXEL_ADDR_1BPP_DB(c, x, y));
126}
127
139{
140 /*
141 * Whole pixel is stored one byte
142 *
143 * The full list = {1, 2, 4}
144 */
146 GP_PIXEL_ADDR_1BPP_DB(c, x, y), p);
147}
148
149static inline void gp_putpixel_raw_clipped_1BPP_DB(gp_pixmap *c, gp_coord x, gp_coord y, gp_pixel p)
150{
151 if (GP_PIXEL_IS_CLIPPED(c, x, y))
152 return;
153
154 gp_putpixel_raw_1BPP_DB(c, x, y, p);
155}
156
165#define GP_PIXEL_ADDR_1BPP_UB(pixmap, x, y) \
166 ((gp_pixel*)(((void*)((pixmap)->pixels)) + (pixmap)->bytes_per_row * (y) + \
167 (1 * ((pixmap)->offset + x)) / 8))
168
175#define GP_PIXEL_ADDR_SHIFT_1BPP_UB(pixmap, x) \
176 (7 - ((x + (pixmap)->offset) % 8) * 1)
177
181#define GP_PIXEL_ADDR_OFFSET_1BPP_UB(pixmap, x) \
182 (((pixmap)->offset + x) % 8)
183
196{
197 /*
198 * Whole pixel is stored in one byte
199 *
200 * The full list = {1, 2, 4}
201 */
203 GP_PIXEL_ADDR_1BPP_UB(c, x, y));
204}
205
217{
218 /*
219 * Whole pixel is stored one byte
220 *
221 * The full list = {1, 2, 4}
222 */
224 GP_PIXEL_ADDR_1BPP_UB(c, x, y), p);
225}
226
227static inline void gp_putpixel_raw_clipped_1BPP_UB(gp_pixmap *c, gp_coord x, gp_coord y, gp_pixel p)
228{
229 if (GP_PIXEL_IS_CLIPPED(c, x, y))
230 return;
231
232 gp_putpixel_raw_1BPP_UB(c, x, y, p);
233}
234
243#define GP_PIXEL_ADDR_2BPP_DB(pixmap, x, y) \
244 ((gp_pixel*)(((void*)((pixmap)->pixels)) + (pixmap)->bytes_per_row * (y) + \
245 (2 * ((pixmap)->offset + x)) / 8))
246
253#define GP_PIXEL_ADDR_SHIFT_2BPP_DB(pixmap, x) \
254 (((x + (pixmap)->offset) % 4) * 2)
255
259#define GP_PIXEL_ADDR_OFFSET_2BPP_DB(pixmap, x) \
260 (((pixmap)->offset + x) % 4)
261
274{
275 /*
276 * Whole pixel is stored in one byte
277 *
278 * The full list = {1, 2, 4}
279 */
281 GP_PIXEL_ADDR_2BPP_DB(c, x, y));
282}
283
295{
296 /*
297 * Whole pixel is stored one byte
298 *
299 * The full list = {1, 2, 4}
300 */
302 GP_PIXEL_ADDR_2BPP_DB(c, x, y), p);
303}
304
305static inline void gp_putpixel_raw_clipped_2BPP_DB(gp_pixmap *c, gp_coord x, gp_coord y, gp_pixel p)
306{
307 if (GP_PIXEL_IS_CLIPPED(c, x, y))
308 return;
309
310 gp_putpixel_raw_2BPP_DB(c, x, y, p);
311}
312
321#define GP_PIXEL_ADDR_2BPP_UB(pixmap, x, y) \
322 ((gp_pixel*)(((void*)((pixmap)->pixels)) + (pixmap)->bytes_per_row * (y) + \
323 (2 * ((pixmap)->offset + x)) / 8))
324
331#define GP_PIXEL_ADDR_SHIFT_2BPP_UB(pixmap, x) \
332 (6 - ((x + (pixmap)->offset) % 4) * 2)
333
337#define GP_PIXEL_ADDR_OFFSET_2BPP_UB(pixmap, x) \
338 (((pixmap)->offset + x) % 4)
339
352{
353 /*
354 * Whole pixel is stored in one byte
355 *
356 * The full list = {1, 2, 4}
357 */
359 GP_PIXEL_ADDR_2BPP_UB(c, x, y));
360}
361
373{
374 /*
375 * Whole pixel is stored one byte
376 *
377 * The full list = {1, 2, 4}
378 */
380 GP_PIXEL_ADDR_2BPP_UB(c, x, y), p);
381}
382
383static inline void gp_putpixel_raw_clipped_2BPP_UB(gp_pixmap *c, gp_coord x, gp_coord y, gp_pixel p)
384{
385 if (GP_PIXEL_IS_CLIPPED(c, x, y))
386 return;
387
388 gp_putpixel_raw_2BPP_UB(c, x, y, p);
389}
390
399#define GP_PIXEL_ADDR_4BPP_DB(pixmap, x, y) \
400 ((gp_pixel*)(((void*)((pixmap)->pixels)) + (pixmap)->bytes_per_row * (y) + \
401 (4 * ((pixmap)->offset + x)) / 8))
402
409#define GP_PIXEL_ADDR_SHIFT_4BPP_DB(pixmap, x) \
410 (((x + (pixmap)->offset) % 2) * 4)
411
415#define GP_PIXEL_ADDR_OFFSET_4BPP_DB(pixmap, x) \
416 (((pixmap)->offset + x) % 2)
417
430{
431 /*
432 * Whole pixel is stored in one byte
433 *
434 * The full list = {1, 2, 4}
435 */
437 GP_PIXEL_ADDR_4BPP_DB(c, x, y));
438}
439
451{
452 /*
453 * Whole pixel is stored one byte
454 *
455 * The full list = {1, 2, 4}
456 */
458 GP_PIXEL_ADDR_4BPP_DB(c, x, y), p);
459}
460
461static inline void gp_putpixel_raw_clipped_4BPP_DB(gp_pixmap *c, gp_coord x, gp_coord y, gp_pixel p)
462{
463 if (GP_PIXEL_IS_CLIPPED(c, x, y))
464 return;
465
466 gp_putpixel_raw_4BPP_DB(c, x, y, p);
467}
468
477#define GP_PIXEL_ADDR_4BPP_UB(pixmap, x, y) \
478 ((gp_pixel*)(((void*)((pixmap)->pixels)) + (pixmap)->bytes_per_row * (y) + \
479 (4 * ((pixmap)->offset + x)) / 8))
480
487#define GP_PIXEL_ADDR_SHIFT_4BPP_UB(pixmap, x) \
488 (4 - ((x + (pixmap)->offset) % 2) * 4)
489
493#define GP_PIXEL_ADDR_OFFSET_4BPP_UB(pixmap, x) \
494 (((pixmap)->offset + x) % 2)
495
508{
509 /*
510 * Whole pixel is stored in one byte
511 *
512 * The full list = {1, 2, 4}
513 */
515 GP_PIXEL_ADDR_4BPP_UB(c, x, y));
516}
517
529{
530 /*
531 * Whole pixel is stored one byte
532 *
533 * The full list = {1, 2, 4}
534 */
536 GP_PIXEL_ADDR_4BPP_UB(c, x, y), p);
537}
538
539static inline void gp_putpixel_raw_clipped_4BPP_UB(gp_pixmap *c, gp_coord x, gp_coord y, gp_pixel p)
540{
541 if (GP_PIXEL_IS_CLIPPED(c, x, y))
542 return;
543
544 gp_putpixel_raw_4BPP_UB(c, x, y, p);
545}
546
555#define GP_PIXEL_ADDR_8BPP(pixmap, x, y) \
556 ((gp_pixel*)(((void*)((pixmap)->pixels)) + (pixmap)->bytes_per_row * (y) + \
557 (8 * (x)) / 8))
558
565#define GP_PIXEL_ADDR_SHIFT_8BPP(pixmap, x) \
566 (0)
567
571#define GP_PIXEL_ADDR_OFFSET_8BPP(pixmap, x) \
572 (0)
573
586{
587 /*
588 * 8 BPP is byte aligned
589 */
590 return GP_GET_BYTES1(GP_PIXEL_ADDR_8BPP(c, x, y));
591}
592
604{
605 /*
606 * 8 BPP is byte aligned
607 */
609}
610
611static inline void gp_putpixel_raw_clipped_8BPP(gp_pixmap *c, gp_coord x, gp_coord y, gp_pixel p)
612{
613 if (GP_PIXEL_IS_CLIPPED(c, x, y))
614 return;
615
616 gp_putpixel_raw_8BPP(c, x, y, p);
617}
618
627#define GP_PIXEL_ADDR_16BPP(pixmap, x, y) \
628 ((gp_pixel*)(((void*)((pixmap)->pixels)) + (pixmap)->bytes_per_row * (y) + \
629 (16 * (x)) / 8))
630
637#define GP_PIXEL_ADDR_SHIFT_16BPP(pixmap, x) \
638 (0)
639
643#define GP_PIXEL_ADDR_OFFSET_16BPP(pixmap, x) \
644 (0)
645
658{
659 /*
660 * 16 BPP is expected to have aligned pixels
661 */
662 return GP_GET_BYTES2_LE(GP_PIXEL_ADDR_16BPP(c, x, y));
663}
664
676{
677 /*
678 * 16 BPP is expected to have aligned pixels
679 */
681}
682
683static inline void gp_putpixel_raw_clipped_16BPP(gp_pixmap *c, gp_coord x, gp_coord y, gp_pixel p)
684{
685 if (GP_PIXEL_IS_CLIPPED(c, x, y))
686 return;
687
688 gp_putpixel_raw_16BPP(c, x, y, p);
689}
690
699#define GP_PIXEL_ADDR_16BPP_BE(pixmap, x, y) \
700 ((gp_pixel*)(((void*)((pixmap)->pixels)) + (pixmap)->bytes_per_row * (y) + \
701 (16 * (x)) / 8))
702
709#define GP_PIXEL_ADDR_SHIFT_16BPP_BE(pixmap, x) \
710 (0)
711
715#define GP_PIXEL_ADDR_OFFSET_16BPP_BE(pixmap, x) \
716 (0)
717
730{
731 /*
732 * 16 BPP is expected to have aligned pixels
733 */
735}
736
748{
749 /*
750 * 16 BPP is expected to have aligned pixels
751 */
753}
754
755static inline void gp_putpixel_raw_clipped_16BPP_BE(gp_pixmap *c, gp_coord x, gp_coord y, gp_pixel p)
756{
757 if (GP_PIXEL_IS_CLIPPED(c, x, y))
758 return;
759
760 gp_putpixel_raw_16BPP_BE(c, x, y, p);
761}
762
771#define GP_PIXEL_ADDR_24BPP(pixmap, x, y) \
772 ((gp_pixel*)(((void*)((pixmap)->pixels)) + (pixmap)->bytes_per_row * (y) + \
773 (24 * (x)) / 8))
774
781#define GP_PIXEL_ADDR_SHIFT_24BPP(pixmap, x) \
782 (0)
783
787#define GP_PIXEL_ADDR_OFFSET_24BPP(pixmap, x) \
788 (0)
789
802{
803 /*
804 * The pixel is stored in two or three bytes
805 *
806 * The max from subgroup (of mod 8 factor group) generated by
807 * pixel_size mod 8 + pixel_size <= 24
808 *
809 * The full list = {11, 13, 14, 15, 17, 18, 20, 24}
810 *
811 * Hint: If the pixel size is coprime to 8 the group is generated by
812 * pixel_size mod 8 and maximal size thus is pixel_size + 7
813 */
815 GP_PIXEL_ADDR_24BPP(c, x, y));
816}
817
829{
830 /*
831 * The pixel is stored in two or three bytes
832 *
833 * The max from subgroup (of mod 8 factor group) generated by
834 * pixel_size mod 8 + pixel_size <= 24
835 *
836 * The full list = {11, 13, 14, 15, 17, 18, 20, 24}
837 *
838 * Hint: If the pixel size is coprime to 8 the group is generated by
839 * pixel_size mod 8 and maximal size thus is pixel_size + 7
840 */
842 GP_PIXEL_ADDR_24BPP(c, x, y), p);
843}
844
845static inline void gp_putpixel_raw_clipped_24BPP(gp_pixmap *c, gp_coord x, gp_coord y, gp_pixel p)
846{
847 if (GP_PIXEL_IS_CLIPPED(c, x, y))
848 return;
849
850 gp_putpixel_raw_24BPP(c, x, y, p);
851}
852
861#define GP_PIXEL_ADDR_32BPP(pixmap, x, y) \
862 ((gp_pixel*)(((void*)((pixmap)->pixels)) + (pixmap)->bytes_per_row * (y) + \
863 (32 * (x)) / 8))
864
871#define GP_PIXEL_ADDR_SHIFT_32BPP(pixmap, x) \
872 (0)
873
877#define GP_PIXEL_ADDR_OFFSET_32BPP(pixmap, x) \
878 (0)
879
892{
893 /*
894 * 32 BPP is expected to have aligned pixels
895 */
896 return GP_GET_BYTES4_LE(GP_PIXEL_ADDR_32BPP(c, x, y));
897}
898
910{
911 /*
912 * 32 BPP is expected to have aligned pixels
913 */
915}
916
917static inline void gp_putpixel_raw_clipped_32BPP(gp_pixmap *c, gp_coord x, gp_coord y, gp_pixel p)
918{
919 if (GP_PIXEL_IS_CLIPPED(c, x, y))
920 return;
921
922 gp_putpixel_raw_32BPP(c, x, y, p);
923}
924
933#define GP_PIXEL_ADDR_18BPP_DB(pixmap, x, y) \
934 ((gp_pixel*)(((void*)((pixmap)->pixels)) + (pixmap)->bytes_per_row * (y) + \
935 (18 * ((pixmap)->offset + x)) / 8))
936
943#define GP_PIXEL_ADDR_SHIFT_18BPP_DB(pixmap, x) \
944 ((18 * (x + (pixmap)->offset)) % 8)
945
949#define GP_PIXEL_ADDR_OFFSET_18BPP_DB(pixmap, x) \
950 (0)
951
964{
965 /*
966 * The pixel is stored in two or three bytes
967 *
968 * The max from subgroup (of mod 8 factor group) generated by
969 * pixel_size mod 8 + pixel_size <= 24
970 *
971 * The full list = {11, 13, 14, 15, 17, 18, 20, 24}
972 *
973 * Hint: If the pixel size is coprime to 8 the group is generated by
974 * pixel_size mod 8 and maximal size thus is pixel_size + 7
975 */
977 GP_PIXEL_ADDR_18BPP_DB(c, x, y));
978}
979
991{
992 /*
993 * The pixel is stored in two or three bytes
994 *
995 * The max from subgroup (of mod 8 factor group) generated by
996 * pixel_size mod 8 + pixel_size <= 24
997 *
998 * The full list = {11, 13, 14, 15, 17, 18, 20, 24}
999 *
1000 * Hint: If the pixel size is coprime to 8 the group is generated by
1001 * pixel_size mod 8 and maximal size thus is pixel_size + 7
1002 */
1004 GP_PIXEL_ADDR_18BPP_DB(c, x, y), p);
1005}
1006
1007static inline void gp_putpixel_raw_clipped_18BPP_DB(gp_pixmap *c, gp_coord x, gp_coord y, gp_pixel p)
1008{
1009 if (GP_PIXEL_IS_CLIPPED(c, x, y))
1010 return;
1011
1012 gp_putpixel_raw_18BPP_DB(c, x, y, p);
1013}
1014#endif /* GP_GET_PUT_PIXEL_GEN_H */
uint32_t gp_pixel
Pixel integer value.
Definition gp_types.h:33
int gp_coord
Integer type for coordinates i.e. x, y, ...
Definition gp_types.h:19
static void gp_putpixel_raw_18BPP_DB(gp_pixmap *c, gp_coord x, gp_coord y, gp_pixel p)
gp_putpixel for 18BPP_DB
static gp_pixel gp_getpixel_raw_24BPP(const gp_pixmap *c, gp_coord x, gp_coord y)
gp_getpixel for 24BPP
static void gp_putpixel_raw_1BPP_DB(gp_pixmap *c, gp_coord x, gp_coord y, gp_pixel p)
gp_putpixel for 1BPP_DB
#define GP_PIXEL_ADDR_SHIFT_4BPP_DB(pixmap, x)
A macro to get bit-shift of pixel in 4BPP_DB pixmap.
static void gp_putpixel_raw_1BPP_UB(gp_pixmap *c, gp_coord x, gp_coord y, gp_pixel p)
gp_putpixel for 1BPP_UB
static gp_pixel gp_getpixel_raw_1BPP_DB(const gp_pixmap *c, gp_coord x, gp_coord y)
gp_getpixel for 1BPP_DB
static void gp_putpixel_raw_16BPP(gp_pixmap *c, gp_coord x, gp_coord y, gp_pixel p)
gp_putpixel for 16BPP
static void gp_putpixel_raw_24BPP(gp_pixmap *c, gp_coord x, gp_coord y, gp_pixel p)
gp_putpixel for 24BPP
#define GP_PIXEL_ADDR_SHIFT_2BPP_DB(pixmap, x)
A macro to get bit-shift of pixel in 2BPP_DB pixmap.
static gp_pixel gp_getpixel_raw_1BPP_UB(const gp_pixmap *c, gp_coord x, gp_coord y)
gp_getpixel for 1BPP_UB
static void gp_putpixel_raw_4BPP_DB(gp_pixmap *c, gp_coord x, gp_coord y, gp_pixel p)
gp_putpixel for 4BPP_DB
#define GP_PIXEL_ADDR_SHIFT_1BPP_DB(pixmap, x)
A macro to get bit-shift of pixel in 1BPP_DB pixmap.
static void gp_putpixel_raw_32BPP(gp_pixmap *c, gp_coord x, gp_coord y, gp_pixel p)
gp_putpixel for 32BPP
static gp_pixel gp_getpixel_raw_2BPP_UB(const gp_pixmap *c, gp_coord x, gp_coord y)
gp_getpixel for 2BPP_UB
static gp_pixel gp_getpixel_raw_18BPP_DB(const gp_pixmap *c, gp_coord x, gp_coord y)
gp_getpixel for 18BPP_DB
static void gp_putpixel_raw_4BPP_UB(gp_pixmap *c, gp_coord x, gp_coord y, gp_pixel p)
gp_putpixel for 4BPP_UB
static gp_pixel gp_getpixel_raw_8BPP(const gp_pixmap *c, gp_coord x, gp_coord y)
gp_getpixel for 8BPP
static gp_pixel gp_getpixel_raw_4BPP_DB(const gp_pixmap *c, gp_coord x, gp_coord y)
gp_getpixel for 4BPP_DB
static void gp_putpixel_raw_2BPP_DB(gp_pixmap *c, gp_coord x, gp_coord y, gp_pixel p)
gp_putpixel for 2BPP_DB
#define GP_PIXEL_ADDR_1BPP_UB(pixmap, x, y)
A macro to get address of a starting byte for a pixel in a 1BPP_UB pixmap.
static gp_pixel gp_getpixel_raw_32BPP(const gp_pixmap *c, gp_coord x, gp_coord y)
gp_getpixel for 32BPP
#define GP_PIXEL_ADDR_18BPP_DB(pixmap, x, y)
A macro to get address of a starting byte for a pixel in a 18BPP_DB pixmap.
#define GP_PIXEL_ADDR_2BPP_UB(pixmap, x, y)
A macro to get address of a starting byte for a pixel in a 2BPP_UB pixmap.
static void gp_putpixel_raw_8BPP(gp_pixmap *c, gp_coord x, gp_coord y, gp_pixel p)
gp_putpixel for 8BPP
static void gp_putpixel_raw_2BPP_UB(gp_pixmap *c, gp_coord x, gp_coord y, gp_pixel p)
gp_putpixel for 2BPP_UB
static gp_pixel gp_getpixel_raw_4BPP_UB(const gp_pixmap *c, gp_coord x, gp_coord y)
gp_getpixel for 4BPP_UB
#define GP_PIXEL_ADDR_SHIFT_4BPP_UB(pixmap, x)
A macro to get bit-shift of pixel in 4BPP_UB pixmap.
#define GP_PIXEL_ADDR_4BPP_DB(pixmap, x, y)
A macro to get address of a starting byte for a pixel in a 4BPP_DB pixmap.
#define GP_PIXEL_ADDR_24BPP(pixmap, x, y)
A macro to get address of a starting byte for a pixel in a 24BPP pixmap.
static void gp_putpixel_raw_16BPP_BE(gp_pixmap *c, gp_coord x, gp_coord y, gp_pixel p)
gp_putpixel for 16BPP_BE
#define GP_PIXEL_ADDR_4BPP_UB(pixmap, x, y)
A macro to get address of a starting byte for a pixel in a 4BPP_UB pixmap.
#define GP_PIXEL_ADDR_SHIFT_24BPP(pixmap, x)
A macro to get bit-shift of pixel in 24BPP pixmap.
static gp_pixel gp_getpixel_raw_2BPP_DB(const gp_pixmap *c, gp_coord x, gp_coord y)
gp_getpixel for 2BPP_DB
#define GP_PIXEL_ADDR_1BPP_DB(pixmap, x, y)
A macro to get address of a starting byte for a pixel in a 1BPP_DB pixmap.
#define GP_PIXEL_ADDR_8BPP(pixmap, x, y)
A macro to get address of a starting byte for a pixel in a 8BPP pixmap.
#define GP_PIXEL_ADDR_32BPP(pixmap, x, y)
A macro to get address of a starting byte for a pixel in a 32BPP pixmap.
static gp_pixel gp_getpixel_raw_16BPP(const gp_pixmap *c, gp_coord x, gp_coord y)
gp_getpixel for 16BPP
#define GP_PIXEL_ADDR_SHIFT_1BPP_UB(pixmap, x)
A macro to get bit-shift of pixel in 1BPP_UB pixmap.
#define GP_PIXEL_ADDR_SHIFT_2BPP_UB(pixmap, x)
A macro to get bit-shift of pixel in 2BPP_UB pixmap.
#define GP_PIXEL_ADDR_SHIFT_18BPP_DB(pixmap, x)
A macro to get bit-shift of pixel in 18BPP_DB pixmap.
static gp_pixel gp_getpixel_raw_16BPP_BE(const gp_pixmap *c, gp_coord x, gp_coord y)
gp_getpixel for 16BPP_BE
#define GP_PIXEL_ADDR_2BPP_DB(pixmap, x, y)
A macro to get address of a starting byte for a pixel in a 2BPP_DB pixmap.
#define GP_PIXEL_ADDR_16BPP_BE(pixmap, x, y)
A macro to get address of a starting byte for a pixel in a 16BPP_BE pixmap.
#define GP_PIXEL_ADDR_16BPP(pixmap, x, y)
A macro to get address of a starting byte for a pixel in a 16BPP pixmap.
Helper macros to get and set bits given offset and length.
#define GP_GET_BITS1(offset, len, buf)
Align-safe get bits.
#define GP_GET_BITS3_LE(offset, len, buf)
Little endian align-safe get bits.
#define GP_SET_BITS1(offset, len, dest, val)
Align-safe set bits.
#define GP_SET_BITS3_LE(offset, len, dest, val)
Little endian align-safe set bits.
Helper macros to get and set bytes.
#define GP_GET_BYTES1(src)
Align safe get byte.
#define GP_SET_BYTES2_LE(dst, bytes)
Little endian align usafe set bytes.
#define GP_SET_BYTES2_BE(dst, bytes)
Big endian align usafe set bytes.
#define GP_SET_BYTES4_LE(dst, bytes)
Little endian align usafe set bytes.
#define GP_GET_BYTES2_BE(src)
Big endian align usafe get bytes.
#define GP_SET_BYTES1(dst, byte)
Align safe set byte.
#define GP_GET_BYTES4_LE(src)
Little endian align usafe get bytes.
#define GP_GET_BYTES2_LE(src)
Little endian align usafe get bytes.
A pixel buffer.
#define GP_PIXEL_IS_CLIPPED(pixmap, x, y)
Returns true when pixel is clipped out of pixmap.
Definition gp_pixmap.h:127
A pixmap buffer.
Definition gp_pixmap.h:33