30#ifndef __ARM_2D_HELPER_H__
31#define __ARM_2D_HELPER_H__
35#include "./__arm_2d_helper_common.h"
36#include "./arm_2d_helper_pfb.h"
37#include "./arm_2d_helper_scene.h"
38#include "./arm_2d_disp_adapters.h"
39#include "./arm_2d_helper_list.h"
50# pragma clang diagnostic push
51# pragma clang diagnostic ignored "-Wgnu-zero-variadic-macro-arguments"
52# pragma clang diagnostic ignored "-Wunused-function"
53# pragma clang diagnostic ignored "-Wmissing-declarations"
54# pragma clang diagnostic ignored "-Wpadded"
55#elif defined(__IS_COMPILER_ARM_COMPILER_5__)
56# pragma diag_suppress 64
61#ifdef __ARM_2D_HELPER_IMPLEMENT__
62# define __ARM_2D_IMPL__
63#elif defined(__ARM_2D_HELPER_INHERIT__)
64# undef __ARM_2D_HELPER_INHERIT__
65# define __ARM_2D_INHERIT__
67#include "arm_2d_utils.h"
73#define arm_2d_draw_box arm_2d_helper_draw_box
91#define arm_2d_helper_is_time_out(__ms, ...) \
92 ({ static int64_t arm_2d_safe_name(s_lTimestamp); \
93 __arm_2d_helper_is_time_out(arm_2d_helper_convert_ms_to_ticks(__ms), \
94 (&arm_2d_safe_name(s_lTimestamp),##__VA_ARGS__));})
97#define arm_2d_helper_time_elapsed(__timestamp_ptr) \
98 arm_2d_helper_convert_ticks_to_ms( \
99 __arm_2d_helper_time_elapsed(__timestamp_ptr))
115#define arm_2d_helper_time_liner_slider( __from, \
120 ({static int64_t arm_2d_safe_name(s_lTimestamp); \
121 __arm_2d_helper_time_liner_slider((__from), \
123 arm_2d_helper_convert_ms_to_ticks(__ms), \
125 (&arm_2d_safe_name(s_lTimestamp),##__VA_ARGS__));})
142#define arm_2d_helper_time_cos_slider( __from, \
148 ({static int64_t arm_2d_safe_name(s_lTimestamp); \
149 __arm_2d_helper_time_cos_slider((__from), \
151 arm_2d_helper_convert_ms_to_ticks(__ms), \
154 (&arm_2d_safe_name(s_lTimestamp),##__VA_ARGS__));})
170#define arm_2d_helper_time_half_cos_slider( __from, \
175 ({static int64_t arm_2d_safe_name(s_lTimestamp); \
176 __arm_2d_helper_time_half_cos_slider((__from), \
178 arm_2d_helper_convert_ms_to_ticks(__ms), \
180 (&arm_2d_safe_name(s_lTimestamp),##__VA_ARGS__));})
195#define impl_film( __sprites_tile, \
202 .use_as__arm_2d_tile_t = \
203 impl_child_tile((__sprites_tile), 0, 0, (__width), (__height)), \
204 .hwColumn = (__column), \
205 .hwFrameNum = (__frame_count), \
206 .hwPeriodPerFrame = (__period), \
209#define IMPL_FONT_DRAW_CHAR(__NAME) \
210 arm_fsm_rt_t __NAME(const arm_2d_tile_t *ptTile, \
211 const arm_2d_region_t *ptRegion, \
212 arm_2d_tile_t *ptileChar, \
213 COLOUR_INT tForeColour, \
214 uint_fast8_t chOpacity, \
217#define IMPL_FONT_GET_CHAR_DESCRIPTOR(__NAME) \
218 arm_2d_char_descriptor_t *__NAME( \
219 const arm_2d_font_t *ptFont, \
220 arm_2d_char_descriptor_t *ptDescriptor, \
221 uint8_t *pchCharCode)
254 int32_t nTimeResidual;
262 uint16_t hwDataAvailable;
290 uint8_t *pchCharCode);
296 COLOUR_INT tForeColour,
297 uint_fast8_t chOpacity,
311 uint8_t chStartCode[4];
319 uint16_t hwDefaultCharIndex;
444 int64_t *plTimestamp);
465 int64_t *plTimestamp);
488 int64_t *plTimestamp);
517 int32_t nStartPosition);
530 int32_t nTargetPosition,
544 int16_t iBorderWidth,
707 uint8_t *pchCharCode);
722#if __ARM_2D_HELPER_CFG_LAYOUT_DEBUG_MODE__
725void __arm_2d_helper_layout_debug_print_label(const
arm_2d_tile_t *ptTile,
727 const
char *pchString);
732#if defined(__clang__)
733# pragma clang diagnostic pop
734#elif __IS_COMPILER_ARM_COMPILER_5__
735#pragma diag_warning 64
738#undef __ARM_2D_HELPER_IMPLEMENT__
739#undef __ARM_2D_HELPER_INHERIT__