libmsx
C library for MSX
Loading...
Searching...
No Matches
im.h
Go to the documentation of this file.
1// -*- coding: utf-8-unix -*-
2/*
3 * Copyright (c) 2021-2024 Daishi Mori (mori0091)
4 *
5 * This software is released under the MIT License.\n
6 * See https://github.com/mori0091/libmsx/blob/main/LICENSE
7 *
8 * GitHub libmsx project\n
9 * https://github.com/mori0091/libmsx
10 */
159#ifndef IMG_H_
160#define IMG_H_
161
162#include <stddef.h>
163#include <stdint.h>
164
170typedef uint8_t BM8x8[8];
171
177typedef BM8x8 SP8x8;
178
185typedef BM8x8 SP16x16[4];
186
195void im_copy_BM8x8(const BM8x8 * src, BM8x8 * dst);
196
208void im_copy_v_BM8x8(const BM8x8 * src);
209
218void im_hflip_BM8x8(const BM8x8 * src, BM8x8 * dst);
219
231void im_hflip_v_BM8x8(const BM8x8 * src);
232
241void im_vflip_BM8x8(const BM8x8 * src, BM8x8 * dst);
242
254void im_vflip_v_BM8x8(const BM8x8 * src);
255
264void im_tr_BM8x8(const BM8x8 * src, BM8x8 * dst);
265
277void im_tr_v_BM8x8(const BM8x8 * src);
278
287void im_adtr_BM8x8(const BM8x8 * src, BM8x8 * dst);
288
300void im_adtr_v_BM8x8(const BM8x8 * src);
301
310void im_rot90_BM8x8(const BM8x8 * src, BM8x8 * dst);
311
323void im_rot90_v_BM8x8(const BM8x8 * src);
324
333void im_rot180_BM8x8(const BM8x8 * src, BM8x8 * dst);
334
346void im_rot180_v_BM8x8(const BM8x8 * src);
347
356void im_rot270_BM8x8(const BM8x8 * src, BM8x8 * dst);
357
369void im_rot270_v_BM8x8(const BM8x8 * src);
370
379void im_cmpl_BM8x8(const BM8x8 * src, BM8x8 * dst);
380
392void im_cmpl_v_BM8x8(const BM8x8 * src);
393
403void im_diff_BM8x8(const BM8x8 * src1, const BM8x8 * src2, BM8x8 * dst);
404
417void im_diff_v_BM8x8(const BM8x8 * src1, const BM8x8 * src2);
418
428void im_and_BM8x8(const BM8x8 * src1, const BM8x8 * src2, BM8x8 * dst);
429
442void im_and_v_BM8x8(const BM8x8 * src1, const BM8x8 * src2);
443
453void im_or_BM8x8(const BM8x8 * src1, const BM8x8 * src2, BM8x8 * dst);
454
467void im_or_v_BM8x8(const BM8x8 * src1, const BM8x8 * src2);
468
478void im_xor_BM8x8(const BM8x8 * src1, const BM8x8 * src2, BM8x8 * dst);
479
492void im_xor_v_BM8x8(const BM8x8 * src1, const BM8x8 * src2);
493
503void im_shift_u_BM8x8(uint8_t sft, const BM8x8 * src, BM8x8 * dst);
504
517void im_shift_u_v_BM8x8(uint8_t sft, const BM8x8 * src);
518
528void im_shift_d_BM8x8(uint8_t sft, const BM8x8 * src, BM8x8 * dst);
529
542void im_shift_d_v_BM8x8(uint8_t sft, const BM8x8 * src);
543
553void im_shift_l_BM8x8(uint8_t sft, const BM8x8 * src, BM8x8 * dst);
554
567void im_shift_l_v_BM8x8(uint8_t sft, const BM8x8 * src);
568
578void im_shift_r_BM8x8(uint8_t sft, const BM8x8 * src, BM8x8 * dst);
579
592void im_shift_r_v_BM8x8(uint8_t sft, const BM8x8 * src);
593
603void im_rotate_u_BM8x8(uint8_t sft, const BM8x8 * src, BM8x8 * dst);
604
617void im_rotate_u_v_BM8x8(uint8_t sft, const BM8x8 * src);
618
628void im_rotate_d_BM8x8(uint8_t sft, const BM8x8 * src, BM8x8 * dst);
629
642void im_rotate_d_v_BM8x8(uint8_t sft, const BM8x8 * src);
643
653void im_rotate_l_BM8x8(uint8_t sft, const BM8x8 * src, BM8x8 * dst);
654
667void im_rotate_l_v_BM8x8(uint8_t sft, const BM8x8 * src);
668
678void im_rotate_r_BM8x8(uint8_t sft, const BM8x8 * src, BM8x8 * dst);
679
692void im_rotate_r_v_BM8x8(uint8_t sft, const BM8x8 * src);
693
704void im_shift_l_vec_BM8x8(uint8_t sft, size_t n, const BM8x8 * src, BM8x8 * dst);
705
716void im_shift_r_vec_BM8x8(uint8_t sft, size_t n, const BM8x8 * src, BM8x8 * dst);
717
728void im_rotate_l_vec_BM8x8(uint8_t sft, size_t n, const BM8x8 * src, BM8x8 * dst);
729
740void im_rotate_r_vec_BM8x8(uint8_t sft, size_t n, const BM8x8 * src, BM8x8 * dst);
741
803
804// /**
805// * Enumeration of boolean operators for images.
806// */
807// enum ImOp_boolean {
808// // Unary operators : image -> image
809// IM_NOT = IM_COMPLEMENT,
810// // Binary operators : (image, image) -> image
811// IM_AND = 2,
812// IM_OR = 4,
813// IM_XOR = 6,
814// IM_NAND = IM_NOT | IM_AND,
815// IM_NOR = IM_NOT | IM_OR,
816// IM_NXOR = IM_NOT | IM_XOR,
817// IM_INTERSECTION = IM_AND,
818// IM_UNION = IM_OR,
819// IM_SETDIFF = 8,
820// // (reserved 9 to 15)
821// };
822
823// /**
824// * Enumeration of shift operators for images.
825// */
826// enum ImOp_shift {
827// // Shift operators : (scalar, image) -> image
828// IM_SHIFT_UP = 16,
829// IM_SHIFT_DOWN = 17,
830// IM_SHIFT_LEFT = 18,
831// IM_SHIFT_RIGHT = 19,
832// IM_ROTATE_UP = 20,
833// IM_ROTATE_DOWN = 21,
834// IM_ROTATE_LEFT = 22,
835// IM_ROTATE_RIGHT = 23,
836// // (reserved 24 to 31)
837// };
838
889void im_tilemap_BM8x8(const BM8x8 tileset[256], size_t n, const uint8_t tilemap[][2], BM8x8 * dst);
890
926void im_tilemap_v_BM8x8(const BM8x8 tileset[256], size_t n, const uint8_t tilemap[][2]);
927
936void im_copy_SP16x16(const SP16x16 * src, SP16x16 * dst);
937
949void im_copy_v_SP16x16(const SP16x16 * src);
950
958void im_hflip_SP16x16(const SP16x16 * src, SP16x16 * dst);
959
970void im_hflip_v_SP16x16(const SP16x16 * src);
971
979void im_vflip_SP16x16(const SP16x16 * src, SP16x16 * dst);
980
991void im_vflip_v_SP16x16(const SP16x16 * src);
992
1001void im_tr_SP16x16(const SP16x16 * src, SP16x16 * dst);
1002
1014void im_tr_v_SP16x16(const SP16x16 * src);
1015
1025void im_adtr_SP16x16(const SP16x16 * src, SP16x16 * dst);
1026
1039void im_adtr_v_SP16x16(const SP16x16 * src);
1040
1049void im_rot90_SP16x16(const SP16x16 * src, SP16x16 * dst);
1050
1062void im_rot90_v_SP16x16(const SP16x16 * src);
1063
1072void im_rot180_SP16x16(const SP16x16 * src, SP16x16 * dst);
1073
1086
1095void im_rot270_SP16x16(const SP16x16 * src, SP16x16 * dst);
1096
1109
1118void im_cmpl_SP16x16(const SP16x16 * src, SP16x16 * dst);
1119
1131void im_cmpl_v_SP16x16(const SP16x16 * src);
1132
1142void im_diff_SP16x16(const SP16x16 * src1, const SP16x16 * src2, SP16x16 * dst);
1143
1156void im_diff_v_SP16x16(const SP16x16 * src1, const SP16x16 * src2);
1157
1167void im_and_SP16x16(const SP16x16 * src1, const SP16x16 * src2, SP16x16 * dst);
1168
1181void im_and_v_SP16x16(const SP16x16 * src1, const SP16x16 * src2);
1182
1192void im_or_SP16x16(const SP16x16 * src1, const SP16x16 * src2, SP16x16 * dst);
1193
1206void im_or_v_SP16x16(const SP16x16 * src1, const SP16x16 * src2);
1207
1217void im_xor_SP16x16(const SP16x16 * src1, const SP16x16 * src2, SP16x16 * dst);
1218
1231void im_xor_v_SP16x16(const SP16x16 * src1, const SP16x16 * src2);
1232
1242void im_shift_u_SP16x16(uint8_t sft, const SP16x16 * src, SP16x16 * dst);
1243
1256void im_shift_u_v_SP16x16(uint8_t sft, const SP16x16 * src);
1257
1267void im_shift_d_SP16x16(uint8_t sft, const SP16x16 * src, SP16x16 * dst);
1268
1281void im_shift_d_v_SP16x16(uint8_t sft, const SP16x16 * src);
1282
1292void im_shift_l_SP16x16(uint8_t sft, const SP16x16 * src, SP16x16 * dst);
1293
1306void im_shift_l_v_SP16x16(uint8_t sft, const SP16x16 * src);
1307
1317void im_shift_r_SP16x16(uint8_t sft, const SP16x16 * src, SP16x16 * dst);
1318
1331void im_shift_r_v_SP16x16(uint8_t sft, const SP16x16 * src);
1332
1342void im_rotate_u_SP16x16(uint8_t sft, const SP16x16 * src, SP16x16 * dst);
1343
1356void im_rotate_u_v_SP16x16(uint8_t sft, const SP16x16 * src);
1357
1367void im_rotate_d_SP16x16(uint8_t sft, const SP16x16 * src, SP16x16 * dst);
1368
1381void im_rotate_d_v_SP16x16(uint8_t sft, const SP16x16 * src);
1382
1392void im_rotate_l_SP16x16(uint8_t sft, const SP16x16 * src, SP16x16 * dst);
1393
1406void im_rotate_l_v_SP16x16(uint8_t sft, const SP16x16 * src);
1407
1417void im_rotate_r_SP16x16(uint8_t sft, const SP16x16 * src, SP16x16 * dst);
1418
1431void im_rotate_r_v_SP16x16(uint8_t sft, const SP16x16 * src);
1432
1447void im_trim_SP16x16(uint8_t tblr[4], const SP16x16 * src, SP16x16 * dst);
1448
1449#endif // IMG_H_
void im_xor_v_BM8x8(const BM8x8 *src1, const BM8x8 *src2)
MSX Bitwise XOR of two 8x8 pixel 1bpp images.
void im_diff_v_BM8x8(const BM8x8 *src1, const BM8x8 *src2)
MSX Bitwise SET-DIFFERENCE of two 8x8 pixel 1bpp images.
void im_cmpl_v_BM8x8(const BM8x8 *src)
MSX Bitwise NOT (complement) of an 8x8 pixel 1bpp image.
void im_or_BM8x8(const BM8x8 *src1, const BM8x8 *src2, BM8x8 *dst)
MSX Bitwise OR of two 8x8 pixel 1bpp images.
void im_xor_BM8x8(const BM8x8 *src1, const BM8x8 *src2, BM8x8 *dst)
MSX Bitwise XOR of two 8x8 pixel 1bpp images.
void im_or_v_BM8x8(const BM8x8 *src1, const BM8x8 *src2)
MSX Bitwise OR of two 8x8 pixel 1bpp images.
void im_and_BM8x8(const BM8x8 *src1, const BM8x8 *src2, BM8x8 *dst)
MSX Bitwise AND of two 8x8 pixel 1bpp images.
void im_cmpl_BM8x8(const BM8x8 *src, BM8x8 *dst)
MSX Bitwise NOT (complement) of an 8x8 pixel 1bpp image.
void im_and_v_BM8x8(const BM8x8 *src1, const BM8x8 *src2)
MSX Bitwise AND of two 8x8 pixel 1bpp images.
void im_diff_BM8x8(const BM8x8 *src1, const BM8x8 *src2, BM8x8 *dst)
MSX Bitwise SET-DIFFERENCE of two 8x8 pixel 1bpp images.
void im_cmpl_v_SP16x16(const SP16x16 *src)
MSX Bitwise NOT (complement) of an 16x16 pixels 1bpp sprite pattern.
void im_and_SP16x16(const SP16x16 *src1, const SP16x16 *src2, SP16x16 *dst)
MSX Bitwise AND of two 16x16 pixel 1bpp sprite patterns.
void im_xor_v_SP16x16(const SP16x16 *src1, const SP16x16 *src2)
MSX Bitwise XOR of two 16x16 pixel 1bpp sprite patterns.
void im_or_SP16x16(const SP16x16 *src1, const SP16x16 *src2, SP16x16 *dst)
MSX Bitwise OR of two 16x16 pixel 1bpp sprite patterns.
void im_diff_v_SP16x16(const SP16x16 *src1, const SP16x16 *src2)
MSX Bitwise SET-DIFFERENCE of two 16x16 pixels 1bpp sprite patterns.
void im_diff_SP16x16(const SP16x16 *src1, const SP16x16 *src2, SP16x16 *dst)
MSX Bitwise SET-DIFFERENCE of two 16x16 pixels 1bpp sprite patterns.
void im_and_v_SP16x16(const SP16x16 *src1, const SP16x16 *src2)
MSX Bitwise AND of two 16x16 pixel 1bpp sprite patterns.
void im_cmpl_SP16x16(const SP16x16 *src, SP16x16 *dst)
MSX Bitwise NOT (complement) of an 16x16 pixels 1bpp sprite pattern.
void im_or_v_SP16x16(const SP16x16 *src1, const SP16x16 *src2)
MSX Bitwise OR of two 16x16 pixel 1bpp sprite patterns.
void im_xor_SP16x16(const SP16x16 *src1, const SP16x16 *src2, SP16x16 *dst)
MSX Bitwise XOR of two 16x16 pixel 1bpp sprite patterns.
void im_rotate_l_vec_BM8x8(uint8_t sft, size_t n, const BM8x8 *src, BM8x8 *dst)
MSX Rotate (scroll) n-columns row vector of 8x8 pixel 1bpp image to the left.
void im_rotate_l_BM8x8(uint8_t sft, const BM8x8 *src, BM8x8 *dst)
MSX Rotate (scroll) an 8x8 pixel 1bpp image to the left.
void im_rotate_d_v_BM8x8(uint8_t sft, const BM8x8 *src)
MSX Rotate (scroll) an 8x8 pixel 1bpp image downward.
void im_rotate_d_BM8x8(uint8_t sft, const BM8x8 *src, BM8x8 *dst)
MSX Rotate (scroll) an 8x8 pixel 1bpp image downward.
void im_shift_r_v_BM8x8(uint8_t sft, const BM8x8 *src)
MSX Shift an 8x8 pixel 1bpp image to the right.
void im_rotate_r_BM8x8(uint8_t sft, const BM8x8 *src, BM8x8 *dst)
MSX Rotate (scroll) an 8x8 pixel 1bpp image to the right.
void im_shift_u_BM8x8(uint8_t sft, const BM8x8 *src, BM8x8 *dst)
MSX Shift an 8x8 pixel 1bpp image upward.
void im_shift_l_v_BM8x8(uint8_t sft, const BM8x8 *src)
MSX Shift an 8x8 pixel 1bpp image to the left.
void im_rotate_u_v_BM8x8(uint8_t sft, const BM8x8 *src)
MSX Rotate (scroll) an 8x8 pixel 1bpp image upward.
void im_shift_d_v_BM8x8(uint8_t sft, const BM8x8 *src)
MSX Shift an 8x8 pixel 1bpp image downward.
void im_shift_r_BM8x8(uint8_t sft, const BM8x8 *src, BM8x8 *dst)
MSX Shift an 8x8 pixel 1bpp image to the right.
void im_shift_u_v_BM8x8(uint8_t sft, const BM8x8 *src)
MSX Shift an 8x8 pixel 1bpp image upward.
void im_shift_r_vec_BM8x8(uint8_t sft, size_t n, const BM8x8 *src, BM8x8 *dst)
MSX Shift n-columns row vector of 8x8 pixel 1bpp image to the right.
void im_shift_l_BM8x8(uint8_t sft, const BM8x8 *src, BM8x8 *dst)
MSX Shift an 8x8 pixel 1bpp image to the left.
void im_rotate_r_v_BM8x8(uint8_t sft, const BM8x8 *src)
MSX Rotate (scroll) an 8x8 pixel 1bpp image to the right.
void im_rotate_u_BM8x8(uint8_t sft, const BM8x8 *src, BM8x8 *dst)
MSX Rotate (scroll) an 8x8 pixel 1bpp image upward.
void im_shift_l_vec_BM8x8(uint8_t sft, size_t n, const BM8x8 *src, BM8x8 *dst)
MSX Shift n-columns row vector of 8x8 pixel 1bpp image to the left.
void im_rotate_l_v_BM8x8(uint8_t sft, const BM8x8 *src)
MSX Rotate (scroll) an 8x8 pixel 1bpp image to the left.
void im_rotate_r_vec_BM8x8(uint8_t sft, size_t n, const BM8x8 *src, BM8x8 *dst)
MSX Rotate (scroll) n-columns row vector of 8x8 pixel 1bpp image to the right.
void im_shift_d_BM8x8(uint8_t sft, const BM8x8 *src, BM8x8 *dst)
MSX Shift an 8x8 pixel 1bpp image downward.
void im_rotate_l_SP16x16(uint8_t sft, const SP16x16 *src, SP16x16 *dst)
MSX Rotate (scroll) an 16x16 pixel 1bpp sprite pattern to the left.
void im_rotate_l_v_SP16x16(uint8_t sft, const SP16x16 *src)
MSX Rotate (scroll) an 16x16 pixel 1bpp sprite pattern to the left.
void im_shift_u_v_SP16x16(uint8_t sft, const SP16x16 *src)
MSX Shift an 16x16 pixel 1bpp sprite pattern upward.
void im_rotate_u_SP16x16(uint8_t sft, const SP16x16 *src, SP16x16 *dst)
MSX Rotate (scroll) an 16x16 pixel 1bpp sprite pattern upward.
void im_rotate_d_v_SP16x16(uint8_t sft, const SP16x16 *src)
MSX Rotate (scroll) an 16x16 pixel 1bpp sprite pattern downward.
void im_rotate_r_SP16x16(uint8_t sft, const SP16x16 *src, SP16x16 *dst)
MSX Rotate (scroll) an 16x16 pixel 1bpp sprite pattern to the right.
void im_shift_l_v_SP16x16(uint8_t sft, const SP16x16 *src)
MSX Shift an 16x16 pixel 1bpp sprite pattern to the left.
void im_shift_r_v_SP16x16(uint8_t sft, const SP16x16 *src)
MSX Shift an 16x16 pixel 1bpp sprite pattern to the right.
void im_shift_r_SP16x16(uint8_t sft, const SP16x16 *src, SP16x16 *dst)
MSX Shift an 16x16 pixel 1bpp sprite pattern to the right.
void im_rotate_d_SP16x16(uint8_t sft, const SP16x16 *src, SP16x16 *dst)
MSX Rotate (scroll) an 16x16 pixel 1bpp sprite pattern downward.
void im_shift_u_SP16x16(uint8_t sft, const SP16x16 *src, SP16x16 *dst)
MSX Shift an 16x16 pixel 1bpp sprite pattern upward.
void im_rotate_u_v_SP16x16(uint8_t sft, const SP16x16 *src)
MSX Rotate (scroll) an 16x16 pixel 1bpp sprite pattern upward.
void im_shift_d_v_SP16x16(uint8_t sft, const SP16x16 *src)
MSX Shift an 16x16 pixel 1bpp sprite pattern downward.
void im_shift_d_SP16x16(uint8_t sft, const SP16x16 *src, SP16x16 *dst)
MSX Shift an 16x16 pixel 1bpp sprite pattern downward.
void im_rotate_r_v_SP16x16(uint8_t sft, const SP16x16 *src)
MSX Rotate (scroll) an 16x16 pixel 1bpp sprite pattern to the right.
void im_shift_l_SP16x16(uint8_t sft, const SP16x16 *src, SP16x16 *dst)
MSX Shift an 16x16 pixel 1bpp sprite pattern to the left.
void im_tilemap_BM8x8(const BM8x8 tileset[256], size_t n, const uint8_t tilemap[][2], BM8x8 *dst)
MSX Construct a set of 8x8 pixels 1bpp tile images from tileset and tilemap.
void im_tilemap_v_BM8x8(const BM8x8 tileset[256], size_t n, const uint8_t tilemap[][2])
MSX Construct a set of 8x8 pixels 1bpp tile images from tileset and tilemap.
ImOp
Enumeration of unary operators for images.
Definition im.h:751
@ IM_COPY
Synonym for IM_IDENTITY.
Definition im.h:761
@ IM_ANTITRANSPOSE
Transposition around the antidiagonal.
Definition im.h:801
@ IM_FLIP_VERT
Flip vertically.
Definition im.h:776
@ IM_FLIP_HORZ
Flip horizontally.
Definition im.h:781
@ IM_TRANSPOSE
Transposition around the main diagonal.
Definition im.h:771
@ IM_IDENTITY
Identity transformation.
Definition im.h:757
@ IM_ROTATE_90
Rotate 90 degrees clockwise.
Definition im.h:786
@ IM_ROTATE_180
Rotate 180 degrees.
Definition im.h:791
@ IM_COMPLEMENT
Bitwise NOT (complement).
Definition im.h:766
@ IM_ROTATE_270
Rotate 270 degrees clockwise.
Definition im.h:796
void im_adtr_BM8x8(const BM8x8 *src, BM8x8 *dst)
MSX Transpose an 8x8 pixels 1bpp image around the antidiagonal.
void im_hflip_BM8x8(const BM8x8 *src, BM8x8 *dst)
MSX Flip an 8x8 pixels 1bpp image horizontally.
void im_tr_v_BM8x8(const BM8x8 *src)
MSX Transpose an 8x8 pixels 1bpp image around the main diagonal.
void im_tr_BM8x8(const BM8x8 *src, BM8x8 *dst)
MSX Transpose an 8x8 pixels 1bpp image around the main diagonal.
void im_rot180_BM8x8(const BM8x8 *src, BM8x8 *dst)
MSX Rotate an 8x8 pixels 1bpp image 180 degrees.
void im_adtr_v_BM8x8(const BM8x8 *src)
MSX Transpose an 8x8 pixels 1bpp image around the antidiagonal.
void im_copy_BM8x8(const BM8x8 *src, BM8x8 *dst)
MSX Copy an 8x8 pixels 1bpp image.
void im_rot270_BM8x8(const BM8x8 *src, BM8x8 *dst)
MSX Rotate an 8x8 pixels 1bpp image 270 degrees clockwise.
void im_rot180_v_BM8x8(const BM8x8 *src)
MSX Rotate an 8x8 pixels 1bpp image 180 degrees.
void im_vflip_BM8x8(const BM8x8 *src, BM8x8 *dst)
MSX Flip an 8x8 pixels 1bpp image vertically.
void im_copy_v_BM8x8(const BM8x8 *src)
MSX Copy an 8x8 pixels 1bpp image.
void im_hflip_v_BM8x8(const BM8x8 *src)
MSX Flip an 8x8 pixels 1bpp image horizontally.
void im_vflip_v_BM8x8(const BM8x8 *src)
MSX Flip an 8x8 pixels 1bpp image vertically.
void im_rot270_v_BM8x8(const BM8x8 *src)
MSX Rotate an 8x8 pixels 1bpp image 270 degrees clockwise.
void im_rot90_v_BM8x8(const BM8x8 *src)
MSX Rotate an 8x8 pixels 1bpp image 90 degrees clockwise.
void im_rot90_BM8x8(const BM8x8 *src, BM8x8 *dst)
MSX Rotate an 8x8 pixels 1bpp image 90 degrees clockwise.
void im_rot270_v_SP16x16(const SP16x16 *src)
MSX Rotate an 16x16 pixels 1bpp sprite pattern 270 degrees clockwise.
void im_rot270_SP16x16(const SP16x16 *src, SP16x16 *dst)
MSX Rotate an 16x16 pixels 1bpp sprite pattern 270 degrees clockwise.
void im_rot90_v_SP16x16(const SP16x16 *src)
MSX Rotate an 16x16 pixels 1bpp sprite pattern 90 degrees clockwise.
void im_vflip_v_SP16x16(const SP16x16 *src)
MSX Flip an 16x16 pixels 1bpp sprite pattern vertically.
void im_rot180_SP16x16(const SP16x16 *src, SP16x16 *dst)
MSX Rotate an 16x16 pixels 1bpp sprite pattern 180 degrees.
void im_tr_SP16x16(const SP16x16 *src, SP16x16 *dst)
MSX Transpose an 16x16 pixels 1bpp sprite pattern around the main diagonal.
void im_adtr_v_SP16x16(const SP16x16 *src)
MSX Transpose an 16x16 pixels 1bpp sprite pattern around the antidiagonal.
void im_vflip_SP16x16(const SP16x16 *src, SP16x16 *dst)
MSX Flip an 16x16 pixels 1bpp sprite pattern vertically.
void im_copy_v_SP16x16(const SP16x16 *src)
MSX Copy an 16x16 pixels 1bpp sprite pattern.
void im_rot90_SP16x16(const SP16x16 *src, SP16x16 *dst)
MSX Rotate an 16x16 pixels 1bpp sprite pattern 90 degrees clockwise.
void im_hflip_SP16x16(const SP16x16 *src, SP16x16 *dst)
MSX Flip an 16x16 pixels 1bpp sprite pattern horizontally.
void im_tr_v_SP16x16(const SP16x16 *src)
MSX Transpose an 16x16 pixels 1bpp sprite pattern around the main diagonal.
void im_copy_SP16x16(const SP16x16 *src, SP16x16 *dst)
MSX Copy an 16x16 pixels 1bpp sprite pattern.
void im_rot180_v_SP16x16(const SP16x16 *src)
MSX Rotate an 16x16 pixels 1bpp sprite pattern 180 degrees.
void im_adtr_SP16x16(const SP16x16 *src, SP16x16 *dst)
MSX Transpose an 16x16 pixels 1bpp sprite pattern around the antidiagonal.
void im_hflip_v_SP16x16(const SP16x16 *src)
MSX Flip an 16x16 pixels 1bpp sprite pattern horizontally.
void im_trim_SP16x16(uint8_t tblr[4], const SP16x16 *src, SP16x16 *dst)
MSX Trim 16x16 pixels 1bpp sprite pattern.
BM8x8 SP8x8
8x8 pixels 1bpp sprite pattern (Type alias for BM8x8).
Definition im.h:177
uint8_t BM8x8[8]
8x8 pixels 1bpp bitmap image (8 rows x 1 byte/row).
Definition im.h:170
BM8x8 SP16x16[4]
16x16 pixels 1bpp sprite pattern (Four 8x8px 1bpp images, top left, bottom left, top right,...
Definition im.h:185