Macros | |
#define | arm_2d_scene_player_register_on_draw_navigation_event_handler( __SCENE_PLAYER_PTR, __DRAW_HANDLER, __USER_TARGET_PTR, ...) |
register / update the evtOnDrawNavigation event handler. You can use this event to draw an ALWAY-TOP navigation bar or title during switching period. More... | |
#define | arm_2d_scene_player_set_switching_mode(__SCENE_PLAYER_PTR, __SWITCH_MODE, ...) |
configure the scene switching mode More... | |
#define | arm_2d_scene_player_register_before_switching_event_handler( __SCENE_PLAYER_PTR, __HANDLER, ...) |
register / update the evtBeforeSwitching event handler. You can use this event to prepare next scenes. More... | |
#define | ARM_2D_FPS_MODE_RENDER_ONLY 0 |
#define | ARM_2D_FPS_MODE_REAL 1 |
#define | ARM_2D_HELPER_PFB_INIT(__CB_ADDR, __SCREEN_WIDTH, __SCREEN_HEIGHT, __PIXEL_TYPE, __COLOUR_FORMAT, __PFB_WIDTH, __PFB_HEIGHT, __PFB_NUM, ...) |
a macro wrapper in uppercase to help initialising PFB service More... | |
#define | ARM_2D_HELPER_PFB_UPDATE_ON_DRAW_HANDLER( __CB_ADDR, __HANDLER, ...) |
a macro wrapper to update the evtOnDrawring event handler More... | |
#define | __IMPL_ARM_2D_REGION_LIST(__NAME, ...) |
#define | IMPL_ARM_2D_REGION_LIST(__NAME, ...) __IMPL_ARM_2D_REGION_LIST(__NAME,##__VA_ARGS__) |
#define | END_IMPL_ARM_2D_REGION_LIST(...) }; |
#define | __ADD_REGION_TO_LIST(__NAME, ...) |
#define | ADD_REGION_TO_LIST(__NAME, ...) __ADD_REGION_TO_LIST(__NAME, ##__VA_ARGS__) |
#define | __ADD_LAST_REGION_TO_LIST(__NAME, ...) |
#define | ADD_LAST_REGION_TO_LIST(__NAME, ...) __ADD_LAST_REGION_TO_LIST(__NAME, ##__VA_ARGS__) |
#define | IMPL_PFB_ON_DRAW(__NAME) IMPL_ON_DRAW_EVT(__NAME) |
#define | IMPL_PFB_ON_LOW_LV_RENDERING(__NAME) |
#define | IMPL_PFB_ON_FRAME_SYNC_UP(__NAME) bool __NAME(void *pTarget) |
#define | IMPL_PFB_BEFORE_FLUSHING(__NAME) |
#define | init_arm_2d_helper_pfb(__CB_ADDR, __SCREEN_WIDTH, __SCREEN_HEIGHT, __PIXEL_TYPE, __COLOUR_FORMAT, __WIDTH, __HEIGHT, __PFB_NUM, ...) |
a macro wrapper in lowercase to help initialising PFB service More... | |
#define | update_arm_2d_helper_pfb_on_draw_handler( __CB_ADDR, __HANDLER, ...) |
a macro wrapper to update the evtOnDrawring event handler More... | |
#define | arm_2d_helper_pfb_report_rendering_complete(__PFB_HELPER_PTR, ...) |
tell PFB helper that a low level LCD flushing work is complete More... | |
#define | __arm_2d_helper_dirty_region_update_dirty_regions0 __arm_2d_helper_dirty_region_update_dirty_regions |
#define | __arm_2d_helper_dirty_region_update_dirty_regions3(__helper_ptr, __tile_ptr, __visible_area_ptr, __new_region_ptr, __is_new_frame) |
update a specified new region while erase the previous region More... | |
#define | __arm_2d_helper_dirty_region_update_dirty_regions1(__helper_ptr, __tile_ptr, __new_region_ptr) |
update a specified new region while erase the previous region More... | |
#define | arm_2d_helper_dirty_region_update_dirty_regions( __helper_ptr, __tile_ptr, ...) |
update a specified new region while erase the previous region More... | |
#define | impl_arm_2d_region_list(__NAME, ...) IMPL_ARM_2D_REGION_LIST(__NAME,##__VA_ARGS__) |
#define | add_region_to_list(__NAME, ...) ADD_REGION_TO_LIST(__NAME, ##__VA_ARGS__) |
#define | add_last_region_to_list(__NAME, ...) ADD_LAST_REGION_TO_LIST(__NAME, ##__VA_ARGS__) |
#define | end_impl_arm_2d_region_list(...) END_IMPL_ARM_2D_REGION_LIST(__VA_ARGS__) |
#define | impl_pfb_on_draw(__NAME) IMPL_PFB_ON_DRAW(__NAME) |
#define | impl_pfb_on_low_lv_rendering(__NAME) IMPL_PFB_ON_LOW_LV_RENDERING(__NAME) |
#define | ARM_2D_3FB_INVALID_IDX 3 |
#define | ARM_CONTROL_ENUMERATE(__ROOT, __ITEM_NAME, __POLICY) |
#define | arm_control_enumerate ARM_CONTROL_ENUMERATE |
#define | arm_ctrl_enum ARM_CONTROL_ENUMERATE |
#define | ARM_CTRL_ENUM ARM_CONTROL_ENUMERATE |
#define | arm_ctrl_foreach ARM_CONTROL_ENUMERATE |
#define | ARM_CTRL_FOREACH ARM_CONTROL_ENUMERATE |
#define | __GLCD_CFG_COLOUR_DEPTH__ 16 |
#define | COLOUR_INT_TYPE uint16_t |
#define | __GLCD_CFG_SCEEN_WIDTH__ 320 |
#define | __GLCD_CFG_SCEEN_HEIGHT__ 320 |
#define | __arm_print_banner3(__STR, __REGION, __FONT_PTR) |
#define | __arm_print_banner2(__STR, __REGION) __arm_print_banner3(__STR, __REGION, NULL) |
#define | __arm_print_banner1(__STR) |
#define | arm_print_banner(...) |
#define | arm_lcd_print_banner(...) arm_print_banner(__VA_ARGS__) |
#define | arm_lcd_get_string_line_box(__STR, ...) |
#define | IMPL_FONT_DRAW_CHAR(__NAME) |
#define | IMPL_FONT_GET_CHAR_DESCRIPTOR(__NAME) |
#define | arm_2d_helper_is_time_out(__ms, ...) |
set an alarm with given period and check the status More... | |
#define | arm_2d_helper_time_elapsed(__timestamp_ptr) |
#define | arm_2d_helper_time_liner_slider(__from, __to, __ms, __stroke_ptr, ...) |
calculate the stroke of a liner slider based on time More... | |
#define | arm_2d_helper_time_cos_slider(__from, __to, __ms, __phase, __stroke_ptr, ...) |
calculate the stroke of a cosine slider based on time More... | |
#define | arm_2d_helper_time_half_cos_slider(__from, __to, __ms, __stroke_ptr, ...) |
calculate the stroke of a cosine slider(0~pi) based on time More... | |
#define | impl_film( __sprites_tile, __width, __height, __column, __frame_count, __period) |
initialize/implement a given film (arm_2d_helper_file_t) object at compile-time. More... | |
Typedefs | |
typedef void | arm_2d_scene_before_scene_switching_handler_t(void *pTarget, arm_2d_scene_player_t *ptPlayer, arm_2d_scene_t *ptScene) |
the scene player event handler More... | |
typedef arm_fsm_rt_t | arm_2d_draw_list_item_handler_t(arm_2d_list_item_t *ptThis, const arm_2d_tile_t *ptTile, bool bIsNewFrame, arm_2d_list_item_param_t *ptParam) |
the prototype of On-Drawing-List-Item event handler More... | |
typedef arm_2d_list_item_t * | __arm_2d_list_item_iterator(__arm_2d_list_core_t *ptThis, arm_2d_list_iterator_dir_t tDirection, uint_fast16_t hwID) |
the list core interator prototype More... | |
typedef __arm_2d_list_work_area_t * | __arm_2d_list_region_calculator_t(__arm_2d_list_core_t *ptThis, __arm_2d_list_item_iterator *fnIterator, int32_t nOffset) |
the list region calculaor prototype More... | |
typedef bool | arm_2d_helper_2d_copy_handler_t(arm_2d_helper_3fb_t *ptThis, void *pObj, uintptr_t pnSource, uint32_t wSourceStride, uintptr_t pnTarget, uint32_t wTargetStride, int16_t iWidth, int16_t iHeight, uint_fast8_t chBytePerPixel) |
An interface for 2D-Copy. More... | |
typedef void | arm_2d_helper_dma_copy_handler_t(arm_2d_helper_3fb_t *ptThis, void *pObj, uintptr_t pnSource, uintptr_t pnTarget, uint32_t nDataItemCount, uint_fast8_t chDataItemSize) |
An interface for DMA memory-to-memory copy. If you have a DMA, you can implement this function by using __OVERRIDE_WEAK. You should implement an ISR for copy-complete event and call arm_2d_helper_3fb_report_dma_copy_complete() to notify the 3FB (direct mode) helper service. More... | |
typedef void | arm_2d_helper_render_handler_t(void *pTarget, const arm_2d_pfb_t *ptPFB, bool bIsNewFrame) |
the On Low Level Rendering event handler for the low level (LCD Driver) More... | |
typedef bool | arm_2d_helper_before_flushing_handler_t(void *pTarget, arm_2d_pfb_t *ptOrigin, arm_2d_pfb_t *ptScratch) |
before-flushing event handler More... | |
typedef arm_2d_char_descriptor_t * | arm_2d_font_get_char_descriptor_handler_t(const arm_2d_font_t *ptFont, arm_2d_char_descriptor_t *ptDescriptor, uint8_t *pchCharCode) |
typedef arm_fsm_rt_t | arm_2d_font_draw_char_handler_t(const arm_2d_tile_t *ptTile, const arm_2d_region_t *ptRegion, const arm_2d_font_t *ptFont, arm_2d_tile_t *ptileChar, COLOUR_INT tForeColour, uint_fast8_t chOpacity, float fScale) |
Functions | |
void | arm_2d_scene_player_flush_fifo (arm_2d_scene_player_t *ptThis) |
flush the scene FIFO More... | |
void | arm_2d_scene_player_append_scenes (arm_2d_scene_player_t *ptThis, arm_2d_scene_t *ptScenes, int_fast16_t hwCount) |
append a set of scenes to a scene player More... | |
void | arm_2d_scene_player_update_scene_background (arm_2d_scene_player_t *ptThis) |
request updating the background of the current scene More... | |
arm_2d_size_t | arm_2d_scene_player_get_screen_size (arm_2d_scene_player_t *ptThis) |
get the screen size of a specified display adapter. More... | |
void | arm_2d_scene_player_switch_to_next_scene (arm_2d_scene_player_t *ptThis) |
request switching to the next scene safely More... | |
void | __arm_2d_scene_player_set_switching_mode (arm_2d_scene_player_t *ptThis, arm_2d_scene_switch_mode_t *ptMode, uint16_t hwSettings) |
configure the scene switching mode More... | |
uint16_t | arm_2d_scene_player_get_switching_cfg (arm_2d_scene_player_t *ptThis) |
read the current scene switching mode More... | |
void | arm_2d_scene_player_set_auto_switching_period (arm_2d_scene_player_t *ptThis, int_fast16_t iMS) |
configure the scene switching period in auto-switching More... | |
void | arm_2d_scene_player_set_manual_switching_offset (arm_2d_scene_player_t *ptThis, arm_2d_location_t tPointer) |
use manual switch mode and set the offset More... | |
arm_2d_err_t | arm_2d_scene_player_finish_manual_switching (arm_2d_scene_player_t *ptThis, bool bMoveToPreviousScene, int_fast16_t iInMS) |
end the manual switching and finish the left part in a specific period (ms) More... | |
bool | arm_2d_scene_player_is_switching (arm_2d_scene_player_t *ptThis) |
check whether scene player is switching scenes More... | |
arm_2d_scene_player_switch_status_t | arm_2d_scene_player_get_switching_status (arm_2d_scene_player_t *ptThis) |
get the scene player switching status More... | |
arm_2d_err_t | __arm_2d_scene_player_register_on_draw_navigation_event_handler (arm_2d_scene_player_t *ptThis, arm_2d_helper_draw_handler_t *fnHandler, void *pTarget, arm_2d_region_list_item_t *ptDirtyRegions) |
register / update the evtOnDrawNavigation event handler. You can use this event to draw an ALWAY-TOP navigation bar or title during switching period. More... | |
void | arm_2d_scene_player_hide_navigation_layer (arm_2d_scene_player_t *ptThis) |
hide the navigation layer More... | |
void | arm_2d_scene_player_show_navigation_layer (arm_2d_scene_player_t *ptThis) |
show the navigation layer if there is a valid one More... | |
arm_2d_err_t | __arm_2d_scene_player_register_before_switching_event_handler (arm_2d_scene_player_t *ptThis, arm_2d_scene_before_scene_switching_handler_t *fnHandler, void *pTarget) |
register / update the evtBeforeSwitching event handler. You can use this event to prepare next scenes. More... | |
arm_fsm_rt_t | arm_2d_scene_player_task (arm_2d_scene_player_t *ptThis) |
the scene player task function More... | |
bool | arm_2d_scene_player_append_dirty_regions (arm_2d_scene_t *ptScene, arm_2d_region_list_item_t *ptItems, size_t tCount) |
append dirty regions to the a specified scene More... | |
bool | arm_2d_scene_player_remove_dirty_regions (arm_2d_scene_t *ptScene, arm_2d_region_list_item_t *ptItems, size_t tCount) |
remove dirty regions from the a specified scene More... | |
arm_2d_scene_t * | arm_2d_scene_player_get_the_current_scene (arm_2d_scene_player_t *ptThis) |
get the current scene of a given scene player More... | |
arm_2d_region_list_item_t * | arm_2d_scene_player_dynamic_dirty_region_init (arm_2d_region_list_item_t *ptThis, arm_2d_scene_t *ptScene) |
initialize a user dynamic dirty region More... | |
void | arm_2d_scene_player_dynamic_dirty_region_depose (arm_2d_region_list_item_t *ptThis, arm_2d_scene_t *ptScene) |
depose a given user dynamic dirty region More... | |
arm_2d_err_t | __arm_2d_list_core_init (__arm_2d_list_core_t *ptThis, __arm_2d_list_core_cfg_t *ptCFG) |
initialize a target list core object More... | |
arm_2d_size_t | __arm_2d_list_core_get_list_size (__arm_2d_list_core_t *ptThis) |
get the size of the target list More... | |
arm_fsm_rt_t | __arm_2d_list_core_show (__arm_2d_list_core_t *ptThis, const arm_2d_tile_t *ptTarget, const arm_2d_region_t *ptRegion, bool bIsNewFrame) |
show a given list core More... | |
void | __arm_2d_list_core_move_request (__arm_2d_list_core_t *ptThis, int16_t iSteps, int32_t nFinishInMs) |
request to move selection with specified steps More... | |
void | __arm_2d_list_core_move_offset (__arm_2d_list_core_t *ptThis, int16_t iOffset) |
move selection with specified pixel offset More... | |
uint16_t | __arm_2d_list_core_get_selected_item_id (__arm_2d_list_core_t *ptThis) |
get the currently selected item id More... | |
arm_2d_list_item_t * | __arm_2d_list_core_get_selected_item (__arm_2d_list_core_t *ptThis) |
get the currently selected item More... | |
bool | __arm_2d_list_core_need_redraw (__arm_2d_list_core_t *ptThis, bool bAutoreset) |
check whether the list need a redraw More... | |
bool | __arm_2d_list_core_is_list_moving (__arm_2d_list_core_t *ptThis) |
check whether the list is moving its items More... | |
arm_2d_list_item_t * | __arm_2d_list_core_get_item (__arm_2d_list_core_t *ptThis, __arm_2d_list_item_iterator *fnIterator, arm_2d_list_iterator_dir_t tDirection, uint16_t hwID, bool bIgnoreStatusCheck, bool bForceRingMode) |
get list item with a specified direction instruction More... | |
arm_2d_err_t | arm_2d_helper_pfb_init (arm_2d_helper_pfb_t *ptThis, arm_2d_helper_pfb_cfg_t *ptCFG) |
initialize pfb helper service More... | |
void | arm_2d_helper_pfb_deinit (arm_2d_helper_pfb_t *ptThis) |
uninitialize pfb helper service More... | |
arm_2d_region_t | arm_2d_helper_pfb_get_display_area (arm_2d_helper_pfb_t *ptThis) |
get the display (screen) region More... | |
arm_2d_location_t | arm_2d_helper_pfb_get_absolute_location (arm_2d_tile_t *ptTile, arm_2d_location_t tLocation) |
get the absolute location for a given location on the target tile canvas More... | |
arm_2d_size_t | arm_2d_helper_pfb_get_pfb_size (arm_2d_helper_pfb_t *ptThis) |
get the inital PFB size More... | |
bool | arm_2d_helper_pfb_is_region_being_drawing (const arm_2d_tile_t *ptTarget, const arm_2d_region_t *ptRegion, const arm_2d_tile_t **ppVirtualScreen) |
test whether specified region is being drawing More... | |
bool | arm_2d_helper_pfb_is_region_active (const arm_2d_tile_t *ptTarget, const arm_2d_region_t *ptRegion, bool bConsiderDryRun) |
test whether the target region is active (used by PFB service) More... | |
arm_fsm_rt_t | arm_2d_helper_pfb_task (arm_2d_helper_pfb_t *ptThis, arm_2d_region_list_item_t *ptDirtyRegions) |
the task function for pfb helper More... | |
void | arm_2d_helper_pfb_flush (arm_2d_helper_pfb_t *ptThis) |
flush the FPB FIFO More... | |
void | arm_2d_helper_hide_navigation_layer (arm_2d_helper_pfb_t *ptThis) |
hide the navigation layer More... | |
void | arm_2d_helper_show_navigation_layer (arm_2d_helper_pfb_t *ptThis) |
show the navigation layer if there is a valid one More... | |
void | __arm_2d_helper_pfb_enable_drawing_canvas_colour (arm_2d_helper_pfb_t *ptThis, arm_2d_colour_t tColour) |
enable filling canvas with specified colour More... | |
void | __arm_2d_helper_pfb_disable_drawing_canvas_colour (arm_2d_helper_pfb_t *ptThis) |
disable filling canvas with specified colour More... | |
void | arm_2d_helper_ignore_low_level_flush (arm_2d_helper_pfb_t *ptThis) |
ignore the low level PFB flushing only More... | |
void | arm_2d_helper_resume_low_level_flush (arm_2d_helper_pfb_t *ptThis) |
resume the low level PFB flushing More... | |
arm_2d_err_t | arm_2d_helper_pfb_update_dependency (arm_2d_helper_pfb_t *ptThis, uint_fast8_t chMask, const arm_2d_helper_pfb_dependency_t *ptDependency) |
update PFB dependency (event handlers) More... | |
void | __arm_2d_helper_pfb_report_rendering_complete (arm_2d_helper_pfb_t *ptThis, arm_2d_pfb_t *ptPFB) |
tell PFB helper that a low level LCD flushing work is complete More... | |
arm_2d_pfb_t * | __arm_2d_helper_pfb_new (arm_2d_helper_pfb_t *ptThis) |
try to get a PFB block from the pool More... | |
void | __arm_2d_helper_pfb_free (arm_2d_helper_pfb_t *ptThis, arm_2d_pfb_t *ptPFB) |
free a PFB block to the pool More... | |
void | arm_2d_helper_3fb_init (arm_2d_helper_3fb_t *ptThis, const arm_2d_helper_3fb_cfg_t *ptCFG) |
initialize the 3FB (direct mode) service More... | |
void | arm_2d_helper_3fb_report_dma_copy_complete (arm_2d_helper_3fb_t *ptThis) |
report the copy-completion event to the 3FB (direct mode) service More... | |
void * | arm_2d_helper_3fb_get_flush_pointer (arm_2d_helper_3fb_t *ptThis) |
get a pointer for flushing More... | |
bool | __arm_2d_helper_3fb_draw_bitmap (arm_2d_helper_3fb_t *ptThis, const arm_2d_pfb_t *ptPFB) |
please do NOT use this function. It is used by the display adapter. More... | |
arm_2d_pfb_t * | __arm_2d_helper_pfb_rotate90_c8bit (arm_2d_pfb_t *ptOrigin, arm_2d_pfb_t *ptScratch, const arm_2d_size_t *ptScreenSize) |
rotate a given c8bit PFB for 90 degree More... | |
arm_2d_pfb_t * | __arm_2d_helper_pfb_rotate180_c8bit (arm_2d_pfb_t *ptOrigin, arm_2d_pfb_t *ptScratch, const arm_2d_size_t *ptScreenSize) |
rotate a given c8bit PFB for 180 degree More... | |
arm_2d_pfb_t * | __arm_2d_helper_pfb_rotate270_c8bit (arm_2d_pfb_t *ptOrigin, arm_2d_pfb_t *ptScratch, const arm_2d_size_t *ptScreenSize) |
rotate a given c8bit PFB for 270 degree More... | |
arm_2d_pfb_t * | __arm_2d_helper_pfb_rotate90_rgb16 (arm_2d_pfb_t *ptOrigin, arm_2d_pfb_t *ptScratch, const arm_2d_size_t *ptScreenSize) |
rotate a given rgb16 PFB for 90 degree More... | |
arm_2d_pfb_t * | __arm_2d_helper_pfb_rotate180_rgb16 (arm_2d_pfb_t *ptOrigin, arm_2d_pfb_t *ptScratch, const arm_2d_size_t *ptScreenSize) |
rotate a given rgb16 PFB for 180 degree More... | |
arm_2d_pfb_t * | __arm_2d_helper_pfb_rotate270_rgb16 (arm_2d_pfb_t *ptOrigin, arm_2d_pfb_t *ptScratch, const arm_2d_size_t *ptScreenSize) |
rotate a given rgb16 PFB for 270 degree More... | |
arm_2d_pfb_t * | __arm_2d_helper_pfb_rotate90_rgb32 (arm_2d_pfb_t *ptOrigin, arm_2d_pfb_t *ptScratch, const arm_2d_size_t *ptScreenSize) |
rotate a given rgb32 PFB for 90 degree More... | |
arm_2d_pfb_t * | __arm_2d_helper_pfb_rotate180_rgb32 (arm_2d_pfb_t *ptOrigin, arm_2d_pfb_t *ptScratch, const arm_2d_size_t *ptScreenSize) |
rotate a given rgb32 PFB for 180 degree More... | |
arm_2d_pfb_t * | __arm_2d_helper_pfb_rotate270_rgb32 (arm_2d_pfb_t *ptOrigin, arm_2d_pfb_t *ptScratch, const arm_2d_size_t *ptScreenSize) |
rotate a given rgb32 PFB for 270 degree More... | |
bool | arm_2d_helper_pfb_append_dirty_regions_to_list (arm_2d_region_list_item_t **ppDirtyRegionList, arm_2d_region_list_item_t *ptItems, size_t tCount) |
append dirty regions to the a specified list More... | |
bool | arm_2d_helper_pfb_remove_dirty_regions_from_list (arm_2d_region_list_item_t **ppDirtyRegionList, arm_2d_region_list_item_t *ptItems, size_t tCount) |
remove dirty regions from the a specified list More... | |
bool | arm_2d_dirty_region_item_ignore_set (arm_2d_region_list_item_t *ptThis, bool bIgnore) |
decide whether ignore the specified dirty region item More... | |
bool | arm_2d_dirty_region_item_ignore_get (arm_2d_region_list_item_t *ptThis) |
get the ignore status of a given dirty region item More... | |
void | arm_2d_helper_pfb_enable_dirty_region_optimization (arm_2d_helper_pfb_t *ptThis, arm_2d_region_list_item_t *ptRegions, uint_fast8_t chCount) |
enable dirty region optimization service More... | |
void | arm_2d_helper_pfb_disable_dirty_region_optimization (arm_2d_helper_pfb_t *ptThis) |
disable dirty region optimization service More... | |
void | arm_2d_dynamic_dirty_region_on_frame_start (arm_2d_region_list_item_t *ptThis, uint8_t chUserRegionIndex) |
the on-frame-start event handler for a given user dynamic dirty region More... | |
arm_2d_region_list_item_t * | arm_2d_dynamic_dirty_region_init (arm_2d_region_list_item_t *ptThis) |
initialize a dynamic dirty region More... | |
void | arm_2d_dynamic_dirty_region_depose (arm_2d_region_list_item_t *ptThis) |
depose a given dynamic dirty region More... | |
uint_fast8_t | arm_2d_dynamic_dirty_region_wait_next (arm_2d_region_list_item_t *ptThis) |
wait for the PFB helper service requesting the next region More... | |
void | arm_2d_dynamic_dirty_region_update (arm_2d_region_list_item_t *ptThis, arm_2d_tile_t *ptTarget, arm_2d_region_t *ptRegion, uint8_t chNextUserIndex) |
update a given user dynamic dirty region with a new region More... | |
void | arm_2d_dynamic_dirty_region_change_user_region_index_only (arm_2d_region_list_item_t *ptThis, uint8_t chNextUserIndex) |
only change the user region index without update the dynamic dirty region More... | |
void | arm_2d_helper_dirty_region_init (arm_2d_helper_dirty_region_t *ptThis, arm_2d_region_list_item_t **ppDirtyRegionList) |
initialize a given dirtt region helper More... | |
void | arm_2d_helper_dirty_region_add_items (arm_2d_helper_dirty_region_t *ptThis, arm_2d_helper_dirty_region_item_t *ptItems, uint_fast16_t hwCount) |
add an array of region items to a dirty region helper More... | |
void | arm_2d_helper_dirty_region_remove_items (arm_2d_helper_dirty_region_t *ptThis, arm_2d_helper_dirty_region_item_t *ptItems, uint_fast16_t hwCount) |
remove an array of region items to a dirty region helper More... | |
arm_2d_helper_dirty_region_item_t * | arm_2d_helper_dirty_region_depose (arm_2d_helper_dirty_region_t *ptThis) |
depose a given dirty region helper More... | |
void | arm_2d_helper_dirty_region_on_frame_start (arm_2d_helper_dirty_region_t *ptThis) |
the on-frame-start event handler for a given dirty region helper More... | |
void | arm_2d_helper_dirty_region_update_item (arm_2d_helper_dirty_region_t *ptHelper, arm_2d_helper_dirty_region_item_t *ptThis, const arm_2d_tile_t *ptTargetTile, const arm_2d_region_t *ptVisibleArea, const arm_2d_region_t *ptNewRegion) |
update a specified new region while erase the previous region More... | |
void | __arm_2d_helper_dirty_region_update_dirty_regions (arm_2d_helper_dirty_region_t *ptThis, const arm_2d_tile_t *ptTargetTile) |
update a specified new region while erase the previous region More... | |
void | __arm_2d_helper_dirty_region_update_dirty_regions2 (arm_2d_helper_dirty_region_t *ptThis, const arm_2d_tile_t *ptTargetTile, const arm_2d_region_t *ptVisibleArea, const arm_2d_region_t *ptNewRegion) |
update a specified new region while erase the previous region More... | |
bool | arm_2d_helper_dirty_region_item_force_to_use_minimal_enclosure (arm_2d_helper_dirty_region_item_t *ptThis, bool bEnable) |
force an arm_2d_helper_dirty_region_item_t object to use the minimal enclosure region to update. More... | |
bool | arm_2d_helper_dirty_region_force_to_use_minimal_enclosure (arm_2d_helper_dirty_region_t *ptThis, bool bEnable) |
force the dirty region helper to use the minimal enclosure region to update. More... | |
bool | arm_2d_helper_dirty_region_suspend_update (arm_2d_helper_dirty_region_t *ptThis, bool bEnable) |
force the dirty region helper to suspend the dirty region update. More... | |
bool | arm_2d_helper_dirty_region_item_suspend_update (arm_2d_helper_dirty_region_item_t *ptThis, bool bEnable) |
force the arm_2d_helper_dirty_region_item_t object to suspend the dirty region update. More... | |
void | arm_2d_helper_transform_init (arm_2d_helper_transform_t *ptThis, arm_2d_op_t *ptTransformOP, float fAngleStep, float fScaleStep, arm_2d_region_list_item_t **ppDirtyRegionList) |
initialize a given transform helper More... | |
void | arm_2d_helper_transform_depose (arm_2d_helper_transform_t *ptThis) |
depose a given transform helper More... | |
void | arm_2d_helper_transform_on_frame_begin (arm_2d_helper_transform_t *ptThis) |
the on-frame-begin event handler for a given transform helper More... | |
void | arm_2d_helper_transform_force_update (arm_2d_helper_transform_t *ptThis) |
force transform helper to update dirty region More... | |
bool | arm_2d_helper_transform_force_to_use_minimal_enclosure (arm_2d_helper_transform_t *ptThis, bool bEnable) |
force the transform helper to use the minimal enclosure region as the dirty region. More... | |
bool | arm_2d_helper_transform_suspend_update (arm_2d_helper_transform_t *ptThis, bool bEnable) |
force the transform helper to suspend the dirty region update. More... | |
void | arm_2d_helper_transform_update_value (arm_2d_helper_transform_t *ptThis, float fAngle, float fScale) |
update a given transform helper with new values More... | |
void | arm_2d_helper_transform_update_dirty_regions (arm_2d_helper_transform_t *ptThis, const arm_2d_region_t *ptCanvas, bool bIsNewFrame) |
update the dirty region after a transform operation More... | |
void | arm_2d_helper_dirty_region_transform_init (arm_2d_helper_dirty_region_transform_t *ptThis, arm_2d_helper_dirty_region_t *ptHelper, arm_2d_op_t *ptTransformOP, float fAngleStep, float fScaleStep) |
initialize a given dirty region transform helper More... | |
void | arm_2d_helper_dirty_region_transform_depose (arm_2d_helper_dirty_region_transform_t *ptThis) |
depose a given dirty region transform helper More... | |
void | arm_2d_helper_dirty_region_transform_on_frame_start (arm_2d_helper_dirty_region_transform_t *ptThis) |
the on-frame-begin event handler for a given dirty region transform helper More... | |
void | arm_2d_helper_dirty_region_transform_force_update (arm_2d_helper_dirty_region_transform_t *ptThis) |
force a dirty region transform helper to update its dirty region More... | |
bool | arm_2d_helper_dirty_region_transform_force_to_use_minimal_enclosure (arm_2d_helper_dirty_region_transform_t *ptThis, bool bEnable) |
force a dirty region transform helper to use the minimal enclosure region as the dirty region. More... | |
bool | arm_2d_helper_dirty_region_transform_suspend_update (arm_2d_helper_dirty_region_transform_t *ptThis, bool bEnable) |
force a dirty region transform helper to suspend updating. More... | |
void | arm_2d_helper_dirty_region_transform_update_value (arm_2d_helper_dirty_region_transform_t *ptThis, float fAngle, float fScale) |
update a given dirty region transform helper with new values More... | |
void | arm_2d_helper_dirty_region_transform_update (arm_2d_helper_dirty_region_transform_t *ptThis, const arm_2d_region_t *ptCanvas, bool bIsNewFrame) |
update the dirty region after a transform operation More... | |
arm_2d_err_t | arm_2d_helper_control_enum_init (arm_2d_control_enumerator_t *ptThis, const arm_2d_control_enumeration_policy_t *ptPolicy, const arm_2d_control_node_t *ptRoot) |
Initialize a enumerator for the target element tree with a given traversal policy. More... | |
arm_2d_control_node_t * | arm_2d_helper_control_enum_get_next_node (arm_2d_control_enumerator_t *ptThis) |
get the next node of the target enumerator More... | |
arm_2d_err_t | arm_2d_helper_control_enum_depose (arm_2d_control_enumerator_t *ptThis) |
depose (de-initialize) a given enumerator More... | |
arm_2d_control_node_t * | arm_2d_helper_control_find_node_with_location (arm_2d_control_node_t *ptRoot, arm_2d_location_t tLocation) |
find the top node on the screen with a given touch location. More... | |
arm_2d_region_t * | arm_2d_helper_control_get_absolute_region (arm_2d_control_node_t *ptNode, arm_2d_region_t *ptOutRegion, bool bClip) |
get the absolute region of a given target control in an element tree More... | |
int8_t | arm_2d_helper_get_utf8_byte_valid_length (const uint8_t *pchChar) |
return a valid code length of a given UTF8 char More... | |
int8_t | arm_2d_helper_get_utf8_byte_length (const uint8_t *pchChar) |
return the code length based on the first byte of a given UTF8 char More... | |
uint32_t | arm_2d_helper_utf8_to_unicode (const uint8_t *pchUTF8) |
convert an UTF8 char into unicode char More... | |
arm_2d_char_descriptor_t * | arm_2d_helper_get_char_descriptor (const arm_2d_font_t *ptFont, arm_2d_char_descriptor_t *ptDescriptor, uint8_t *pchCharCode) |
get char descriptor More... | |
void | arm_lcd_text_init (arm_2d_region_t *ptScreen) |
initialize lcd text display service More... | |
int | arm_lcd_printf (const char *format,...) |
void | arm_lcd_puts_label (const char *pchString, arm_2d_align_t tAlignment) |
int | arm_lcd_printf_label (arm_2d_align_t tAlignment, const char *format,...) |
void | arm_lcd_puts (const char *str) |
void | arm_lcd_text_location (uint8_t chY, uint8_t chX) |
void | arm_lcd_text_reset_display_region_tracking (void) |
arm_2d_region_t * | arm_lcd_text_get_last_display_region (void) |
int16_t | lcd_draw_char (int16_t iX, int16_t iY, uint8_t **ppchCharCode, uint_fast8_t chOpacity) |
draw a char to a given location in the draw region More... | |
void | arm_lcd_putchar (const char *str) |
void | arm_lcd_text_set_colour (COLOUR_INT_TYPE wForeground, COLOUR_INT_TYPE wBackground) |
void | arm_lcd_text_set_opacity (uint8_t chOpacity) |
void | arm_lcd_text_set_scale (float fScale) |
bool | arm_lcd_text_force_char_use_same_width (bool bForced) |
Force all char use the same width. More... | |
void | arm_lcd_text_set_target_framebuffer (const arm_2d_tile_t *ptFrameBuffer) |
void | arm_lcd_text_set_display_mode (uint32_t wMode) |
set the display mode for characters More... | |
void | arm_lcd_text_set_draw_region (arm_2d_region_t *ptRegion) |
arm_2d_err_t | arm_lcd_text_set_font (const arm_2d_font_t *ptFont) |
arm_2d_size_t | __arm_lcd_get_string_line_box (const char *str, const arm_2d_font_t *ptFont) |
IMPL_FONT_DRAW_CHAR (__arm_2d_lcd_text_default_a8_font_draw_char) | |
IMPL_FONT_DRAW_CHAR (__arm_2d_lcd_text_default_a4_font_draw_char) | |
IMPL_FONT_DRAW_CHAR (__arm_2d_lcd_text_default_a2_font_draw_char) | |
IMPL_FONT_DRAW_CHAR (__arm_2d_lcd_text_default_a1_font_draw_char) | |
void | arm_2d_helper_init (void) |
initialize helper services More... | |
void | arm_2d_helper_backend_task (void) |
backend task for asynchronose mode More... | |
int64_t | arm_2d_helper_convert_ticks_to_ms (int64_t lTick) |
convert ticks of a reference timer to millisecond More... | |
int64_t | arm_2d_helper_convert_ms_to_ticks (uint32_t wMS) |
convert millisecond into ticks of the reference timer More... | |
uint32_t | arm_2d_helper_get_reference_clock_frequency (void) |
get the reference clock frequency More... | |
int64_t | arm_2d_helper_get_system_timestamp (void) |
get the current system stamp from the reference clock More... | |
int64_t | __arm_2d_helper_time_elapsed (int64_t *plTimestamp) |
get the elapsed time since a reference timestamp More... | |
bool | __arm_2d_helper_is_time_out (int64_t lPeriod, int64_t *plTimestamp) |
set an alarm with given period and check the status More... | |
uintptr_t | arm_2d_port_new_semaphore (void) |
get a new semaphore from host RTOS More... | |
void | arm_2d_port_free_semaphore (uintptr_t pSemaphore) |
free a semaphore More... | |
bool | arm_2d_port_wait_for_semaphore (uintptr_t pSemaphore) |
wait for a semaphore More... | |
void | arm_2d_port_set_semaphore (uintptr_t pSemaphore) |
set a semaphore More... | |
bool | __arm_2d_helper_time_liner_slider (int32_t nFrom, int32_t nTo, int64_t lPeriod, int32_t *pnStroke, int64_t *plTimestamp) |
calculate the stroke of a liner slider based on time More... | |
bool | __arm_2d_helper_time_half_cos_slider (int32_t nFrom, int32_t nTo, int64_t lPeriod, int32_t *pnStroke, int64_t *plTimestamp) |
calculate the stroke of a cosine slider (0~pi) based on time More... | |
bool | __arm_2d_helper_time_cos_slider (int32_t nFrom, int32_t nTo, int64_t lPeriod, float fPhase, int32_t *pnStroke, int64_t *plTimestamp) |
calculate the stroke of a consine slider (0~2pi) based on time More... | |
uint32_t | __arm_2d_helper_colour_slider (uint32_t wFrom, uint32_t wTo, int32_t nDistance, int32_t nOffset) |
arm_2d_helper_pi_slider_t * | arm_2d_helper_pi_slider_init (arm_2d_helper_pi_slider_t *ptThis, arm_2d_helper_pi_slider_cfg_t *ptCFG, int32_t nStartPosition) |
initialize the Proportional-Integral Control helper More... | |
bool | arm_2d_helper_pi_slider (arm_2d_helper_pi_slider_t *ptThis, int32_t nTargetPosition, int32_t *pnResult) |
A helper function for Proportional-Integral Control. More... | |
void | arm_2d_helper_pi_slider_set_current (arm_2d_helper_pi_slider_t *ptThis, int32_t nCurrent) |
reset the PI slider and set the current value More... | |
bool | arm_2d_helper_pi_slider_f32 (arm_2d_helper_pi_slider_t *ptThis, float fTargetPosition, float *pfResult) |
A helper function for Proportional-Integral Control. More... | |
void | arm_2d_helper_pi_slider_set_current_f32 (arm_2d_helper_pi_slider_t *ptThis, float fCurrent) |
reset the PI slider and set the current value More... | |
void | arm_2d_helper_draw_box (const arm_2d_tile_t *ptTarget, const arm_2d_region_t *ptRegion, int16_t iBorderWidth, COLOUR_INT tColour, uint8_t chOpacity) |
void | arm_2d_helper_film_next_frame (arm_2d_helper_film_t *ptThis) |
void | arm_2d_helper_film_reset (arm_2d_helper_film_t *ptThis) |
void | arm_2d_helper_film_set_frame (arm_2d_helper_film_t *ptThis, int32_t nIndex) |
bool | arm_2d_byte_fifo_init (arm_2d_byte_fifo_t *ptThis, void *pBuffer, uint16_t hwSize) |
initialize a given byte fifo More... | |
void | arm_2d_byte_fifo_drop_all (arm_2d_byte_fifo_t *ptThis) |
Empty a given byte fifo. More... | |
bool | arm_2d_byte_fifo_enqueue (arm_2d_byte_fifo_t *ptThis, uint8_t chChar) |
write a byte to a given fifo More... | |
bool | arm_2d_byte_fifo_dequeue (arm_2d_byte_fifo_t *ptThis, uint8_t *pchChar) |
read a byte from a given fifo More... | |
bool | arm_2d_byte_fifo_peek (arm_2d_byte_fifo_t *ptThis, uint8_t *pchChar, bool bMovePointer) |
peek a byte continuously from a given fifo More... | |
void | arm_2d_byte_fifo_get_all_peeked (arm_2d_byte_fifo_t *ptThis) |
drop all peeked byte from a given fifo More... | |
void | arm_2d_byte_fifo_reset_peeked (arm_2d_byte_fifo_t *ptThis) |
reset the peek pointer, so you can restart from the beginning to peek. More... | |
void | arm_2d_helper_swap_rgb16 (uint16_t *phwBuffer, uint32_t wCount) |
swap the high and low bytes for each rgb16 pixel More... | |
void | arm_2d_helper_fill_tile_colour (const arm_2d_tile_t *ptTile, arm_2d_color_info_t tColourFormat, arm_2d_colour_t tColour) |
fill the target tile with a specified colour More... | |
Variables | |
arm_2d_scene_switch_mode_t | ARM_2D_SCENE_SWITCH_MODE_NONE |
arm_2d_scene_switch_mode_t | ARM_2D_SCENE_SWITCH_MODE_USER |
arm_2d_scene_switch_mode_t | ARM_2D_SCENE_SWITCH_MODE_FADE_WHITE |
arm_2d_scene_switch_mode_t | ARM_2D_SCENE_SWITCH_MODE_FADE_BLACK |
arm_2d_scene_switch_mode_t | ARM_2D_SCENE_SWITCH_MODE_SLIDE_LEFT |
arm_2d_scene_switch_mode_t | ARM_2D_SCENE_SWITCH_MODE_SLIDE_RIGHT |
arm_2d_scene_switch_mode_t | ARM_2D_SCENE_SWITCH_MODE_SLIDE_UP |
arm_2d_scene_switch_mode_t | ARM_2D_SCENE_SWITCH_MODE_SLIDE_DOWN |
arm_2d_scene_switch_mode_t | ARM_2D_SCENE_SWITCH_MODE_ERASE_LEFT |
arm_2d_scene_switch_mode_t | ARM_2D_SCENE_SWITCH_MODE_ERASE_RIGHT |
arm_2d_scene_switch_mode_t | ARM_2D_SCENE_SWITCH_MODE_ERASE_UP |
arm_2d_scene_switch_mode_t | ARM_2D_SCENE_SWITCH_MODE_ERASE_DOWN |
arm_2d_scene_switch_mode_t | ARM_2D_SCENE_SWITCH_MODE_FLY_IN_FROM_LEFT |
arm_2d_scene_switch_mode_t | ARM_2D_SCENE_SWITCH_MODE_FLY_IN_FROM_RIGHT |
arm_2d_scene_switch_mode_t | ARM_2D_SCENE_SWITCH_MODE_FLY_IN_FROM_TOP |
arm_2d_scene_switch_mode_t | ARM_2D_SCENE_SWITCH_MODE_FLY_IN_FROM_BOTTOM |
__arm_2d_list_region_calculator_t | ARM_2D_LIST_CALCULATOR_MIDDLE_ALIGNED_VERTICAL |
a list calculator for vertical lists, which puts selected item in the centre of the target list More... | |
__arm_2d_list_region_calculator_t | ARM_2D_LIST_CALCULATOR_MIDDLE_ALIGNED_HORIZONTAL |
a list calculator for horizontal lists, which puts selected item in the centre of the target list More... | |
__arm_2d_list_region_calculator_t | ARM_2D_LIST_CALCULATOR_MIDDLE_ALIGNED_FIXED_SIZED_ITEM_NO_STATUS_CHECK_VERTICAL |
a list calculator for vertical lists, which puts selected item in the centre of the target list, item size is fixed and no status checking (i.e. visible or enabled). More... | |
__arm_2d_list_region_calculator_t | ARM_2D_LIST_CALCULATOR_MIDDLE_ALIGNED_FIXED_SIZED_ITEM_NO_STATUS_CHECK_HORIZONTAL |
a list calculator for horizontal lists, which puts selected item in the centre of the target list, item size is fixed and no status checking (i.e. visible or enabled). More... | |
__arm_2d_list_item_iterator | ARM_2D_LIST_ITERATOR_ARRAY |
a list iterator for the list that stores items in an array More... | |
const arm_2d_control_enumeration_policy_t | ARM_2D_CONTROL_ENUMERATION_POLICY_PREORDER_TRAVERSAL |
The Preorder traversal is suitable for the following operations in the control (element tree) management. More... | |
const arm_2d_control_enumeration_policy_t | ARM_2D_CONTROL_ENUMERATION_POLICY_POSTORDER_TRAVERSAL |
The Postorder traversal is suitable for the following operations in the control (element tree) management: More... | |
const arm_2d_control_enumeration_policy_t | ARM_2D_CONTROL_ENUMERATION_POLICY_BOTTOM_UP_TRAVERSAL |
The Bottom-Up traversal is suitable for the normal message handling in the control (element tree) management. More... | |
const arm_2d_a1_font_t | ARM_2D_FONT_16x24 |
const arm_2d_a1_font_t | ARM_2D_FONT_6x8 |
arm_2d_font_get_char_descriptor_handler_t | ARM_2D_A1_FONT_GET_CHAR_DESCRIPTOR_HANDLER |
union __arm_2d_helper_scene_switch_t |
an internal data structure for scene switching
Data Fields | ||
---|---|---|
struct __arm_2d_helper_scene_switch_t.Feature | Feature | |
uint16_t | hwSetting | the setting value |
struct arm_2d_scene_switch_mode_t |
scene switching mode descriptor
Data Fields | |
uint8_t | chEffects |
switching effects More... | |
arm_2d_helper_draw_handler_t * | fnSwitchDrawer |
switching algorithm More... | |
void(* | fnOnRequestChangeSwitchingStatus )(arm_2d_scene_player_t *ptThis) |
on request change-switch-status event handler More... | |
void(* | fnOnSwitchComplete )(arm_2d_scene_player_t *ptThis) |
on request switch complete event handler More... | |
uint8_t arm_2d_scene_switch_mode_t::chEffects |
switching effects
arm_2d_helper_draw_handler_t* arm_2d_scene_switch_mode_t::fnSwitchDrawer |
switching algorithm
void(* arm_2d_scene_switch_mode_t::fnOnRequestChangeSwitchingStatus) (arm_2d_scene_player_t *ptThis) |
on request change-switch-status event handler
void(* arm_2d_scene_switch_mode_t::fnOnSwitchComplete) (arm_2d_scene_player_t *ptThis) |
on request switch complete event handler
struct arm_2d_scene_t |
a class for describing scenes which are the combination of a background and a foreground with a dirty-region-list support
Data Fields | |
struct { | |
arm_2d_scene_t * | ptNext |
struct { | |
uint8_t | bLoaded: 1 |
} | |
}; | |
< next scene More... | |
arm_2d_scene_player_t * | ptPlayer |
points to the host scene player More... | |
arm_2d_colour_t | tCanvas |
the canvas colour More... | |
arm_2d_helper_draw_handler_t * | fnBackground |
arm_2d_region_list_item_t * | ptDirtyRegion |
dirty region list for the scene More... | |
arm_2d_helper_draw_handler_t * | fnScene |
the function pointer for the scene More... | |
void(* | fnOnLoad )(arm_2d_scene_t *ptThis) |
on load event handler More... | |
void(* | fnAfterSwitch )(arm_2d_scene_t *ptThis) |
after scene switching event handler More... | |
void(* | fnOnBGStart )(arm_2d_scene_t *ptThis) |
on-start-drawing-background event handler More... | |
void(* | fnOnBGComplete )(arm_2d_scene_t *ptThis) |
on-complete-drawing-background event handler More... | |
void(* | fnOnFrameStart )(arm_2d_scene_t *ptThis) |
on-frame-start event handler More... | |
void(* | fnOnFrameCPL )(arm_2d_scene_t *ptThis) |
on-frame-complete event handler More... | |
void(* | fnBeforeSwitchOut )(arm_2d_scene_t *ptThis) |
before-scene-switch-out event handler More... | |
void(* | fnDepose )(arm_2d_scene_t *ptThis) |
on-scene-depose event handler More... | |
struct { | |
uint8_t | bOnSwitchingIgnoreBG: 1 |
ignore background during switching period More... | |
uint8_t | bOnSwitchingIgnoreScene: 1 |
ignore forground during switching period More... | |
uint8_t | __pad1__: 3 |
uint8_t | bUseDirtyRegionHelper: 1 |
indicate whether use the built-in dirty region helper. More... | |
}; | |
arm_2d_helper_dirty_region_t | tDirtyRegionHelper |
struct { ... } arm_2d_scene_t::@186 |
< next scene
arm_2d_scene_player_t* arm_2d_scene_t::ptPlayer |
points to the host scene player
arm_2d_colour_t arm_2d_scene_t::tCanvas |
the canvas colour
arm_2d_helper_draw_handler_t* arm_2d_scene_t::fnBackground |
arm_2d_region_list_item_t* arm_2d_scene_t::ptDirtyRegion |
dirty region list for the scene
arm_2d_helper_draw_handler_t* arm_2d_scene_t::fnScene |
the function pointer for the scene
void(* arm_2d_scene_t::fnOnLoad) (arm_2d_scene_t *ptThis) |
on load event handler
void(* arm_2d_scene_t::fnAfterSwitch) (arm_2d_scene_t *ptThis) |
after scene switching event handler
void(* arm_2d_scene_t::fnOnBGStart) (arm_2d_scene_t *ptThis) |
on-start-drawing-background event handler
void(* arm_2d_scene_t::fnOnBGComplete) (arm_2d_scene_t *ptThis) |
on-complete-drawing-background event handler
void(* arm_2d_scene_t::fnOnFrameStart) (arm_2d_scene_t *ptThis) |
on-frame-start event handler
void(* arm_2d_scene_t::fnOnFrameCPL) (arm_2d_scene_t *ptThis) |
on-frame-complete event handler
void(* arm_2d_scene_t::fnBeforeSwitchOut) (arm_2d_scene_t *ptThis) |
before-scene-switch-out event handler
void(* arm_2d_scene_t::fnDepose) (arm_2d_scene_t *ptThis) |
on-scene-depose event handler
struct arm_2d_scene_before_scene_switching_evt_t |
on low level render event
Data Fields | ||
---|---|---|
arm_2d_scene_before_scene_switching_handler_t * | fnHandler | event handler function |
void * | pTarget | user attached target |
struct arm_2d_scene_player_t |
a class to manage scenes
Data Fields | ||
---|---|---|
arm_2d_helper_pfb_t | inherit from arm_2d_helper_pfb_t | |
struct arm_2d_scene_player_t.Benchmark | Benchmark |
scene window points to the head of the FIFO points to the tail of the FIFO Scene FIFO a flag to request switching-to-the next-scene a flag to request using manual switching a flag to request cancel a manual switching a flag to request finishing a manual switching manual switching cancel a manual switching finish a manual switching indication of scene switching completion update the background of the current scene call the old scene frame complete event handler call the new scene frame complete event handler call the old scene Background complete event handler call the new scene Background complete event handler the state of the FSM used by runtime. scene player runtime the switching mode FSM state erase offset opacity of the cover the colour of the cover scene window a temp tile scene window for blur the switching configuration the coordinate offset for manual switching mode, used in erasing, sliding etc. the full length of the axis of switching the switching should finish in specified millisecond |
struct arm_2d_scene_player_t.__unnamed193__ | __unnamed__ |
< before-scene-switch-out event handler
|
struct arm_2d_list_item_param_t |
struct arm_2d_list_item_t |
the list core item class
Public Member Functions | |
ARM_PROTECTED (arm_2d_list_item_t *ptNext;) uint16_t hwID | |
Data Fields | |
union { | |
uint16_t | hwAttribute |
struct { | |
uint16_t | bIsEnabled: 1 |
uint16_t | bIsVisible: 1 |
uint16_t | bIsReadOnly: 1 |
uint16_t | u4Alignment: 4 |
uint16_t | __pad1__: 8 |
} | |
}; | |
__arm_2d_list_core_t * | ptListView |
struct { | |
int8_t | chPrevious |
int8_t | chNext |
} | Padding |
arm_2d_margin_t | Margin |
arm_2d_size_t | tSize |
uintptr_t | pTarget |
arm_2d_draw_list_item_handler_t * | fnOnDrawItem |
arm_2d_list_item_t::ARM_PROTECTED | ( | arm_2d_list_item_t *ptNext; | ) |
the ID used by the list iterator
__arm_2d_list_core_t* arm_2d_list_item_t::ptListView |
the parent list core
arm_2d_size_t arm_2d_list_item_t::tSize |
the size of the item
uintptr_t arm_2d_list_item_t::pTarget |
user specified object
arm_2d_draw_list_item_handler_t* arm_2d_list_item_t::fnOnDrawItem |
on-draw-list-view-item event handler
struct __arm_2d_list_work_area_t |
the target working area for one list core item
Data Fields | ||
---|---|---|
arm_2d_list_item_t * | ptItem |
the target item |
arm_2d_region_t | tRegion |
the target region on the list |
arm_2d_list_item_param_t | tParam |
paramters for the target item |
arm_2d_list_dir_t | tDirection |
list direction (only region calculator knows ) |
struct __arm_2d_list_core_cfg_t |
list core configuration structure
Data Fields | ||
---|---|---|
arm_2d_size_t | tListSize |
the size of the list |
__arm_2d_list_item_iterator * | fnIterator |
the item iterator |
__arm_2d_list_region_calculator_t * | fnCalculator |
the region calculator |
arm_2d_draw_list_item_handler_t * | fnOnDrawListItemBackground |
the On-Draw-List-Item-Background event handler |
arm_2d_helper_draw_handler_t * | fnOnDrawListBackground |
the On-Draw-List-Background event handler |
arm_2d_helper_draw_handler_t * | fnOnDrawListCover |
the On-Draw-List-Cover event handler |
int32_t | nTotalLength |
the total length of the list in pixel, 0 means update later |
arm_2d_list_item_t * | ptItems |
an optional pointer for items (array/list) |
uint16_t | hwItemSizeInByte |
the size of the item (in byte) |
uint16_t | hwItemCount |
the total number of items, 0 means update later |
uint16_t | hwSwitchingPeriodInMs |
A constant period (in ms) for switching item, zero means using default value |
uint16_t | bDisableRingMode: 1 |
whether disable ring mode |
uint16_t | bDisableStatusCheck: 1 |
whether disable the item status |
struct __arm_2d_list_core_t |
the list core class
Public Member Functions | |
ARM_PROTECTED (__arm_2d_list_core_cfg_t tCFG;) struct | |
Data Fields | |
Runtime | |
|
inline |
< the target draw area
< the target tile for the list
< the working area
< indicate whether the region calcluator is initialized or not
< array iterator index
< array iterator
< iterator control block
< the target tile for list items
< time to run target distance
< timestamp used by animation
< list offset
< the start offset
< the target list offset
< item selection
< state used by list core task
< a flag to indicate whether the list is moving
< a flag to indicate whether a redraw is requested, this is a sticky flag
< reserved
< steps to move
< finish in ms
__arm_2d_list_core_t::Runtime |
list runtime
struct arm_2d_helper_2d_copy_evt_t |
Data Fields | ||
---|---|---|
arm_2d_helper_2d_copy_handler_t * | fnHandler | |
void * | pObj |
struct arm_2d_helper_dma_copy_evt_t |
Data Fields | ||
---|---|---|
arm_2d_helper_dma_copy_handler_t * | fnHandler | |
void * | pObj |
struct arm_2d_helper_3fb_cfg_t |
configuration structure for the 3fb (direct mode) helper service
Data Fields | ||
---|---|---|
arm_2d_size_t | tScreenSize | the screen size |
uint8_t | chPixelBits | the number of bits in one pixel |
uintptr_t | pnAddress[3] | addresses of the 3 full-frame-buffer |
arm_2d_helper_2d_copy_evt_t | evtOn2DCopy | |
arm_2d_helper_dma_copy_evt_t | evtOnDMACopy |
struct arm_2d_helper_3fb_t |
the control block of the 3FB (direct mode) service
Data Fields | ||
---|---|---|
struct arm_2d_helper_3fb_t.__unnamed212__ | __unnamed__ |
< FB pointer for drawing FB pointer for flushing FB pointer of ready to flush FB pointer of ready to draw < semaphore for async access a flag to indicate the completion of a DMA copy |
struct arm_2d_pfb_t |
the header of a PFB block
Data Fields | ||
---|---|---|
struct arm_2d_pfb_t * | ptNext | next pfb block |
arm_2d_helper_pfb_t * | ptPFBHelper | the pfb helper service current PFB block comes from |
arm_2d_tile_t | tTile | descriptor |
uint32_t | u24Size: 24 | |
uint32_t | u7ColourFormat: 7 | colour format |
uint32_t | bIsNewFrame: 1 | a flag to indicate the starting of a frame |
struct arm_2d_region_list_item_t |
the node of a region list
Data Fields | ||
---|---|---|
struct arm_2d_region_list_item_t * | ptNext |
the next node the next node in the internal list |
struct arm_2d_region_list_item_t.__unnamed215__ | __unnamed__ | |
arm_2d_region_t | tRegion | the region |
struct arm_2d_helper_render_evt_t |
low level render event
Data Fields | ||
---|---|---|
arm_2d_helper_render_handler_t * | fnHandler | event handler function |
void * | pTarget | user attached target |
struct arm_2d_helper_before_flushing_evt_t |
screen rotation event
Data Fields | ||
---|---|---|
arm_2d_helper_before_flushing_handler_t * | fnHandler | |
void * | pTarget |
struct arm_2d_helper_pfb_dependency_t |
The PFB Helper Service Dependency.
Data Fields | ||
---|---|---|
arm_2d_helper_render_evt_t | evtOnLowLevelRendering | event handler for low level rendering |
arm_2d_helper_draw_evt_t | evtOnDrawing | event handler for drawing GUI |
arm_2d_evt_t | evtOnLowLevelSyncUp | low level rendering handler wants to sync-up (return arm_fsm_rt_wait_for_obj) |
arm_2d_evt_t | evtOnEachFrameCPL | event handler for each frame complete |
struct arm_2d_helper_pfb_dependency_t.Navigation | Navigation | event handler for drawing GUI |
arm_2d_helper_before_flushing_evt_t | evtBeforeFlushing | event handler for screen rotation |
struct arm_2d_helper_pfb_cfg_t |
PFB Helper configuration.
Data Fields | ||
---|---|---|
arm_2d_region_t | tDisplayArea | screen description |
struct arm_2d_helper_pfb_cfg_t.FrameBuffer | FrameBuffer | frame buffer context |
struct arm_2d_helper_pfb_cfg_t.DirtyRegion | DirtyRegion | |
arm_2d_helper_pfb_dependency_t | Dependency | user registered dependency |
struct arm_2d_helper_pfb_t |
the PFB helper control block
Data Fields | ||
---|---|---|
struct arm_2d_helper_pfb_t.__unnamed220__ | __unnamed__ |
< user configuration < A flag to indicate whether the first iteration was a dry run |
struct arm_2d_helper_pfb_t.Statistics | Statistics | performance statistics |
struct arm_2d_helper_dirty_region_item_t |
Data Fields | ||
---|---|---|
arm_2d_helper_dirty_region_item_t * | ptNext | |
arm_2d_helper_dirty_region_t * | ptHelper | |
union arm_2d_helper_dirty_region_item_t.__unnamed228__ | __unnamed__ | |
uint8_t | bForceToUseMinimalEnclosure: 1 | |
uint8_t | bSuspendUpdate: 1 | |
uint8_t | bIgnore: 1 | |
uint8_t | bOnlyUpdateMinimalEnclosure: 1 | |
uint8_t | chUpdateLifeCycle | |
uint16_t | u16Key | |
arm_2d_region_t | tRegionPatch |
struct arm_2d_helper_dirty_region_t |
Data Fields | ||
---|---|---|
arm_2d_region_list_item_t | tDirtyRegion | |
arm_2d_region_list_item_t ** | ppDirtyRegionList | |
arm_2d_helper_dirty_region_item_t * | ptCurrent | |
uint8_t | chUpdateLifeCycle | |
uint16_t | __pad1__: 16 | |
arm_2d_helper_dirty_region_item_t | tDefaultItem |
struct arm_2d_helper_dirty_region_transform_t |
the Transform helper control block
Data Fields | ||
---|---|---|
float | fAngle | |
float | fScale | |
arm_2d_helper_dirty_region_item_t | tItem | |
struct arm_2d_helper_dirty_region_transform_t.__unnamed234__ | __unnamed__ |
struct arm_2d_helper_transform_t |
the Transform helper control block
Data Fields | ||
---|---|---|
arm_2d_helper_dirty_region_t | ||
float | fAngle | |
float | fScale | |
struct arm_2d_helper_transform_t.__unnamed238__ | __unnamed__ |
struct arm_2d_control_node_t |
Public Member Functions | |
ARM_PROTECTED (arm_2d_control_node_t *ptNext;arm_2d_control_node_t *ptParent;arm_2d_control_node_t *ptChildList;) arm_2d_region_t tRegion | |
struct arm_2d_control_enumeration_policy_t |
Data Fields | |
arm_2d_err_t(* | fnInit )(arm_2d_control_enumerator_t *ptThis, const arm_2d_control_node_t *ptRoot) |
arm_2d_err_t(* | fnDepose )(arm_2d_control_enumerator_t *ptThis) |
arm_2d_control_node_t *(* | fnGetNextNode )(arm_2d_control_enumerator_t *ptThis) |
struct arm_2d_control_enumerator_t |
Data Fields | ||
---|---|---|
const arm_2d_control_enumeration_policy_t * | ptPolicy | |
arm_2d_control_node_t * | ptRoot | |
arm_2d_control_node_t * | ptCurrent | |
union arm_2d_control_enumerator_t.__unnamed242__ | __unnamed__ |
struct arm_2d_char_descriptor_t |
Data Fields | ||
---|---|---|
arm_2d_tile_t | tileChar | |
int16_t | iAdvance | |
int16_t | iBearingX | |
int16_t | iBearingY | |
int8_t | chCodeLength |
struct arm_2d_font_t |
Data Fields | ||
---|---|---|
arm_2d_tile_t | tileFont | |
arm_2d_size_t | tCharSize | CharSize. |
uint32_t | nCount | Character count. |
arm_2d_font_get_char_descriptor_handler_t * | fnGetCharDescriptor | On-Get-Char-Descriptor event handler. |
arm_2d_font_draw_char_handler_t * | fnDrawChar | On-Draw-Char event handler. |
struct arm_2d_user_font_t |
Public Member Functions | |
implement (arm_2d_font_t) | |
Data Fields | |
uint16_t | hwCount |
uint16_t | hwDefaultCharIndex |
arm_2d_char_idx_t | tLookUpTable [] |
struct arm_2d_a1_font_t |
Public Member Functions | |
implement (arm_2d_font_t) | |
Data Fields | |
uint32_t | nOffset |
Character offset. More... | |
uint32_t arm_2d_a1_font_t::nOffset |
Character offset.
struct arm_2d_helper_film_t |
a helper class to represent a GIF-like resource
Public Member Functions | |
implement (arm_2d_tile_t) | |
Data Fields | |
uint16_t | hwColumn |
uint16_t | hwFrameNum |
uint16_t | hwPeriodPerFrame |
uint16_t | hwFrameIndex |
arm_2d_helper_film_t::implement | ( | arm_2d_tile_t | ) |
derived from arm_2d_tile_t
uint16_t arm_2d_helper_film_t::hwColumn |
number of frames per row in a sprite tile
uint16_t arm_2d_helper_film_t::hwFrameNum |
the total number of frames
uint16_t arm_2d_helper_film_t::hwPeriodPerFrame |
the period per frame (optional, used as a reference)
uint16_t arm_2d_helper_film_t::hwFrameIndex |
the frame index used at runtime
struct arm_2d_helper_pi_slider_cfg_t |
struct arm_2d_helper_pi_slider_t |
a helper class for Proportional-Integral Control
Data Fields | ||
---|---|---|
struct arm_2d_helper_pi_slider_t.__unnamed247__ | __unnamed__ |
struct arm_2d_byte_fifo_t |
struct __arm_2d_helper_scene_switch_t.Feature |
struct arm_2d_scene_t.__unnamed186__ |
< next scene
Data Fields | ||
---|---|---|
arm_2d_scene_t * | ptNext | |
struct arm_2d_scene_t.__unnamed186__.__unnamed190__ | __unnamed__ |
struct arm_2d_scene_t.__unnamed188__ |
struct arm_2d_scene_player_t.Benchmark |
struct arm_2d_scene_player_t.__unnamed193__ |
< before-scene-switch-out event handler
Data Fields | ||
---|---|---|
struct arm_2d_scene_player_t.__unnamed193__.SceneFIFO | SceneFIFO | |
struct arm_2d_scene_player_t.__unnamed193__.Runtime | Runtime | |
struct arm_2d_scene_player_t.__unnamed193__.Switch | Switch | |
struct arm_2d_scene_player_t.__unnamed193__.Events | Events |
struct arm_2d_scene_player_t.__unnamed193__.SceneFIFO |
Data Fields | ||
---|---|---|
arm_2d_scene_t * | ptHead | |
arm_2d_scene_t * | ptTail |
struct arm_2d_scene_player_t.__unnamed193__.Runtime |
struct arm_2d_scene_player_t.__unnamed193__.Switch |
Data Fields | ||
---|---|---|
arm_2d_scene_switch_mode_t * | ptMode | |
uint8_t | chState | |
int16_t | iOffset | |
union arm_2d_scene_player_t.__unnamed193__.Switch.__unnamed199__ | __unnamed__ | |
__arm_2d_helper_scene_switch_t | tConfig | |
arm_2d_location_t | tTouchPointer | |
int16_t | iFullLength | |
uint16_t | hwPeriod | |
int64_t | lTimeStamp |
union arm_2d_scene_player_t.__unnamed193__.Switch.__unnamed199__ |
Data Fields | ||
---|---|---|
struct arm_2d_scene_player_t.__unnamed193__.Switch.__unnamed199__.Fade | Fade | |
struct arm_2d_scene_player_t.__unnamed193__.Switch.__unnamed199__.Erase | Erase | |
struct arm_2d_scene_player_t.__unnamed193__.Switch.__unnamed199__.FlyIn | FlyIn | |
struct arm_2d_scene_player_t.__unnamed193__.Switch.__unnamed199__.Slide | Slide |
struct arm_2d_scene_player_t.__unnamed193__.Switch.__unnamed199__.Fade |
struct arm_2d_scene_player_t.__unnamed193__.Switch.__unnamed199__.Erase |
Data Fields | ||
---|---|---|
arm_2d_tile_t | tSceneWindow | |
arm_2d_tile_t | tTemp |
struct arm_2d_scene_player_t.__unnamed193__.Switch.__unnamed199__.FlyIn |
Data Fields | ||
---|---|---|
arm_2d_tile_t | tSceneWindow | |
arm_2d_filter_iir_blur_descriptor_t | tBlurOP |
struct arm_2d_scene_player_t.__unnamed193__.Switch.__unnamed199__.Slide |
Data Fields | ||
---|---|---|
arm_2d_tile_t | tSceneWindow |
struct arm_2d_scene_player_t.__unnamed193__.Events |
Data Fields | ||
---|---|---|
arm_2d_scene_before_scene_switching_evt_t | evtBeforeSwitching |
union arm_2d_list_item_t.__unnamed205__ |
Data Fields | ||
---|---|---|
uint16_t | hwAttribute |
16bit attribute value |
struct arm_2d_list_item_t.__unnamed205__.__unnamed208__ | __unnamed__ |
struct arm_2d_list_item_t.__unnamed205__.__unnamed208__ |
struct arm_2d_list_item_t.Padding |
struct arm_2d_helper_3fb_t.__unnamed212__ |
< FB pointer for drawing FB pointer for flushing FB pointer of ready to flush FB pointer of ready to draw < semaphore for async access a flag to indicate the completion of a DMA copy
Data Fields | ||
---|---|---|
arm_2d_helper_3fb_cfg_t | tCFG | |
struct arm_2d_helper_3fb_t.__unnamed212__.Runtime | Runtime |
struct arm_2d_helper_3fb_t.__unnamed212__.Runtime |
struct arm_2d_region_list_item_t.__unnamed215__ |
Data Fields | ||
---|---|---|
struct arm_2d_region_list_item_t * | ptInternalNext |
struct arm_2d_helper_pfb_dependency_t.Navigation |
event handler for drawing GUI
Data Fields | ||
---|---|---|
arm_2d_helper_draw_evt_t | evtOnDrawing | |
arm_2d_region_list_item_t * | ptDirtyRegion |
struct arm_2d_helper_pfb_cfg_t.FrameBuffer |
Data Fields | ||
---|---|---|
arm_2d_pfb_t * | ptPFBs | PFB blocks for the internal PFB pool. |
arm_2d_size_t | tFrameSize | the size of the frame |
uint32_t | u24BufferSize: 24 | the buffer size |
uint32_t | u7ColourFormat: 7 | the colour format |
uint32_t | u8PFBNum: 8 | the number of PFB |
uint32_t | bDoNOTUpdateDefaultFrameBuffer: 1 | A flag to disable automatically default-framebuffer-registration. |
uint32_t | bDisableDynamicFPBSize: 1 | A flag to disable resize of the PFB block. |
uint32_t | bSwapRGB16: 1 | A flag to enable swapping high and low bytes of an RGB16 pixel. |
uint32_t | bDebugDirtyRegions: 1 | A flag to show dirty regions on screen for debug. |
uint32_t | __pad1__: 10 | |
uint32_t | u3PixelWidthAlign: 3 | Pixel alignment in Width for dirty region (2^n) |
uint32_t | u3PixelHeightAlign: 3 | Pixel alignment in Height for dirty region (2^n) |
uint32_t | u4PoolReserve: 4 | reserve specific number of PFB for other helper services |
struct arm_2d_helper_pfb_cfg_t.DirtyRegion |
Data Fields | ||
---|---|---|
arm_2d_region_list_item_t * | ptRegions | dirty region list item for internal pool |
uint8_t | chCount | number of dirty region list items |
struct arm_2d_helper_pfb_t.__unnamed220__ |
< user configuration
< A flag to indicate whether the first iteration was a dry run
Data Fields | ||
---|---|---|
arm_2d_helper_pfb_cfg_t | tCFG | |
struct arm_2d_helper_pfb_t.__unnamed220__.Adapter | Adapter |
struct arm_2d_helper_pfb_t.__unnamed220__.Adapter |
Data Fields | ||
---|---|---|
arm_2d_location_t | tScanOffset | |
arm_2d_region_t | tTargetRegion | |
arm_2d_region_list_item_t * | ptDirtyRegion | |
struct arm_2d_helper_pfb_t.__unnamed220__.Adapter.OptimizedDirtyRegions | OptimizedDirtyRegions | |
arm_2d_tile_t | tPFBTile | |
arm_2d_size_t | tFrameSize | |
uint32_t | wPFBPixelCount | |
uint8_t | chPT | |
uint8_t | chFreePFBCount | |
struct arm_2d_helper_pfb_t.__unnamed220__.Adapter.__unnamed225__ | __unnamed__ | |
arm_2d_colour_t | tCanvas | |
uintptr_t | pFPBPoolAvailable | |
arm_2d_pfb_t * | ptCurrent | |
arm_2d_pfb_t * | ptFreeList | |
arm_2d_pfb_t * | ptFlushing | |
struct arm_2d_helper_pfb_t.__unnamed220__.Adapter.FlushFIFO | FlushFIFO | |
arm_2d_tile_t * | ptFrameBuffer |
struct arm_2d_helper_pfb_t.__unnamed220__.Adapter.OptimizedDirtyRegions |
Data Fields | ||
---|---|---|
arm_2d_region_list_item_t * | ptWorkingList | |
arm_2d_region_list_item_t * | ptOriginalList | |
arm_2d_region_list_item_t * | ptCandidateList | |
arm_2d_region_list_item_t * | ptFreeList | |
arm_2d_region_list_item_t | tWorkingItem | |
int16_t | iFreeCount |
struct arm_2d_helper_pfb_t.__unnamed220__.Adapter.__unnamed225__ |
struct arm_2d_helper_pfb_t.__unnamed220__.Adapter.FlushFIFO |
Data Fields | ||
---|---|---|
arm_2d_pfb_t * | ptHead | |
arm_2d_pfb_t * | ptTail |
struct arm_2d_helper_pfb_t.Statistics |
union arm_2d_helper_dirty_region_item_t.__unnamed228__ |
Data Fields | ||
---|---|---|
arm_2d_region_t | tRegions[2] | |
struct arm_2d_helper_dirty_region_item_t.__unnamed228__.__unnamed230__ | __unnamed__ |
struct arm_2d_helper_dirty_region_item_t.__unnamed228__.__unnamed230__ |
Data Fields | ||
---|---|---|
arm_2d_region_t | tNewRegion | |
union arm_2d_helper_dirty_region_item_t.__unnamed228__.__unnamed230__.__unnamed232__ | __unnamed__ |
union arm_2d_helper_dirty_region_item_t.__unnamed228__.__unnamed230__.__unnamed232__ |
Data Fields | ||
---|---|---|
arm_2d_region_t | tOldRegion | |
arm_2d_region_t | tEnclosureArea |
struct arm_2d_helper_dirty_region_transform_t.__unnamed234__ |
Data Fields | ||
---|---|---|
arm_2d_op_t * | ptTransformOP | |
arm_2d_helper_dirty_region_t * | ptHelper | |
struct arm_2d_helper_dirty_region_transform_t.__unnamed234__.Angle | Angle | |
struct arm_2d_helper_dirty_region_transform_t.__unnamed234__.Scale | Scale | |
bool | bNeedUpdate |
struct arm_2d_helper_dirty_region_transform_t.__unnamed234__.Angle |
struct arm_2d_helper_dirty_region_transform_t.__unnamed234__.Scale |
struct arm_2d_helper_transform_t.__unnamed238__ |
Data Fields | ||
---|---|---|
arm_2d_op_t * | ptTransformOP | |
struct arm_2d_helper_transform_t.__unnamed238__.Angle | Angle | |
struct arm_2d_helper_transform_t.__unnamed238__.Scale | Scale | |
bool | bNeedUpdate |
union arm_2d_control_enumerator_t.__unnamed242__ |
Data Fields | ||
---|---|---|
struct arm_2d_control_enumerator_t.__unnamed242__.Preorder | Preorder | |
struct arm_2d_control_enumerator_t.__unnamed242__.BottomUp | BottomUp | |
struct arm_2d_control_enumerator_t.__unnamed242__.Postorder | Postorder |
struct arm_2d_helper_pi_slider_t.__unnamed247__ |
Data Fields | ||
---|---|---|
arm_2d_helper_pi_slider_cfg_t | tCFG | |
int64_t | lTimestamp | |
int32_t | nTimeResidual | |
float | fCurrent | |
float | fOP |
#define arm_2d_scene_player_register_on_draw_navigation_event_handler | ( | __SCENE_PLAYER_PTR, | |
__DRAW_HANDLER, | |||
__USER_TARGET_PTR, | |||
... | |||
) |
register / update the evtOnDrawNavigation event handler. You can use this event to draw an ALWAY-TOP navigation bar or title during switching period.
[in] | __DISP_ADAPTER_PTR | the target scene player |
[in] | __DRAW_HANDLER | the event handler to draw the navigation bar and/or titles |
[in] | __USER_TARGET_PTR | the address of an user specified object. If it is NULL, ptThis will be used instead. |
[in] | ... | an optional dirty region list for the navigation layer. If ommited, NULL is used. |
#define arm_2d_scene_player_set_switching_mode | ( | __SCENE_PLAYER_PTR, | |
__SWITCH_MODE, | |||
... | |||
) |
configure the scene switching mode
[in] | __DISP_ADAPTER_PTR | the target scene player |
[in] | __SWITCH_MODE | a switching mode object |
[in] | ... | an optional configurations for the switching |
#define arm_2d_scene_player_register_before_switching_event_handler | ( | __SCENE_PLAYER_PTR, | |
__HANDLER, | |||
... | |||
) |
register / update the evtBeforeSwitching event handler. You can use this event to prepare next scenes.
[in] | ptThis | the target scene player |
[in] | fnHandler | the event handler |
[in] | ... | optional, the address of an user specified object. |
#define ARM_2D_HELPER_PFB_INIT | ( | __CB_ADDR, | |
__SCREEN_WIDTH, | |||
__SCREEN_HEIGHT, | |||
__PIXEL_TYPE, | |||
__COLOUR_FORMAT, | |||
__PFB_WIDTH, | |||
__PFB_HEIGHT, | |||
__PFB_NUM, | |||
... | |||
) |
a macro wrapper in uppercase to help initialising PFB service
[in] | __CB_ADDR | the address of the arm_2d_helper_pfb_t object |
[in] | __SCREEN_WIDTH | the width of the screen |
[in] | __SCREEN_HEIGHT | the hight of the screen |
[in] | __PIXEL_TYPE | the integer type of the pixel, i.e. uint8_t, uint16_t, uint32_t |
[in] | __COLOUR_FORMAT | the screen colour format, i.e. ARM_2D_COLOUR_CCCN888, ARM_2D_COLOUR_RGB565 etc. |
[in] | __WIDTH | the width of the PFB block |
[in] | __HEIGHT | the height of the PFB block |
[in] | __PFB_NUM | the number of PFB blocks in the built-in PFB pool. |
[in] | ... | a code block to add additional initializer, see example below: |
#define ARM_2D_HELPER_PFB_UPDATE_ON_DRAW_HANDLER | ( | __CB_ADDR, | |
__HANDLER, | |||
... | |||
) |
a macro wrapper to update the evtOnDrawring event handler
[in] | __CB_ADDR | the address of the arm_2d_helper_pfb_t object |
[in] | __HANDLER | the new handler |
[in] | ... | [Optional] an address (of user defined structure) passed to the event handler. |
#define __IMPL_ARM_2D_REGION_LIST | ( | __NAME, | |
... | |||
) |
#define __ADD_REGION_TO_LIST | ( | __NAME, | |
... | |||
) |
#define __ADD_LAST_REGION_TO_LIST | ( | __NAME, | |
... | |||
) |
#define IMPL_PFB_ON_LOW_LV_RENDERING | ( | __NAME | ) |
#define IMPL_PFB_BEFORE_FLUSHING | ( | __NAME | ) |
#define init_arm_2d_helper_pfb | ( | __CB_ADDR, | |
__SCREEN_WIDTH, | |||
__SCREEN_HEIGHT, | |||
__PIXEL_TYPE, | |||
__COLOUR_FORMAT, | |||
__WIDTH, | |||
__HEIGHT, | |||
__PFB_NUM, | |||
... | |||
) |
a macro wrapper in lowercase to help initialising PFB service
[in] | __CB_ADDR | the address of the arm_2d_helper_pfb_t object |
[in] | __SCREEN_WIDTH | the width of the screen |
[in] | __SCREEN_HEIGHT | the hight of the screen |
[in] | __PIXEL_TYPE | the integer type of the pixel, i.e. uint8_t, uint16_t, uint32_t |
[in] | __COLOUR_FORMAT | the screen colour format, i.e. ARM_2D_COLOUR_CCCN888, ARM_2D_COLOUR_RGB565 etc. |
[in] | __WIDTH | the width of the PFB block |
[in] | __HEIGHT | the height of the PFB block |
[in] | __PFB_NUM | the number of PFB blocks in the built-in PFB pool. |
[in] | ... | a code block to add additional initializer, see example below: |
#define update_arm_2d_helper_pfb_on_draw_handler | ( | __CB_ADDR, | |
__HANDLER, | |||
... | |||
) |
a macro wrapper to update the evtOnDrawring event handler
[in] | __CB_ADDR | the address of the arm_2d_helper_pfb_t object |
[in] | __HANDLER | the new handler |
[in] | ... | [Optional] an address (of user defined structure) passed to the event handler. |
#define arm_2d_helper_pfb_report_rendering_complete | ( | __PFB_HELPER_PTR, | |
... | |||
) |
tell PFB helper that a low level LCD flushing work is complete
[in] | ptThis | the PFB helper control block |
[in] | ... | the used PFB block. |
#define __arm_2d_helper_dirty_region_update_dirty_regions3 | ( | __helper_ptr, | |
__tile_ptr, | |||
__visible_area_ptr, | |||
__new_region_ptr, | |||
__is_new_frame | |||
) |
update a specified new region while erase the previous region
[in] | ptThis | the target helper |
[in] | ptTargetTile | the target tile to draw content |
[in] | ptVisibleArea | a visible region in the target tile used to clip the ptNewRegion, NULL means no clipping. |
[in] | ptNewRegion | the new region to update, NULL means nothing to update |
[in] | bIsNewFrame | unused, keep for backward compatibility |
#define __arm_2d_helper_dirty_region_update_dirty_regions1 | ( | __helper_ptr, | |
__tile_ptr, | |||
__new_region_ptr | |||
) |
update a specified new region while erase the previous region
[in] | ptThis | the target helper |
[in] | ptTargetTile | the target tile to draw content |
[in] | ptNewRegion | the new region to update, NULL means nothing to update |
#define arm_2d_helper_dirty_region_update_dirty_regions | ( | __helper_ptr, | |
__tile_ptr, | |||
... | |||
) |
update a specified new region while erase the previous region
[in] | __helper_ptr | the target helper |
[in] | __tile_ptr | the target tile to draw content |
[in] | ... | optional parameters, and the following combinations are valid: a. new region ptr b. the canvas ptr and the new region ptr c. the canvas ptr, the new region ptr and a reserved option (bIsNewFrame) |
#define ARM_CONTROL_ENUMERATE | ( | __ROOT, | |
__ITEM_NAME, | |||
__POLICY | |||
) |
#define __arm_print_banner3 | ( | __STR, | |
__REGION, | |||
__FONT_PTR | |||
) |
#define __arm_print_banner1 | ( | __STR | ) |
#define arm_print_banner | ( | ... | ) |
#define arm_lcd_get_string_line_box | ( | __STR, | |
... | |||
) |
#define IMPL_FONT_DRAW_CHAR | ( | __NAME | ) |
#define IMPL_FONT_GET_CHAR_DESCRIPTOR | ( | __NAME | ) |
#define arm_2d_helper_is_time_out | ( | __ms, | |
... | |||
) |
set an alarm with given period and check the status
[in] | __ms | a time period in millisecond |
[in] | ... | an optional timestamp holder |
#define arm_2d_helper_time_elapsed | ( | __timestamp_ptr | ) |
#define arm_2d_helper_time_liner_slider | ( | __from, | |
__to, | |||
__ms, | |||
__stroke_ptr, | |||
... | |||
) |
calculate the stroke of a liner slider based on time
[in] | __from | the start of the slider |
[in] | __to | the end of the slider |
[in] | __ms | a given period (ms) in which the slider should finish the whole stroke |
[out] | __stroke_ptr | the address of an int32_t stroke variable |
[in] | ... | an optional address of a timestamp variable, if you omit it, NULL will be passed, and the code that call this funtion will not be reentrant. |
true | the slider has finished the whole stroke |
false | the slider hasn't reach the target end |
#define arm_2d_helper_time_cos_slider | ( | __from, | |
__to, | |||
__ms, | |||
__phase, | |||
__stroke_ptr, | |||
... | |||
) |
calculate the stroke of a cosine slider based on time
[in] | __from | the start of the slider |
[in] | __to | the end of the slider |
[in] | __ms | a given period (ms) in which the slider should finish the whole stroke |
[in] | __phase | the phase offset |
[out] | __stroke_ptr | the address of an int32_t stroke variable |
[in] | ... | an optional address of a timestamp variable, if you omit it, NULL will be passed, and the code that call this funtion will not be reentrant. |
true | the slider has finished the whole stroke |
false | the slider hasn't reach the target end |
#define arm_2d_helper_time_half_cos_slider | ( | __from, | |
__to, | |||
__ms, | |||
__stroke_ptr, | |||
... | |||
) |
calculate the stroke of a cosine slider(0~pi) based on time
[in] | __from | the start of the slider |
[in] | __to | the end of the slider |
[in] | __ms | a given period (ms) in which the slider should finish the whole stroke |
[out] | __stroke_ptr | the address of an int32_t stroke variable |
[in] | ... | an optional address of a timestamp variable, if you omit it, NULL will be passed, and the code that call this funtion will not be reentrant. |
true | the slider has finished the whole stroke |
false | the slider hasn't reach the target end |
#define impl_film | ( | __sprites_tile, | |
__width, | |||
__height, | |||
__column, | |||
__frame_count, | |||
__period | |||
) |
initialize/implement a given film (arm_2d_helper_file_t) object at compile-time.
[in] | __sprites_tile | the sprites tile |
[in] | __width | the width of each frame |
[in] | __height | the height of each frame |
[in] | __column | the number of frames per row in the sprite tile |
[in] | __frame_count | the total number of frames in the sprite tile |
[in] | __period | the period per-frame |
typedef void arm_2d_scene_before_scene_switching_handler_t(void *pTarget, arm_2d_scene_player_t *ptPlayer, arm_2d_scene_t *ptScene) |
the scene player event handler
[in] | pTarget | a user attached target address |
[in] | ptPlayer | the scene player |
[in] | ptScene | the old scene that is to be switched out |
typedef arm_fsm_rt_t arm_2d_draw_list_item_handler_t(arm_2d_list_item_t *ptThis, const arm_2d_tile_t *ptTile, bool bIsNewFrame, arm_2d_list_item_param_t *ptParam) |
the prototype of On-Drawing-List-Item event handler
[in] | ptThis | the current list core item object. |
[in] | ptTile | a tile for the virtual screen |
[in] | bIsNewFrame | a flag indicate the starting of a new frame |
[in] | ptParam | the runtime paramters |
typedef arm_2d_list_item_t * __arm_2d_list_item_iterator(__arm_2d_list_core_t *ptThis, arm_2d_list_iterator_dir_t tDirection, uint_fast16_t hwID) |
the list core interator prototype
[in] | ptThis | the target list core object |
[in] | tDirection | the direction for fetching a list item. |
[in] | hwID | the ID of the target item |
typedef __arm_2d_list_work_area_t * __arm_2d_list_region_calculator_t(__arm_2d_list_core_t *ptThis, __arm_2d_list_item_iterator *fnIterator, int32_t nOffset) |
the list region calculaor prototype
[in] | ptThis | the target list core object |
[in] | iOffset | the offset in the list core |
typedef bool arm_2d_helper_2d_copy_handler_t(arm_2d_helper_3fb_t *ptThis, void *pObj, uintptr_t pnSource, uint32_t wSourceStride, uintptr_t pnTarget, uint32_t wTargetStride, int16_t iWidth, int16_t iHeight, uint_fast8_t chBytePerPixel) |
An interface for 2D-Copy.
[in] | pnSource | the source image address |
[in] | wSourceStride | the stride of the source image |
[in] | pnTarget | the address in the target framebuffer |
[in] | wTargetStride | the stride of the target framebuffer |
[in] | iWidth | the safe width of the source image |
[in] | iHeight | the safe height of the source image |
true | the 2D copy is complete when leaving this function |
false | An async 2D copy request is sent to the DMA |
typedef void arm_2d_helper_dma_copy_handler_t(arm_2d_helper_3fb_t *ptThis, void *pObj, uintptr_t pnSource, uintptr_t pnTarget, uint32_t nDataItemCount, uint_fast8_t chDataItemSize) |
An interface for DMA memory-to-memory copy. If you have a DMA, you can implement this function by using __OVERRIDE_WEAK. You should implement an ISR for copy-complete event and call arm_2d_helper_3fb_report_dma_copy_complete() to notify the 3FB (direct mode) helper service.
[in] | ptThis | the helper service control block |
[in] | pObj | the address of the user object |
[in] | pnSource | the source address of the memory block |
[in] | pnTarget | the target address |
[in] | nDataItemCount | the number of date items |
[in] | chDataItemSize | the size of each data item |
typedef void arm_2d_helper_render_handler_t(void *pTarget, const arm_2d_pfb_t *ptPFB, bool bIsNewFrame) |
the On Low Level Rendering event handler for the low level (LCD Driver)
[in] | pTarget | a user attached target address |
[in] | ptPFB | the PFB block |
[in] | bIsNewFrame | a flag indicate the starting of a new frame |
typedef bool arm_2d_helper_before_flushing_handler_t(void *pTarget, arm_2d_pfb_t *ptOrigin, arm_2d_pfb_t *ptScratch) |
before-flushing event handler
[in] | ptOrigin | the original PFB |
[in] | ptScratch | A scratch PFB |
scene switching mode
the scene switching status
intructions for how to move the list core item iterator
anonymous enum |
direct mode helper service frame-buffer control block states
anonymous enum |
the enumeration for events
enum arm_2d_perfc_type_t |
the type of perf counter
void arm_2d_scene_player_flush_fifo | ( | arm_2d_scene_player_t * | ptThis | ) |
flush the scene FIFO
[in] | ptThis | the target scene player |
void arm_2d_scene_player_append_scenes | ( | arm_2d_scene_player_t * | ptThis, |
arm_2d_scene_t * | ptScenes, | ||
int_fast16_t | hwCount | ||
) |
append a set of scenes to a scene player
[in] | ptThis | the target scene player |
[in] | ptScenes | a scene array |
[in] | hwCount | the number of scenes in the array |
void arm_2d_scene_player_update_scene_background | ( | arm_2d_scene_player_t * | ptThis | ) |
request updating the background of the current scene
[in] | ptThis | the target scene player |
arm_2d_size_t arm_2d_scene_player_get_screen_size | ( | arm_2d_scene_player_t * | ptThis | ) |
get the screen size of a specified display adapter.
[in] | ptThis | the target scene player |
void arm_2d_scene_player_switch_to_next_scene | ( | arm_2d_scene_player_t * | ptThis | ) |
request switching to the next scene safely
[in] | ptThis | the target scene player |
void __arm_2d_scene_player_set_switching_mode | ( | arm_2d_scene_player_t * | ptThis, |
arm_2d_scene_switch_mode_t * | ptMode, | ||
uint16_t | hwSettings | ||
) |
configure the scene switching mode
[in] | ptThis | the target scene player |
[in] | ptMode | a switching mode object |
[in] | hwSettings | configurations for the switching |
uint16_t arm_2d_scene_player_get_switching_cfg | ( | arm_2d_scene_player_t * | ptThis | ) |
read the current scene switching mode
[in] | ptThis | the target scene player |
void arm_2d_scene_player_set_auto_switching_period | ( | arm_2d_scene_player_t * | ptThis, |
int_fast16_t | iMS | ||
) |
configure the scene switching period in auto-switching
[in] | ptThis | the target scene player |
[in] | iMS | period in millisecond |
void arm_2d_scene_player_set_manual_switching_offset | ( | arm_2d_scene_player_t * | ptThis, |
arm_2d_location_t | tPointer | ||
) |
use manual switch mode and set the offset
[in] | ptThis | the target scene player |
[in] | tPointer | the touch pointer location |
arm_2d_err_t arm_2d_scene_player_finish_manual_switching | ( | arm_2d_scene_player_t * | ptThis, |
bool | bMoveToPreviousScene, | ||
int_fast16_t | iInMS | ||
) |
end the manual switching and finish the left part in a specific period (ms)
[in] | ptThis | the target scene player |
[in] | bMoveToPreviousScene | a boolean value indicating whether move back to the previous scene, i.e. whether cancel the current switching |
iInMS | the planned period as if the switching is done in auto-switching mode |
bool arm_2d_scene_player_is_switching | ( | arm_2d_scene_player_t * | ptThis | ) |
check whether scene player is switching scenes
[in] | ptThis | the target scene player |
arm_2d_scene_player_switch_status_t arm_2d_scene_player_get_switching_status | ( | arm_2d_scene_player_t * | ptThis | ) |
get the scene player switching status
[in] | ptThis | the target scene player |
arm_2d_err_t __arm_2d_scene_player_register_on_draw_navigation_event_handler | ( | arm_2d_scene_player_t * | ptThis, |
arm_2d_helper_draw_handler_t * | fnHandler, | ||
void * | pTarget, | ||
arm_2d_region_list_item_t * | ptDirtyRegions | ||
) |
register / update the evtOnDrawNavigation event handler. You can use this event to draw an ALWAY-TOP navigation bar or title during switching period.
[in] | ptThis | the target scene player |
[in] | fnHandler | the event handler to draw the navigation bar and/or titles |
[in] | pTarget | the address of an user specified object. If it is NULL, ptThis will be used instead. |
[in] | ptDirtyRegions | a dirty region list for the navigation layer. |
void arm_2d_scene_player_hide_navigation_layer | ( | arm_2d_scene_player_t * | ptThis | ) |
hide the navigation layer
[in] | ptThis | an initialised scene player |
void arm_2d_scene_player_show_navigation_layer | ( | arm_2d_scene_player_t * | ptThis | ) |
show the navigation layer if there is a valid one
[in] | ptThis | an initialised scene player |
arm_2d_err_t __arm_2d_scene_player_register_before_switching_event_handler | ( | arm_2d_scene_player_t * | ptThis, |
arm_2d_scene_before_scene_switching_handler_t * | fnHandler, | ||
void * | pTarget | ||
) |
register / update the evtBeforeSwitching event handler. You can use this event to prepare next scenes.
[in] | ptThis | the target scene player |
[in] | fnHandler | the event handler |
[in] | pTarget | the address of an user specified object. |
arm_fsm_rt_t arm_2d_scene_player_task | ( | arm_2d_scene_player_t * | ptThis | ) |
the scene player task function
[in] | ptThis | the target scene player |
bool arm_2d_scene_player_append_dirty_regions | ( | arm_2d_scene_t * | ptScene, |
arm_2d_region_list_item_t * | ptItems, | ||
size_t | tCount | ||
) |
append dirty regions to the a specified scene
[in] | ptScene | the target scene |
[in] | ptItems | the dirty regions |
[in] | tCount | the number of dirty regions |
true | operation is successful |
false | the operation is failed. |
bool arm_2d_scene_player_remove_dirty_regions | ( | arm_2d_scene_t * | ptScene, |
arm_2d_region_list_item_t * | ptItems, | ||
size_t | tCount | ||
) |
remove dirty regions from the a specified scene
[in] | ptScene | the target scene |
[in] | ptItems | the dirty regions |
[in] | tCount | the number of dirty regions |
true | operation is successful |
false | the operation is failed. |
arm_2d_scene_t * arm_2d_scene_player_get_the_current_scene | ( | arm_2d_scene_player_t * | ptThis | ) |
get the current scene of a given scene player
[in] | ptThis | the target scene player |
arm_2d_region_list_item_t * arm_2d_scene_player_dynamic_dirty_region_init | ( | arm_2d_region_list_item_t * | ptThis, |
arm_2d_scene_t * | ptScene | ||
) |
initialize a user dynamic dirty region
[in] | ptThis | the target region list item. If it is NULL, this function will allocate an object from the heap |
[in] | ptScene | the target scene. |
void arm_2d_scene_player_dynamic_dirty_region_depose | ( | arm_2d_region_list_item_t * | ptThis, |
arm_2d_scene_t * | ptScene | ||
) |
depose a given user dynamic dirty region
[in] | ptThis | the target region list item. |
[in] | ptScene | the target scene. |
arm_2d_err_t __arm_2d_list_core_init | ( | __arm_2d_list_core_t * | ptThis, |
__arm_2d_list_core_cfg_t * | ptCFG | ||
) |
initialize a target list core object
[in] | ptThis | the target list core object |
[in] | ptCFG | the user specified configuration |
arm_2d_size_t __arm_2d_list_core_get_list_size | ( | __arm_2d_list_core_t * | ptThis | ) |
get the size of the target list
[in] | ptThis | the target list core object |
arm_fsm_rt_t __arm_2d_list_core_show | ( | __arm_2d_list_core_t * | ptThis, |
const arm_2d_tile_t * | ptTarget, | ||
const arm_2d_region_t * | ptRegion, | ||
bool | bIsNewFrame | ||
) |
show a given list core
[in] | ptThis | the target list core object |
[in] | ptTarget | the target framebuffer |
[in] | ptRegion | the target region |
[in] | bIsNewFrame | a flag to indicate whether current iteration is the first one of a new frame. |
void __arm_2d_list_core_move_request | ( | __arm_2d_list_core_t * | ptThis, |
int16_t | iSteps, | ||
int32_t | nFinishInMs | ||
) |
request to move selection with specified steps
[in] | ptThis | the target list core object |
[in] | iSteps | number of steps, here negative value means move to previous items and positive value means move to next items |
[in] | nFinishInMs |
|
void __arm_2d_list_core_move_offset | ( | __arm_2d_list_core_t * | ptThis, |
int16_t | iOffset | ||
) |
move selection with specified pixel offset
[in] | ptThis | the target list core object |
[in] | iOffset | number of pixels, here negative value means move to previous items and positive value means move to next items |
uint16_t __arm_2d_list_core_get_selected_item_id | ( | __arm_2d_list_core_t * | ptThis | ) |
get the currently selected item id
[in] | ptThis | the target list core object |
arm_2d_list_item_t * __arm_2d_list_core_get_selected_item | ( | __arm_2d_list_core_t * | ptThis | ) |
get the currently selected item
[in] | ptThis | the target list core object |
bool __arm_2d_list_core_need_redraw | ( | __arm_2d_list_core_t * | ptThis, |
bool | bAutoreset | ||
) |
check whether the list need a redraw
[in] | ptThis | the target list core object |
[in] | bAutoreset | a flag to indicate whether we have to clear the redraw flag automatically when calling this function. |
bool __arm_2d_list_core_is_list_moving | ( | __arm_2d_list_core_t * | ptThis | ) |
check whether the list is moving its items
[in] | ptThis | the target list core object |
arm_2d_list_item_t * __arm_2d_list_core_get_item | ( | __arm_2d_list_core_t * | ptThis, |
__arm_2d_list_item_iterator * | fnIterator, | ||
arm_2d_list_iterator_dir_t | tDirection, | ||
uint16_t | hwID, | ||
bool | bIgnoreStatusCheck, | ||
bool | bForceRingMode | ||
) |
get list item with a specified direction instruction
[in] | ptThis | the target list core object |
[in] | fnIterator | a list iterator |
[in] | tDirection | the direction instruction |
[in] | hwID | the item ID (when required by the direction instruction) |
[in] | bIgnoreStatusCheck | whether ignore the status checking |
[in] | bForceRingMode | whether force to enable ring mode anyway |
arm_2d_err_t arm_2d_helper_pfb_init | ( | arm_2d_helper_pfb_t * | ptThis, |
arm_2d_helper_pfb_cfg_t * | ptCFG | ||
) |
initialize pfb helper service
[in] | ptThis | the pfb helper control block |
[in] | ptCFG | the configuration |
void arm_2d_helper_pfb_deinit | ( | arm_2d_helper_pfb_t * | ptThis | ) |
uninitialize pfb helper service
[in] | ptThis | the pfb helper control block |
arm_2d_region_t arm_2d_helper_pfb_get_display_area | ( | arm_2d_helper_pfb_t * | ptThis | ) |
get the display (screen) region
[in] | ptThis | the pfb helper control block |
arm_2d_location_t arm_2d_helper_pfb_get_absolute_location | ( | arm_2d_tile_t * | ptTile, |
arm_2d_location_t | tLocation | ||
) |
get the absolute location for a given location on the target tile canvas
[in] | ptTile | the target tile |
[in] | tLocation | the location on the target tile canvas |
arm_2d_size_t arm_2d_helper_pfb_get_pfb_size | ( | arm_2d_helper_pfb_t * | ptThis | ) |
get the inital PFB size
[in] | ptThis | the pfb helper control block |
bool arm_2d_helper_pfb_is_region_being_drawing | ( | const arm_2d_tile_t * | ptTarget, |
const arm_2d_region_t * | ptRegion, | ||
const arm_2d_tile_t ** | ppVirtualScreen | ||
) |
test whether specified region is being drawing
[in] | ptTarget | the target tile |
[in] | ptRegion | the target region to test |
[out] | ppVirtualScreen | the address of the pointer that used to point the virtual screen tile |
bool arm_2d_helper_pfb_is_region_active | ( | const arm_2d_tile_t * | ptTarget, |
const arm_2d_region_t * | ptRegion, | ||
bool | bConsiderDryRun | ||
) |
test whether the target region is active (used by PFB service)
[in] | ptTarget | the target tile |
[in] | ptRegion | the target region to test |
bConsiderDryRun | whether taking dry run into consideration |
arm_fsm_rt_t arm_2d_helper_pfb_task | ( | arm_2d_helper_pfb_t * | ptThis, |
arm_2d_region_list_item_t * | ptDirtyRegions | ||
) |
the task function for pfb helper
[in] | ptThis | an initialised PFB helper control block |
[in] | ptDirtyRegions | a region list pending for refresh, NULL means refreshing the whole screen |
arm_fsm_rt_cpl | complete refreshing one frame |
arm_fsm_rt_on_going | the refreshing work is on-going |
arm_fsm_rt_wait_for_obj | user's OnDrawing event handler wants to wait for some objects, e.g. semaphore etc. |
<0 | An error is detected |
void arm_2d_helper_pfb_flush | ( | arm_2d_helper_pfb_t * | ptThis | ) |
flush the FPB FIFO
[in] | ptThis | an initialised PFB helper control block |
void arm_2d_helper_hide_navigation_layer | ( | arm_2d_helper_pfb_t * | ptThis | ) |
hide the navigation layer
[in] | ptThis | an initialised PFB helper control block |
void arm_2d_helper_show_navigation_layer | ( | arm_2d_helper_pfb_t * | ptThis | ) |
show the navigation layer if there is a valid one
[in] | ptThis | an initialised PFB helper control block |
void __arm_2d_helper_pfb_enable_drawing_canvas_colour | ( | arm_2d_helper_pfb_t * | ptThis, |
arm_2d_colour_t | tColour | ||
) |
enable filling canvas with specified colour
[in] | ptThis | an initialised PFB helper control block |
[in] | tColour | the target canvas colour |
void __arm_2d_helper_pfb_disable_drawing_canvas_colour | ( | arm_2d_helper_pfb_t * | ptThis | ) |
disable filling canvas with specified colour
[in] | ptThis | an initialised PFB helper control block |
void arm_2d_helper_ignore_low_level_flush | ( | arm_2d_helper_pfb_t * | ptThis | ) |
ignore the low level PFB flushing only
[in] | ptThis | an initialised PFB helper control block |
void arm_2d_helper_resume_low_level_flush | ( | arm_2d_helper_pfb_t * | ptThis | ) |
resume the low level PFB flushing
[in] | ptThis | an initialised PFB helper control block |
arm_2d_err_t arm_2d_helper_pfb_update_dependency | ( | arm_2d_helper_pfb_t * | ptThis, |
uint_fast8_t | chMask, | ||
const arm_2d_helper_pfb_dependency_t * | ptDependency | ||
) |
update PFB dependency (event handlers)
[in] | ptThis | the PFB helper control block |
[in] | chMask | the bit mask for event handlers |
[in] | ptDependency | the new dependency description |
void __arm_2d_helper_pfb_report_rendering_complete | ( | arm_2d_helper_pfb_t * | ptThis, |
arm_2d_pfb_t * | ptPFB | ||
) |
tell PFB helper that a low level LCD flushing work is complete
[in] | ptThis | the PFB helper control block |
[in] | ptPFB | the used PFB block |
arm_2d_pfb_t * __arm_2d_helper_pfb_new | ( | arm_2d_helper_pfb_t * | ptThis | ) |
try to get a PFB block from the pool
[in] | ptThis | the PFB helper control block |
NULL | the pool is empty |
!NULL | a valid pfb block |
void __arm_2d_helper_pfb_free | ( | arm_2d_helper_pfb_t * | ptThis, |
arm_2d_pfb_t * | ptPFB | ||
) |
free a PFB block to the pool
[in] | ptThis | the PFB helper control block |
[in] | ptPFB | the target PFB block |
void arm_2d_helper_3fb_init | ( | arm_2d_helper_3fb_t * | ptThis, |
const arm_2d_helper_3fb_cfg_t * | ptCFG | ||
) |
initialize the 3FB (direct mode) service
[in] | ptThis | the helper service control block |
[in] | ptCFG | the configuration structure |
void arm_2d_helper_3fb_report_dma_copy_complete | ( | arm_2d_helper_3fb_t * | ptThis | ) |
report the copy-completion event to the 3FB (direct mode) service
[in] | ptThis | the helper service control block |
void * arm_2d_helper_3fb_get_flush_pointer | ( | arm_2d_helper_3fb_t * | ptThis | ) |
get a pointer for flushing
[in] | ptThis | the helper service control block |
bool __arm_2d_helper_3fb_draw_bitmap | ( | arm_2d_helper_3fb_t * | ptThis, |
const arm_2d_pfb_t * | ptPFB | ||
) |
please do NOT use this function. It is used by the display adapter.
arm_2d_pfb_t * __arm_2d_helper_pfb_rotate90_c8bit | ( | arm_2d_pfb_t * | ptOrigin, |
arm_2d_pfb_t * | ptScratch, | ||
const arm_2d_size_t * | ptScreenSize | ||
) |
rotate a given c8bit PFB for 90 degree
[in] | ptOrigin | the original PFB |
[in] | ptScratch | A scratch PFB |
[in] | ptScreenSize | the screen size |
arm_2d_pfb_t * __arm_2d_helper_pfb_rotate180_c8bit | ( | arm_2d_pfb_t * | ptOrigin, |
arm_2d_pfb_t * | ptScratch, | ||
const arm_2d_size_t * | ptScreenSize | ||
) |
rotate a given c8bit PFB for 180 degree
[in] | ptOrigin | the original PFB |
[in] | ptScratch | A scratch PFB |
[in] | ptScreenSize | the screen size |
arm_2d_pfb_t * __arm_2d_helper_pfb_rotate270_c8bit | ( | arm_2d_pfb_t * | ptOrigin, |
arm_2d_pfb_t * | ptScratch, | ||
const arm_2d_size_t * | ptScreenSize | ||
) |
rotate a given c8bit PFB for 270 degree
[in] | ptOrigin | the original PFB |
[in] | ptScratch | A scratch PFB |
[in] | ptScreenSize | the screen size |
arm_2d_pfb_t * __arm_2d_helper_pfb_rotate90_rgb16 | ( | arm_2d_pfb_t * | ptOrigin, |
arm_2d_pfb_t * | ptScratch, | ||
const arm_2d_size_t * | ptScreenSize | ||
) |
rotate a given rgb16 PFB for 90 degree
[in] | ptOrigin | the original PFB |
[in] | ptScratch | A scratch PFB |
[in] | ptScreenSize | the screen size |
arm_2d_pfb_t * __arm_2d_helper_pfb_rotate180_rgb16 | ( | arm_2d_pfb_t * | ptOrigin, |
arm_2d_pfb_t * | ptScratch, | ||
const arm_2d_size_t * | ptScreenSize | ||
) |
rotate a given rgb16 PFB for 180 degree
[in] | ptOrigin | the original PFB |
[in] | ptScratch | A scratch PFB |
[in] | ptScreenSize | the screen size |
arm_2d_pfb_t * __arm_2d_helper_pfb_rotate270_rgb16 | ( | arm_2d_pfb_t * | ptOrigin, |
arm_2d_pfb_t * | ptScratch, | ||
const arm_2d_size_t * | ptScreenSize | ||
) |
rotate a given rgb16 PFB for 270 degree
[in] | ptOrigin | the original PFB |
[in] | ptScratch | A scratch PFB |
[in] | ptScreenSize | the screen size |
arm_2d_pfb_t * __arm_2d_helper_pfb_rotate90_rgb32 | ( | arm_2d_pfb_t * | ptOrigin, |
arm_2d_pfb_t * | ptScratch, | ||
const arm_2d_size_t * | ptScreenSize | ||
) |
rotate a given rgb32 PFB for 90 degree
[in] | ptOrigin | the original PFB |
[in] | ptScratch | A scratch PFB |
[in] | ptScreenSize | the screen size |
arm_2d_pfb_t * __arm_2d_helper_pfb_rotate180_rgb32 | ( | arm_2d_pfb_t * | ptOrigin, |
arm_2d_pfb_t * | ptScratch, | ||
const arm_2d_size_t * | ptScreenSize | ||
) |
rotate a given rgb32 PFB for 180 degree
[in] | ptOrigin | the original PFB |
[in] | ptScratch | A scratch PFB |
[in] | ptScreenSize | the screen size |
arm_2d_pfb_t * __arm_2d_helper_pfb_rotate270_rgb32 | ( | arm_2d_pfb_t * | ptOrigin, |
arm_2d_pfb_t * | ptScratch, | ||
const arm_2d_size_t * | ptScreenSize | ||
) |
rotate a given rgb32 PFB for 270 degree
[in] | ptOrigin | the original PFB |
[in] | ptScratch | A scratch PFB |
[in] | ptScreenSize | the screen size |
bool arm_2d_helper_pfb_append_dirty_regions_to_list | ( | arm_2d_region_list_item_t ** | ppDirtyRegionList, |
arm_2d_region_list_item_t * | ptItems, | ||
size_t | tCount | ||
) |
append dirty regions to the a specified list
[in] | ppDirtyRegionList | the target list |
[in] | ptItems | the dirty regions |
[in] | tCount | the number of dirty regions |
true | operation is successful |
false | the operation is failed. |
bool arm_2d_helper_pfb_remove_dirty_regions_from_list | ( | arm_2d_region_list_item_t ** | ppDirtyRegionList, |
arm_2d_region_list_item_t * | ptItems, | ||
size_t | tCount | ||
) |
remove dirty regions from the a specified list
[in] | ppDirtyRegionList | the target list |
[in] | ptItems | the dirty regions |
[in] | tCount | the number of dirty regions |
true | operation is successful |
false | the operation is failed. |
bool arm_2d_dirty_region_item_ignore_set | ( | arm_2d_region_list_item_t * | ptThis, |
bool | bIgnore | ||
) |
decide whether ignore the specified dirty region item
[in] | ptThis | the target dirty region item object |
[in] | bIgnore | whether ignore |
bool arm_2d_dirty_region_item_ignore_get | ( | arm_2d_region_list_item_t * | ptThis | ) |
get the ignore status of a given dirty region item
[in] | ptThis | the target dirty region item object |
true | the dirty region item is ignored. |
false | the dirty region item is in-use. |
void arm_2d_helper_pfb_enable_dirty_region_optimization | ( | arm_2d_helper_pfb_t * | ptThis, |
arm_2d_region_list_item_t * | ptRegions, | ||
uint_fast8_t | chCount | ||
) |
enable dirty region optimization service
[in] | ptThis | the PFB helper control block |
[in] | ptRegions | an optional array of dirty region items, which will be added to the dirty region item pool. NULL is acceptable. |
[in] | chCount | the number of items in the array. |
void arm_2d_helper_pfb_disable_dirty_region_optimization | ( | arm_2d_helper_pfb_t * | ptThis | ) |
disable dirty region optimization service
[in] | ptThis | the PFB helper control block |
void arm_2d_dynamic_dirty_region_on_frame_start | ( | arm_2d_region_list_item_t * | ptThis, |
uint8_t | chUserRegionIndex | ||
) |
the on-frame-start event handler for a given user dynamic dirty region
[in] | ptThis | the target region list item. |
[in] | chUserRegionIndex | a specified user region index. When 0xFF is given, the existing user region index will not be changed. |
arm_2d_region_list_item_t * arm_2d_dynamic_dirty_region_init | ( | arm_2d_region_list_item_t * | ptThis | ) |
initialize a dynamic dirty region
[in] | ptThis | the target region list item. If it is NULL, this function will allocate an object from the heap |
void arm_2d_dynamic_dirty_region_depose | ( | arm_2d_region_list_item_t * | ptThis | ) |
depose a given dynamic dirty region
[in] | ptThis | the target region list item. |
uint_fast8_t arm_2d_dynamic_dirty_region_wait_next | ( | arm_2d_region_list_item_t * | ptThis | ) |
wait for the PFB helper service requesting the next region
[in] | ptThis | the target region list item. |
void arm_2d_dynamic_dirty_region_update | ( | arm_2d_region_list_item_t * | ptThis, |
arm_2d_tile_t * | ptTarget, | ||
arm_2d_region_t * | ptRegion, | ||
uint8_t | chNextUserIndex | ||
) |
update a given user dynamic dirty region with a new region
[in] | ptThis | the target region list item. |
[in] | ptTarget | the target tile (the frame-buffer to draw) |
[in] | ptRegion | the new region |
[in] | chNextUserIndex | the next user region index, 0xFF means complete. |
void arm_2d_dynamic_dirty_region_change_user_region_index_only | ( | arm_2d_region_list_item_t * | ptThis, |
uint8_t | chNextUserIndex | ||
) |
only change the user region index without update the dynamic dirty region
[in] | ptThis | the target region list item. |
[in] | chNextUserIndex | the next user region index. When encounter 0xFF, the user region index will be reset to zero. |
void arm_2d_helper_dirty_region_init | ( | arm_2d_helper_dirty_region_t * | ptThis, |
arm_2d_region_list_item_t ** | ppDirtyRegionList | ||
) |
initialize a given dirtt region helper
[in] | ptThis | the target helper |
[in] | ppDirtyRegionList | the address of the dirty region list |
void arm_2d_helper_dirty_region_add_items | ( | arm_2d_helper_dirty_region_t * | ptThis, |
arm_2d_helper_dirty_region_item_t * | ptItems, | ||
uint_fast16_t | hwCount | ||
) |
add an array of region items to a dirty region helper
[in] | ptThis | the target helper |
[in] | ptItems | the array of the region items |
[in] | hwCount | the number of items in the array |
void arm_2d_helper_dirty_region_remove_items | ( | arm_2d_helper_dirty_region_t * | ptThis, |
arm_2d_helper_dirty_region_item_t * | ptItems, | ||
uint_fast16_t | hwCount | ||
) |
remove an array of region items to a dirty region helper
[in] | ptThis | the target helper |
[in] | ptItems | the array of the region items |
[in] | hwCount | the number of items in the array |
arm_2d_helper_dirty_region_item_t * arm_2d_helper_dirty_region_depose | ( | arm_2d_helper_dirty_region_t * | ptThis | ) |
depose a given dirty region helper
[in] | ptThis | the target helper |
void arm_2d_helper_dirty_region_on_frame_start | ( | arm_2d_helper_dirty_region_t * | ptThis | ) |
the on-frame-start event handler for a given dirty region helper
[in] | ptThis | the target helper |
void arm_2d_helper_dirty_region_update_item | ( | arm_2d_helper_dirty_region_t * | ptHelper, |
arm_2d_helper_dirty_region_item_t * | ptThis, | ||
const arm_2d_tile_t * | ptTargetTile, | ||
const arm_2d_region_t * | ptVisibleArea, | ||
const arm_2d_region_t * | ptNewRegion | ||
) |
update a specified new region while erase the previous region
[in] | ptHelper | the target dirty region helper |
[in] | ptThis | the target region item |
[in] | ptTargetTile | the target tile to draw content |
[in] | ptVisibleArea | a visible region in the target tile used to clip the ptNewRegion, NULL means no clipping. |
[in] | ptNewRegion | the new region to update, NULL means nothing to update |
void __arm_2d_helper_dirty_region_update_dirty_regions | ( | arm_2d_helper_dirty_region_t * | ptThis, |
const arm_2d_tile_t * | ptTargetTile | ||
) |
update a specified new region while erase the previous region
[in] | ptThis | the target helper |
[in] | ptTargetTile | the target tile to draw content |
void __arm_2d_helper_dirty_region_update_dirty_regions2 | ( | arm_2d_helper_dirty_region_t * | ptThis, |
const arm_2d_tile_t * | ptTargetTile, | ||
const arm_2d_region_t * | ptVisibleArea, | ||
const arm_2d_region_t * | ptNewRegion | ||
) |
update a specified new region while erase the previous region
[in] | ptThis | the target helper |
[in] | ptTargetTile | the target tile to draw content |
[in] | ptVisibleArea | a visible region in the target tile used to clip the ptNewRegion, NULL means no clipping. |
[in] | ptNewRegion | the new region to update, NULL means nothing to update |
bool arm_2d_helper_dirty_region_item_force_to_use_minimal_enclosure | ( | arm_2d_helper_dirty_region_item_t * | ptThis, |
bool | bEnable | ||
) |
force an arm_2d_helper_dirty_region_item_t object to use the minimal enclosure region to update.
[in] | ptThis | the target item |
[in] | bEnable | whether enable this feature. |
bool arm_2d_helper_dirty_region_force_to_use_minimal_enclosure | ( | arm_2d_helper_dirty_region_t * | ptThis, |
bool | bEnable | ||
) |
force the dirty region helper to use the minimal enclosure region to update.
[in] | ptThis | the target helper |
[in] | bEnable | whether enable this feature. |
bool arm_2d_helper_dirty_region_suspend_update | ( | arm_2d_helper_dirty_region_t * | ptThis, |
bool | bEnable | ||
) |
force the dirty region helper to suspend the dirty region update.
[in] | ptThis | the target helper |
[in] | bEnable | whether enable this feature. |
bool arm_2d_helper_dirty_region_item_suspend_update | ( | arm_2d_helper_dirty_region_item_t * | ptThis, |
bool | bEnable | ||
) |
force the arm_2d_helper_dirty_region_item_t object to suspend the dirty region update.
[in] | ptThis | the target item |
[in] | bEnable | whether enable this feature. |
void arm_2d_helper_transform_init | ( | arm_2d_helper_transform_t * | ptThis, |
arm_2d_op_t * | ptTransformOP, | ||
float | fAngleStep, | ||
float | fScaleStep, | ||
arm_2d_region_list_item_t ** | ppDirtyRegionList | ||
) |
initialize a given transform helper
[in] | ptThis | the target helper |
[in] | ptTransformOP | the target transform OP, NULL is not accepted. |
[in] | fAngleStep | the minimal acceptable angle change. |
[in] | fScaleStep | the minimal acceptable scale ratio change. |
[in] | ppDirtyRegionList | the address of the dirty region list |
void arm_2d_helper_transform_depose | ( | arm_2d_helper_transform_t * | ptThis | ) |
depose a given transform helper
[in] | ptThis | the target helper |
void arm_2d_helper_transform_on_frame_begin | ( | arm_2d_helper_transform_t * | ptThis | ) |
the on-frame-begin event handler for a given transform helper
[in] | ptThis | the target helper |
void arm_2d_helper_transform_force_update | ( | arm_2d_helper_transform_t * | ptThis | ) |
force transform helper to update dirty region
[in] | ptThis | the target helper |
bool arm_2d_helper_transform_force_to_use_minimal_enclosure | ( | arm_2d_helper_transform_t * | ptThis, |
bool | bEnable | ||
) |
force the transform helper to use the minimal enclosure region as the dirty region.
[in] | ptThis | the target helper |
[in] | bEnable | whether enable this feature. |
bool arm_2d_helper_transform_suspend_update | ( | arm_2d_helper_transform_t * | ptThis, |
bool | bEnable | ||
) |
force the transform helper to suspend the dirty region update.
[in] | ptThis | the target helper |
[in] | bEnable | whether enable this feature. |
void arm_2d_helper_transform_update_value | ( | arm_2d_helper_transform_t * | ptThis, |
float | fAngle, | ||
float | fScale | ||
) |
update a given transform helper with new values
[in] | ptThis | the target helper |
[in] | fAngle | the new angle value |
[in] | fScale | the new scale ratio |
void arm_2d_helper_transform_update_dirty_regions | ( | arm_2d_helper_transform_t * | ptThis, |
const arm_2d_region_t * | ptCanvas, | ||
bool | bIsNewFrame | ||
) |
update the dirty region after a transform operation
[in] | ptThis | the target helper |
[in] | ptCanvas | the canvas |
[in] | bIsNewFrame | whether this is a new frame |
void arm_2d_helper_dirty_region_transform_init | ( | arm_2d_helper_dirty_region_transform_t * | ptThis, |
arm_2d_helper_dirty_region_t * | ptHelper, | ||
arm_2d_op_t * | ptTransformOP, | ||
float | fAngleStep, | ||
float | fScaleStep | ||
) |
initialize a given dirty region transform helper
[in] | ptThis | the target helper |
[in] | ptHelper | the host arm_2d_helper_dirty_region_t object. |
[in] | ptTransformOP | the target transform OP, NULL is not accepted. |
[in] | fAngleStep | the minimal acceptable angle change. |
[in] | fScaleStep | the minimal acceptable scale ratio change. |
void arm_2d_helper_dirty_region_transform_depose | ( | arm_2d_helper_dirty_region_transform_t * | ptThis | ) |
depose a given dirty region transform helper
[in] | ptThis | the target helper |
void arm_2d_helper_dirty_region_transform_on_frame_start | ( | arm_2d_helper_dirty_region_transform_t * | ptThis | ) |
the on-frame-begin event handler for a given dirty region transform helper
[in] | ptThis | the target helper |
void arm_2d_helper_dirty_region_transform_force_update | ( | arm_2d_helper_dirty_region_transform_t * | ptThis | ) |
force a dirty region transform helper to update its dirty region
[in] | ptThis | the target helper |
bool arm_2d_helper_dirty_region_transform_force_to_use_minimal_enclosure | ( | arm_2d_helper_dirty_region_transform_t * | ptThis, |
bool | bEnable | ||
) |
force a dirty region transform helper to use the minimal enclosure region as the dirty region.
[in] | ptThis | the target helper |
[in] | bEnable | whether enable this feature. |
bool arm_2d_helper_dirty_region_transform_suspend_update | ( | arm_2d_helper_dirty_region_transform_t * | ptThis, |
bool | bEnable | ||
) |
force a dirty region transform helper to suspend updating.
[in] | ptThis | the target helper |
[in] | bEnable | whether enable this feature. |
void arm_2d_helper_dirty_region_transform_update_value | ( | arm_2d_helper_dirty_region_transform_t * | ptThis, |
float | fAngle, | ||
float | fScale | ||
) |
update a given dirty region transform helper with new values
[in] | ptThis | the target helper |
[in] | fAngle | the new angle value |
[in] | fScale | the new scale ratio |
void arm_2d_helper_dirty_region_transform_update | ( | arm_2d_helper_dirty_region_transform_t * | ptThis, |
const arm_2d_region_t * | ptCanvas, | ||
bool | bIsNewFrame | ||
) |
update the dirty region after a transform operation
[in] | ptThis | the target helper |
[in] | ptCanvas | the canvas |
[in] | bIsNewFrame | whether this is a new frame |
arm_2d_err_t arm_2d_helper_control_enum_init | ( | arm_2d_control_enumerator_t * | ptThis, |
const arm_2d_control_enumeration_policy_t * | ptPolicy, | ||
const arm_2d_control_node_t * | ptRoot | ||
) |
Initialize a enumerator for the target element tree with a given
traversal policy.
[in] | ptThis | an arm_2d_control_enumerator_t object |
[in] | ptPolicy | the policy |
[in] | ptRoot | the root of the target element tree |
arm_2d_control_node_t * arm_2d_helper_control_enum_get_next_node | ( | arm_2d_control_enumerator_t * | ptThis | ) |
get the next node of the target enumerator
[in] | ptThis | the target enumerator |
arm_2d_err_t arm_2d_helper_control_enum_depose | ( | arm_2d_control_enumerator_t * | ptThis | ) |
depose (de-initialize) a given enumerator
[in] | ptThis | the target enumerator |
arm_2d_control_node_t * arm_2d_helper_control_find_node_with_location | ( | arm_2d_control_node_t * | ptRoot, |
arm_2d_location_t | tLocation | ||
) |
find the top node on the screen with a given touch location.
[in] | ptRoot | the root of the target element tree |
[in] | tLocation | the touch coordinate |
arm_2d_region_t * arm_2d_helper_control_get_absolute_region | ( | arm_2d_control_node_t * | ptNode, |
arm_2d_region_t * | ptOutRegion, | ||
bool | bClip | ||
) |
get the absolute region of a given target control in an element tree
[in] | ptNode | the target control in an element tree |
[in] | ptOutRegion | the object buffer to hold the result |
[in] | bClip | whether clip the control region during the calculation |
NULL | the target control is out of the container area |
!NULL | the ptOutRegion |
int8_t arm_2d_helper_get_utf8_byte_valid_length | ( | const uint8_t * | pchChar | ) |
return a valid code length of a given UTF8 char
[in] | pchChar | the start address of an UTF8 char |
-1 | this isn't a legal UTF8 char |
>0 | the UTF8 char length |
int8_t arm_2d_helper_get_utf8_byte_length | ( | const uint8_t * | pchChar | ) |
return the code length based on the first byte of a given UTF8 char
[in] | pchChar | the start address of an UTF8 char |
-1 | this isn't a legal UTF8 char |
>0 | the UTF8 char length |
uint32_t arm_2d_helper_utf8_to_unicode | ( | const uint8_t * | pchUTF8 | ) |
convert an UTF8 char into unicode char
[in] | pchUTF8 |
arm_2d_char_descriptor_t * arm_2d_helper_get_char_descriptor | ( | const arm_2d_font_t * | ptFont, |
arm_2d_char_descriptor_t * | ptDescriptor, | ||
uint8_t * | pchCharCode | ||
) |
get char descriptor
[in] | ptFont | the target font |
[in] | ptDescriptor | a buffer to store a char descriptor |
[in] | pchCharCode | an UTF8 Char |
void arm_lcd_text_init | ( | arm_2d_region_t * | ptScreen | ) |
initialize lcd text display service
[in] | ptScreen | the default display area |
int16_t lcd_draw_char | ( | int16_t | iX, |
int16_t | iY, | ||
uint8_t ** | ppchCharCode, | ||
uint_fast8_t | chOpacity | ||
) |
draw a char to a given location in the draw region
[in] | iX | the x coordinate |
[in] | iY | the y coordinate |
[in] | ppchCharCode | a pointer of pointer that points to the string |
[in] | chOpacity | the opacity of the char |
bool arm_lcd_text_force_char_use_same_width | ( | bool | bForced | ) |
Force all char use the same width.
[in] | bForced | force or not |
void arm_lcd_text_set_display_mode | ( | uint32_t | wMode | ) |
set the display mode for characters
[in] | wMode | the display mode which could be the combination of following enum values:
|
void arm_2d_helper_init | ( | void | ) |
initialize helper services
void arm_2d_helper_backend_task | ( | void | ) |
backend task for asynchronose mode
int64_t arm_2d_helper_convert_ticks_to_ms | ( | int64_t | lTick | ) |
convert ticks of a reference timer to millisecond
[in] | lTick | the tick count |
int64_t arm_2d_helper_convert_ms_to_ticks | ( | uint32_t | wMS | ) |
convert millisecond into ticks of the reference timer
[in] | wMS | the target time in millisecond |
uint32_t arm_2d_helper_get_reference_clock_frequency | ( | void | ) |
get the reference clock frequency
int64_t arm_2d_helper_get_system_timestamp | ( | void | ) |
get the current system stamp from the reference clock
int64_t __arm_2d_helper_time_elapsed | ( | int64_t * | plTimestamp | ) |
get the elapsed time since a reference timestamp
[in] | plTimestamp | the reference timestamp |
bool __arm_2d_helper_is_time_out | ( | int64_t | lPeriod, |
int64_t * | plTimestamp | ||
) |
set an alarm with given period and check the status
[in] | lPeriod | a time period in ticks |
[in] | plTimestamp | a pointer points to an int64_t integer, if NULL is passed, an static local variable inside the function will be used |
uintptr_t arm_2d_port_new_semaphore | ( | void | ) |
get a new semaphore from host RTOS
void arm_2d_port_free_semaphore | ( | uintptr_t | pSemaphore | ) |
free a semaphore
[in] | pSemaphore | the target semaphore |
bool arm_2d_port_wait_for_semaphore | ( | uintptr_t | pSemaphore | ) |
wait for a semaphore
[in] | pSemaphore | the target semaphore |
true | we get the semaphore |
false | we haven't get the sempahore |
void arm_2d_port_set_semaphore | ( | uintptr_t | pSemaphore | ) |
set a semaphore
[in] | pSemaphore | the target semaphore |
bool __arm_2d_helper_time_liner_slider | ( | int32_t | nFrom, |
int32_t | nTo, | ||
int64_t | lPeriod, | ||
int32_t * | pnStroke, | ||
int64_t * | plTimestamp | ||
) |
calculate the stroke of a liner slider based on time
[in] | nFrom | the start of the slider |
[in] | nTo | the end of the slider |
[in] | lPeriod | a given period in which the slider should finish the whole stroke |
[out] | pnStroke | the address of an int32_t stroke variable |
[in] | plTimestamp | the address of a timestamp variable, if you pass NULL the code that call this funtion will not be reentrant. |
true | the slider has finished the whole stroke |
false | the slider hasn't reach the target end |
bool __arm_2d_helper_time_half_cos_slider | ( | int32_t | nFrom, |
int32_t | nTo, | ||
int64_t | lPeriod, | ||
int32_t * | pnStroke, | ||
int64_t * | plTimestamp | ||
) |
calculate the stroke of a cosine slider (0~pi) based on time
[in] | nFrom | the start of the slider |
[in] | nTo | the end of the slider |
[in] | lPeriod | a given period in which the slider should finish the whole stroke |
[out] | pnStroke | the address of an int32_t stroke variable |
[in] | plTimestamp | the address of a timestamp variable, if you pass NULL the code that call this funtion will not be reentrant. |
true | the slider has finished the whole stroke |
false | the slider hasn't reach the target end |
bool __arm_2d_helper_time_cos_slider | ( | int32_t | nFrom, |
int32_t | nTo, | ||
int64_t | lPeriod, | ||
float | fPhase, | ||
int32_t * | pnStroke, | ||
int64_t * | plTimestamp | ||
) |
calculate the stroke of a consine slider (0~2pi) based on time
[in] | nFrom | the start of the slider |
[in] | nTo | the end of the slider |
[in] | lPeriod | a given period in which the slider should finish the whole stroke |
[in] | lPhase | the phase offset |
[out] | pnStroke | the address of an int32_t stroke variable |
[in] | plTimestamp | the address of a timestamp variable, if you pass NULL the code that call this funtion will not be reentrant. |
true | the slider has finished the whole stroke |
false | the slider hasn't reach the target end |
uint32_t __arm_2d_helper_colour_slider | ( | uint32_t | wFrom, |
uint32_t | wTo, | ||
int32_t | nDistance, | ||
int32_t | nOffset | ||
) |
\brier colour intrapolation
[in] | wFrom | a 32bit colour (4 8bit colour channels) on the start |
[in] | wTo | a 32bit colour (4 8bit colour channels) on the end |
[in] | nDistance | the reference full distance between two end points |
[in] | nOffset | the offset from the start |
arm_2d_helper_pi_slider_t * arm_2d_helper_pi_slider_init | ( | arm_2d_helper_pi_slider_t * | ptThis, |
arm_2d_helper_pi_slider_cfg_t * | ptCFG, | ||
int32_t | nStartPosition | ||
) |
initialize the Proportional-Integral Control helper
[in] | the | target helper control block |
[in] | the | configuration structure, NULL means using the default parameters, i.e P = 5.0f, I = 3.0f and Interval = 20ms |
[in] | nStartPosition | the start postion |
bool arm_2d_helper_pi_slider | ( | arm_2d_helper_pi_slider_t * | ptThis, |
int32_t | nTargetPosition, | ||
int32_t * | pnResult | ||
) |
A helper function for Proportional-Integral Control.
[in] | ptThis | the control block (arm_2d_helper_pi_slider_t) |
[in] | nTargetPosition | the new target position |
[in] | pnResult | a int32_t buffer for reading the current postion |
true | the slider has reached the target postion |
false | the slider is still moving |
void arm_2d_helper_pi_slider_set_current | ( | arm_2d_helper_pi_slider_t * | ptThis, |
int32_t | nCurrent | ||
) |
reset the PI slider and set the current value
[in] | ptThis | the control block (arm_2d_helper_pi_slider_t) |
[in] | nCurrent | the new current value |
bool arm_2d_helper_pi_slider_f32 | ( | arm_2d_helper_pi_slider_t * | ptThis, |
float | fTargetPosition, | ||
float * | pfResult | ||
) |
A helper function for Proportional-Integral Control.
[in] | ptThis | the control block (arm_2d_helper_pi_slider_t) |
[in] | fTargetPosition | the new target position |
[in] | pfResult | a int32_t buffer for reading the current postion |
true | the slider has reached the target postion |
false | the slider is still moving |
void arm_2d_helper_pi_slider_set_current_f32 | ( | arm_2d_helper_pi_slider_t * | ptThis, |
float | fCurrent | ||
) |
reset the PI slider and set the current value
[in] | ptThis | the control block (arm_2d_helper_pi_slider_t) |
[in] | fCurrent | the new current value |
void arm_2d_helper_draw_box | ( | const arm_2d_tile_t * | ptTarget, |
const arm_2d_region_t * | ptRegion, | ||
int16_t | iBorderWidth, | ||
COLOUR_INT | tColour, | ||
uint8_t | chOpacity | ||
) |
\brier draw a box with specified colour, border width and opacity
[in] | ptTarget | the target tile |
[in] | ptRegion | the target region |
[in] | iBorderWidth | the border width |
[in] | tColour | the target colour |
[in] | chOpacity | the opacity |
void arm_2d_helper_film_next_frame | ( | arm_2d_helper_film_t * | ptThis | ) |
\brier move to the next frame of a given film
[in] | ptThis | the target film |
void arm_2d_helper_film_reset | ( | arm_2d_helper_film_t * | ptThis | ) |
\brier reset the frame index to zero
[in] | ptThis | the target film |
void arm_2d_helper_film_set_frame | ( | arm_2d_helper_film_t * | ptThis, |
int32_t | nIndex | ||
) |
\brier reset the frame index to a specified value and wrap around if the index number is out of range.
[in] | ptThis | the target film |
[in] | nIndex | the given index |
bool arm_2d_byte_fifo_init | ( | arm_2d_byte_fifo_t * | ptThis, |
void * | pBuffer, | ||
uint16_t | hwSize | ||
) |
initialize a given byte fifo
[in] | ptThis | the target FIFO control block |
[in] | pBuffer | a buffer for storing the data |
[in] | hwSize | the buffer size |
false | Illegal parameters |
true | the target FIFO is initialized |
void arm_2d_byte_fifo_drop_all | ( | arm_2d_byte_fifo_t * | ptThis | ) |
Empty a given byte fifo.
[in] | ptThis | the target byte fifo |
bool arm_2d_byte_fifo_enqueue | ( | arm_2d_byte_fifo_t * | ptThis, |
uint8_t | chChar | ||
) |
write a byte to a given fifo
[in] | ptThis | the target FIFO control block |
[in] | chChar | the target byte |
false | the FIFO is FULL |
true | operation is successful |
bool arm_2d_byte_fifo_dequeue | ( | arm_2d_byte_fifo_t * | ptThis, |
uint8_t * | pchChar | ||
) |
read a byte from a given fifo
[in] | ptThis | the target FIFO control block |
[in] | pchChar | a buffer to store the byte, NULL means drop a byte |
false | the FIFO is EMPTY |
true | operation is successful |
bool arm_2d_byte_fifo_peek | ( | arm_2d_byte_fifo_t * | ptThis, |
uint8_t * | pchChar, | ||
bool | bMovePointer | ||
) |
peek a byte continuously from a given fifo
[in] | ptThis | the target FIFO control block |
[in] | pchChar | a buffer to store the byte, NULL means drop a byte |
false | the FIFO is EMPTY |
true | operation is successful |
void arm_2d_byte_fifo_get_all_peeked | ( | arm_2d_byte_fifo_t * | ptThis | ) |
drop all peeked byte from a given fifo
[in] | ptThis | the target FIFO control block |
void arm_2d_byte_fifo_reset_peeked | ( | arm_2d_byte_fifo_t * | ptThis | ) |
reset the peek pointer, so you can restart from the beginning to peek.
[in] | ptThis | the target FIFO control block |
void arm_2d_helper_swap_rgb16 | ( | uint16_t * | phwBuffer, |
uint32_t | wCount | ||
) |
swap the high and low bytes for each rgb16 pixel
[in] | phwBuffer | the pixel buffer |
[in] | wSize | the number of pixels |
void arm_2d_helper_fill_tile_colour | ( | const arm_2d_tile_t * | ptTile, |
arm_2d_color_info_t | tColourFormat, | ||
arm_2d_colour_t | tColour | ||
) |
fill the target tile with a specified colour
[in] | ptTile | the target tile |
[in] | tColourFormat | the colour format of the target tile |
[in] | tColour | the target colour |
|
extern |
a list calculator for vertical lists, which puts selected item in the centre of the target list
|
extern |
a list calculator for horizontal lists, which puts selected item in the centre of the target list
|
extern |
a list calculator for vertical lists, which puts selected item in the centre of the target list, item size is fixed and no status checking (i.e. visible or enabled).
|
extern |
a list calculator for horizontal lists, which puts selected item in the centre of the target list, item size is fixed and no status checking (i.e. visible or enabled).
|
extern |
a list iterator for the list that stores items in an array
|
extern |
The Preorder traversal is suitable for the following operations in the control (element tree) management.
|
extern |
The Postorder traversal is suitable for the following operations in the control (element tree) management:
|
extern |
The Bottom-Up traversal is suitable for the normal message handling in the control (element tree) management.