30#ifndef __ARM_2D_TILE_H__
31#define __ARM_2D_TILE_H__
34#include "arm_2d_types.h"
48#define arm_2d_c8bit_tile_copy_with_colour_masking \
49 arm_2d_c8bit_tile_copy_with_colour_keying
51#define arm_2d_rgb16_tile_copy_with_colour_masking \
52 arm_2d_rgb16_tile_copy_with_colour_keying
54#define arm_2d_rgb32_tile_copy_with_colour_masking \
55 arm_2d_rgb32_tile_copy_with_colour_keying
64#define arm_2d_c8bit_tile_copy( __SRC_ADDR, \
68 arm_2dp_c8bit_tile_copy(NULL, \
71 (__DES_REGION_ADDR), \
74#define arm_2d_rgb16_tile_copy( __SRC_ADDR, \
78 arm_2dp_rgb16_tile_copy(NULL, \
81 (__DES_REGION_ADDR), \
84#define arm_2d_rgb32_tile_copy( __SRC_ADDR, \
88 arm_2dp_rgb32_tile_copy(NULL, \
91 (__DES_REGION_ADDR), \
94#define arm_2d_c8bit_tile_copy_only( \
98 arm_2dp_c8bit_tile_copy_only(NULL, \
103#define arm_2d_rgb16_tile_copy_only( \
107 arm_2dp_rgb16_tile_copy_only(NULL, \
112#define arm_2d_rgb32_tile_copy_only( \
116 arm_2dp_rgb32_tile_copy_only(NULL, \
121#define arm_2d_c8bit_tile_copy_with_x_mirror( \
125 arm_2dp_c8bit_tile_copy_with_x_mirror( \
131#define arm_2d_rgb16_tile_copy_with_x_mirror( \
135 arm_2dp_rgb16_tile_copy_with_x_mirror( \
141#define arm_2d_rgb32_tile_copy_with_x_mirror( \
145 arm_2dp_rgb32_tile_copy_with_x_mirror( \
151#define arm_2d_c8bit_tile_copy_with_y_mirror( \
155 arm_2dp_c8bit_tile_copy_with_y_mirror( \
161#define arm_2d_rgb16_tile_copy_with_y_mirror( \
165 arm_2dp_rgb16_tile_copy_with_y_mirror( \
171#define arm_2d_rgb32_tile_copy_with_y_mirror( \
175 arm_2dp_rgb32_tile_copy_with_y_mirror( \
181#define arm_2d_c8bit_tile_copy_with_xy_mirror( \
185 arm_2dp_c8bit_tile_copy_with_xy_mirror( \
191#define arm_2d_rgb16_tile_copy_with_xy_mirror( \
195 arm_2dp_rgb16_tile_copy_with_xy_mirror( \
201#define arm_2d_rgb32_tile_copy_with_xy_mirror( \
205 arm_2dp_rgb32_tile_copy_with_xy_mirror( \
211#define arm_2d_c8bit_tile_fill_only( \
215 arm_2dp_c8bit_tile_fill_only(NULL, \
220#define arm_2d_rgb16_tile_fill_only( \
224 arm_2dp_rgb16_tile_fill_only(NULL, \
229#define arm_2d_rgb32_tile_fill_only( \
233 arm_2dp_rgb32_tile_fill_only(NULL, \
238#define arm_2d_c8bit_tile_fill_with_x_mirror( \
242 arm_2dp_c8bit_tile_fill_with_x_mirror( \
248#define arm_2d_rgb16_tile_fill_with_x_mirror( \
252 arm_2dp_rgb16_tile_fill_with_x_mirror( \
258#define arm_2d_rgb32_tile_fill_with_x_mirror( \
262 arm_2dp_rgb32_tile_fill_with_x_mirror( \
268#define arm_2d_c8bit_tile_fill_with_y_mirror( \
272 arm_2dp_c8bit_tile_fill_with_y_mirror( \
278#define arm_2d_rgb16_tile_fill_with_y_mirror( \
282 arm_2dp_rgb16_tile_fill_with_y_mirror( \
288#define arm_2d_rgb32_tile_fill_with_y_mirror( \
292 arm_2dp_rgb32_tile_fill_with_y_mirror( \
298#define arm_2d_c8bit_tile_fill_with_xy_mirror( \
302 arm_2dp_c8bit_tile_fill_with_xy_mirror( \
308#define arm_2d_rgb16_tile_fill_with_xy_mirror( \
312 arm_2dp_rgb16_tile_fill_with_xy_mirror( \
318#define arm_2d_rgb32_tile_fill_with_xy_mirror( \
322 arm_2dp_rgb32_tile_fill_with_xy_mirror( \
328#define arm_2d_c8bit_tile_copy_with_colour_keying( \
334 arm_2dp_c8bit_tile_copy_with_colour_keying( \
338 (__DES_REGION_ADDR), \
343#define arm_2d_rgb16_tile_copy_with_colour_keying( \
349 arm_2dp_rgb16_tile_copy_with_colour_keying( \
353 (__DES_REGION_ADDR), \
357#define arm_2d_rgb32_tile_copy_with_colour_keying( \
363 arm_2dp_rgb32_tile_copy_with_colour_keying( \
367 (__DES_REGION_ADDR), \
371#define arm_2d_c8bit_tile_copy_with_colour_keying_only( \
376 arm_2dp_c8bit_tile_copy_with_colour_keying_only( \
380 (__DES_REGION_ADDR), \
384#define arm_2d_rgb16_tile_copy_with_colour_keying_only( \
389 arm_2dp_rgb16_tile_copy_with_colour_keying_only( \
393 (__DES_REGION_ADDR), \
396#define arm_2d_rgb32_tile_copy_with_colour_keying_only( \
401 arm_2dp_rgb32_tile_copy_with_colour_keying_only( \
405 (__DES_REGION_ADDR), \
409#define arm_2d_c8bit_tile_copy_with_colour_keying_and_x_mirror( \
414 arm_2dp_c8bit_tile_copy_with_colour_keying_and_x_mirror( \
418 (__DES_REGION_ADDR), \
421#define arm_2d_rgb16_tile_copy_with_colour_keying_and_x_mirror( \
426 arm_2dp_rgb16_tile_copy_with_colour_keying_and_x_mirror( \
430 (__DES_REGION_ADDR), \
433#define arm_2d_rgb32_tile_copy_with_colour_keying_and_x_mirror( \
438 arm_2dp_rgb32_tile_copy_with_colour_keying_and_x_mirror( \
442 (__DES_REGION_ADDR), \
445#define arm_2d_c8bit_tile_copy_with_colour_keying_and_y_mirror( \
450 arm_2dp_c8bit_tile_copy_with_colour_keying_and_y_mirror( \
454 (__DES_REGION_ADDR), \
457#define arm_2d_rgb16_tile_copy_with_colour_keying_and_y_mirror( \
462 arm_2dp_rgb16_tile_copy_with_colour_keying_and_y_mirror( \
466 (__DES_REGION_ADDR), \
469#define arm_2d_rgb32_tile_copy_with_colour_keying_and_y_mirror( \
474 arm_2dp_rgb32_tile_copy_with_colour_keying_and_y_mirror( \
478 (__DES_REGION_ADDR), \
481#define arm_2d_c8bit_tile_copy_with_colour_keying_and_xy_mirror( \
486 arm_2dp_c8bit_tile_copy_with_colour_keying_and_xy_mirror( \
490 (__DES_REGION_ADDR), \
493#define arm_2d_rgb16_tile_copy_with_colour_keying_and_xy_mirror( \
498 arm_2dp_rgb16_tile_copy_with_colour_keying_and_xy_mirror( \
502 (__DES_REGION_ADDR), \
505#define arm_2d_rgb32_tile_copy_with_colour_keying_and_xy_mirror( \
510 arm_2dp_rgb32_tile_copy_with_colour_keying_and_xy_mirror( \
514 (__DES_REGION_ADDR), \
517#define arm_2d_c8bit_tile_fill_with_colour_keying_only( \
522 arm_2dp_c8bit_tile_fill_with_colour_keying_only( \
526 (__DES_REGION_ADDR), \
530#define arm_2d_rgb16_tile_fill_with_colour_keying_only( \
535 arm_2dp_rgb16_tile_fill_with_colour_keying_only( \
539 (__DES_REGION_ADDR), \
542#define arm_2d_rgb32_tile_fill_with_colour_keying_only( \
547 arm_2dp_rgb32_tile_fill_with_colour_keying_only( \
551 (__DES_REGION_ADDR), \
555#define arm_2d_c8bit_tile_fill_with_colour_keying_and_x_mirror( \
560 arm_2dp_c8bit_tile_fill_with_colour_keying_and_x_mirror( \
564 (__DES_REGION_ADDR), \
567#define arm_2d_rgb16_tile_fill_with_colour_keying_and_x_mirror( \
572 arm_2dp_rgb16_tile_fill_with_colour_keying_and_x_mirror( \
576 (__DES_REGION_ADDR), \
579#define arm_2d_rgb32_tile_fill_with_colour_keying_and_x_mirror( \
584 arm_2dp_rgb32_tile_fill_with_colour_keying_and_x_mirror( \
588 (__DES_REGION_ADDR), \
591#define arm_2d_c8bit_tile_fill_with_colour_keying_and_y_mirror( \
596 arm_2dp_c8bit_tile_fill_with_colour_keying_and_y_mirror( \
600 (__DES_REGION_ADDR), \
603#define arm_2d_rgb16_tile_fill_with_colour_keying_and_y_mirror( \
608 arm_2dp_rgb16_tile_fill_with_colour_keying_and_y_mirror( \
612 (__DES_REGION_ADDR), \
615#define arm_2d_rgb32_tile_fill_with_colour_keying_and_y_mirror( \
620 arm_2dp_rgb32_tile_fill_with_colour_keying_and_y_mirror( \
624 (__DES_REGION_ADDR), \
627#define arm_2d_c8bit_tile_fill_with_colour_keying_and_xy_mirror( \
632 arm_2dp_c8bit_tile_fill_with_colour_keying_and_xy_mirror( \
636 (__DES_REGION_ADDR), \
639#define arm_2d_rgb16_tile_fill_with_colour_keying_and_xy_mirror( \
644 arm_2dp_rgb16_tile_fill_with_colour_keying_and_xy_mirror( \
648 (__DES_REGION_ADDR), \
651#define arm_2d_rgb32_tile_fill_with_colour_keying_and_xy_mirror( \
656 arm_2dp_rgb32_tile_fill_with_colour_keying_and_xy_mirror( \
660 (__DES_REGION_ADDR), \
689#define __arm_2d_get_address_and_region_from_tile( __TILE_PTR, \
690 __VALID_REGION_NAME, \
691 __LOCATION_OFFSET_PTR, \
694 arm_2d_region_t __VALID_REGION_NAME; \
695 assert(NULL != (__TILE_PTR)); \
696 __TYPE *(__BUF_PTR_NAME) = NULL; \
698 (__TILE_PTR) = arm_2d_tile_get_root((__TILE_PTR), \
699 &__VALID_REGION_NAME, \
700 __LOCATION_OFFSET_PTR); \
702 if (NULL != (__TILE_PTR)) { \
703 (__BUF_PTR_NAME) = ((__TYPE *)((__TILE_PTR)->pchBuffer)) \
704 + (__TILE_PTR)->tRegion.tSize.iWidth * \
705 __VALID_REGION_NAME.tLocation.iY \
706 + __VALID_REGION_NAME.tLocation.iX; \
710#define arm_2d_get_address_and_region_from_tile(__TILE_PTR, \
711 __VALID_REGION_NAME, \
712 __LOCATION_OFFSET_PTR, \
715 __arm_2d_get_address_and_region_from_tile( __TILE_PTR, \
716 __VALID_REGION_NAME, \
717 __LOCATION_OFFSET_PTR, \
722#define __arm_2d_get_address_and_region_from_tile_with_mirroring( \
724 __VALID_REGION_NAME, \
725 __LOCATION_OFFSET_PTR, \
729 arm_2d_region_t __VALID_REGION_NAME; \
730 assert(NULL != (__TILE_PTR)); \
731 __TYPE *(__BUF_PTR_NAME) = NULL; \
733 (__TILE_PTR) = arm_2d_tile_get_root((__TILE_PTR), \
734 &__VALID_REGION_NAME, \
735 __LOCATION_OFFSET_PTR); \
737 if (NULL != (__TILE_PTR)) { \
738 arm_2d_location_t tOffset = __VALID_REGION_NAME.tLocation; \
739 if ((__MODE) & ARM_2D_CP_MODE_X_MIRROR) { \
742 if ((__MODE) & ARM_2D_CP_MODE_Y_MIRROR) { \
745 (__BUF_PTR_NAME) = ((__TYPE *)((__TILE_PTR)->pchBuffer)) \
746 + (__TILE_PTR)->tRegion.tSize.iWidth * tOffset.iY \
751#define arm_2d_get_address_and_region_from_tile_with_mirroring( \
753 __VALID_REGION_NAME, \
754 __LOCATION_OFFSET_PTR, \
758 __arm_2d_get_address_and_region_from_tile_with_mirroring( \
760 __VALID_REGION_NAME, \
761 __LOCATION_OFFSET_PTR, \
806 return ptTile->tInfo.bIsRoot;
997 ARM_2D_CP_MODE_COPY = 0,
998 ARM_2D_CP_MODE_FILL = _BV(0),
999 ARM_2D_CP_MODE_Y_MIRROR = _BV(2),
1000 ARM_2D_CP_MODE_X_MIRROR = _BV(3),
1001 ARM_2D_CP_MODE_XY_MIRROR = ARM_2D_CP_MODE_X_MIRROR |
1002 ARM_2D_CP_MODE_Y_MIRROR,
1513 uint8_t chMaskColour,
1536 uint16_t hwMaskColour,
1560 uint32_t wMaskColour,
1585 uint8_t chMaskColour);
1606 uint16_t hwMaskColour);
1628 uint32_t wMaskColour);
1652 uint8_t chMaskColour);
1673 uint16_t hwMaskColour);
1695 uint32_t wMaskColour);
1719 uint8_t chMaskColour);
1740 uint16_t hwMaskColour);
1762 uint32_t wMaskColour);
1785 uint8_t chMaskColour);
1806 uint16_t hwMaskColour);
1828 uint32_t wMaskColour);
1852 uint8_t chMaskColour);
1873 uint16_t hwMaskColour);
1895 uint32_t wMaskColour);
1919 uint8_t chMaskColour);
1940 uint16_t hwMaskColour);
1962 uint32_t wMaskColour);
1986 uint8_t chMaskColour);
2007 uint16_t hwMaskColour);
2029 uint32_t wMaskColour);
2052 uint8_t chMaskColour);
2073 uint16_t hwMaskColour);
2095 uint32_t wMaskColour);