Data Structures | |
struct | arm_2d_pfb_t |
the header of a PFB block More... | |
struct | arm_2d_region_list_item_t |
the node of a region list More... | |
struct | arm_2d_helper_render_evt_t |
on low level render event More... | |
struct | arm_2d_helper_draw_evt_t |
on drawing event More... | |
struct | arm_2d_helper_pfb_dependency_t |
The PFB Helper Service Dependency. More... | |
struct | arm_2d_helper_pfb_cfg_t |
PFB Helper configuration. More... | |
struct | arm_2d_helper_pfb_t |
the PFB helper control block More... | |
struct | arm_2d_helper_pfb_cfg_t.FrameBuffer |
struct | arm_2d_helper_pfb_t.__unnamed117__ |
< user configuration More... | |
struct | arm_2d_helper_pfb_t.__unnamed117__.Adapter |
struct | arm_2d_helper_pfb_t.__unnamed117__.Adapter.__unnamed121__ |
struct | arm_2d_helper_pfb_t.__unnamed117__.Adapter.FlushFIFO |
struct | arm_2d_helper_pfb_t.Statistics |
Macros | |
#define | ARM_2D_HELPER_PFB_INIT(__CB_ADDR, __SCREEN_WIDTH, __SCREEN_HEIGHT, __PIXEL_TYPE, __WIDTH, __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) |
#define | IMPL_PFB_ON_LOW_LV_RENDERING(__NAME) |
#define | IMPL_PFB_ON_FRAME_SYNC_UP(__NAME) bool __NAME(void *pTarget) |
#define | init_arm_2d_helper_pfb(__CB_ADDR, __SCREEN_WIDTH, __SCREEN_HEIGHT, __PIXEL_TYPE, __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 | 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 | __declare_tile(__NAME) extern const arm_2d_tile_t __NAME; |
#define | declare_tile(__NAME) __declare_tile(__NAME) |
#define | __implement_tile(__NAME, __WIDTH, __HEIGHT, __TYPE, ...) |
#define | implement_tile(__NAME, __WIDTH, __HEIGHT, __TYPE, ...) __implement_tile(__NAME, __WIDTH, __HEIGHT, __TYPE, ##__VA_ARGS__) |
#define | get_tile_buffer_pixel_count(__NAME) |
#define | get_tile_buffer_size(__NAME, __TYPE) (get_2d_layer_buffer_pixel_count(__NAME) * sizeof(TYPE)) |
#define | __arm_2d_align_centre2(__region, __size) |
#define | __arm_2d_align_centre3(__region, __width, __height) |
#define | arm_2d_align_centre(...) |
Typedefs | |
typedef arm_fsm_rt_t | arm_2d_helper_draw_handler_t(void *pTarget, const arm_2d_tile_t *ptTile, bool bIsNewFrame) |
the On-Drawing event handler for application layer 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... | |
Enumerations | |
enum | { ARM_2D_PFB_DEPEND_ON_LOW_LEVEL_RENDERING = _BV(0) , ARM_2D_PFB_DEPEND_ON_DRAWING = _BV(1) , ARM_2D_PFB_DEPEND_ON_LOW_LEVEL_SYNC_UP = _BV(2) , ARM_2D_PFB_DEPEND_ON_FRAME_SYNC_UP = _BV(3) } |
the enumeration for events More... | |
Functions | |
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... | |
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... | |
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... | |
struct arm_2d_pfb_t |
the header of a PFB block
Data Fields | ||
---|---|---|
struct arm_2d_pfb_t * | ptNext | next pfb block |
arm_2d_tile_t | tTile | descriptor |
bool | bIsNewFrame | 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 |
arm_2d_region_t | tRegion | the region |
struct arm_2d_helper_render_evt_t |
on 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_draw_evt_t |
on drawing event
Data Fields | ||
---|---|---|
arm_2d_helper_draw_handler_t * | fnHandler | event handler function |
void * | pTarget | user attached target |
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) |
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 |
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.__unnamed117__ | __unnamed__ | < user configuration |
struct arm_2d_helper_pfb_t.Statistics | Statistics | performance statistics |
struct arm_2d_helper_pfb_cfg_t.FrameBuffer |
Data Fields | ||
---|---|---|
arm_2d_pfb_t * | ptPFBs | current PFB block |
arm_2d_size_t | tFrameSize | the size of the frame |
uint32_t | wBufferSize | the buffer size |
uint16_t | hwPFBNum | the number of PFB |
uint16_t | bDoNOTUpdateDefaultFrameBuffer: 1 | A flag to disable automatically default-framebuffer-registration. |
uint16_t | bDisableDynamicFPBSize: 1 | A flag to disable resize of the PFB block. |
uint16_t | bSwapRGB16: 1 | A flag to enable swapping high and low bytes of an RGB16 pixel. |
struct arm_2d_helper_pfb_t.__unnamed117__ |
< user configuration
Data Fields | ||
---|---|---|
arm_2d_helper_pfb_cfg_t | tCFG | |
struct arm_2d_helper_pfb_t.__unnamed117__.Adapter | Adapter |
struct arm_2d_helper_pfb_t.__unnamed117__.Adapter |
Data Fields | ||
---|---|---|
arm_2d_region_t | tDrawRegion | |
arm_2d_region_t | tTargetRegion | |
arm_2d_region_list_item_t * | ptDirtyRegion | |
arm_2d_tile_t | tPFBTile | |
arm_2d_size_t | tFrameSize | |
bool | bFirstIteration | |
bool | bIsRegionChanged | |
uint8_t | chPT | |
struct arm_2d_helper_pfb_t.__unnamed117__.Adapter.__unnamed121__ | __unnamed__ | |
arm_2d_pfb_t * | ptCurrent | |
arm_2d_pfb_t * | ptFreeList | |
struct arm_2d_helper_pfb_t.__unnamed117__.Adapter.FlushFIFO | FlushFIFO | |
arm_2d_tile_t * | ptFrameBuffer |
struct arm_2d_helper_pfb_t.__unnamed117__.Adapter.__unnamed121__ |
struct arm_2d_helper_pfb_t.__unnamed117__.Adapter.FlushFIFO |
Data Fields | ||
---|---|---|
arm_2d_pfb_t * | ptHead | |
arm_2d_pfb_t * | ptTail |
struct arm_2d_helper_pfb_t.Statistics |
#define ARM_2D_HELPER_PFB_INIT | ( | __CB_ADDR, | |
__SCREEN_WIDTH, | |||
__SCREEN_HEIGHT, | |||
__PIXEL_TYPE, | |||
__WIDTH, | |||
__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] | __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_DRAW | ( | __NAME | ) |
#define IMPL_PFB_ON_LOW_LV_RENDERING | ( | __NAME | ) |
#define init_arm_2d_helper_pfb | ( | __CB_ADDR, | |
__SCREEN_WIDTH, | |||
__SCREEN_HEIGHT, | |||
__PIXEL_TYPE, | |||
__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] | __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 __implement_tile | ( | __NAME, | |
__WIDTH, | |||
__HEIGHT, | |||
__TYPE, | |||
... | |||
) |
#define get_tile_buffer_pixel_count | ( | __NAME | ) |
#define __arm_2d_align_centre2 | ( | __region, | |
__size | |||
) |
#define __arm_2d_align_centre3 | ( | __region, | |
__width, | |||
__height | |||
) |
#define arm_2d_align_centre | ( | ... | ) |
typedef arm_fsm_rt_t arm_2d_helper_draw_handler_t(void *pTarget, const arm_2d_tile_t *ptTile, bool bIsNewFrame) |
the On-Drawing event handler for application layer
[in] | pTarget | a user attached target address |
[in] | ptTile | a tile for the virtual screen |
[in] | bIsNewFrame | a flag indicate the starting of a new frame |
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 |
anonymous enum |
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 |
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 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 |
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 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 control block |
[in] | ptPFB | the used PFB block |