71 lines
1.4 KiB
C
71 lines
1.4 KiB
C
|
|
/**
|
|||
|
|
* File: lcd_profile.h
|
|||
|
|
* Author: AWTK Develop Team
|
|||
|
|
* Brief: wrap lcd for performance profile.
|
|||
|
|
*
|
|||
|
|
* Copyright (c) 2018 - 2023 Guangzhou ZHIYUAN Electronics Co.,Ltd.
|
|||
|
|
*
|
|||
|
|
* This program is distributed in the hope that it will be useful,
|
|||
|
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|||
|
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|||
|
|
* License file for more details.
|
|||
|
|
*
|
|||
|
|
*/
|
|||
|
|
|
|||
|
|
/**
|
|||
|
|
* History:
|
|||
|
|
* ================================================================
|
|||
|
|
* 2018-03-21 Li XianJing <xianjimli@hotmail.com> created
|
|||
|
|
*
|
|||
|
|
*/
|
|||
|
|
|
|||
|
|
#ifndef LCD_PROFILE_H
|
|||
|
|
#define LCD_PROFILE_H
|
|||
|
|
|
|||
|
|
#include "base/lcd.h"
|
|||
|
|
|
|||
|
|
BEGIN_C_DECLS
|
|||
|
|
|
|||
|
|
/**
|
|||
|
|
* @class lcd_profile_t
|
|||
|
|
* @parent lcd_t
|
|||
|
|
* 对现有LCD对象进行包装,实现对各个函数的时间统计,用于辅助定位性能瓶颈。
|
|||
|
|
*
|
|||
|
|
*/
|
|||
|
|
typedef struct _lcd_profile_t {
|
|||
|
|
lcd_t lcd;
|
|||
|
|
|
|||
|
|
/*private*/
|
|||
|
|
lcd_t* impl;
|
|||
|
|
|
|||
|
|
uint32_t begin_frame_time;
|
|||
|
|
|
|||
|
|
uint32_t total_cost;
|
|||
|
|
uint32_t swap_cost;
|
|||
|
|
uint32_t flush_cost;
|
|||
|
|
|
|||
|
|
uint32_t draw_image_cost;
|
|||
|
|
uint32_t draw_image_times;
|
|||
|
|
uint32_t draw_image_pixels;
|
|||
|
|
|
|||
|
|
uint32_t draw_text_cost;
|
|||
|
|
uint32_t draw_text_times;
|
|||
|
|
uint32_t draw_text_chars;
|
|||
|
|
|
|||
|
|
uint32_t fill_cost;
|
|||
|
|
uint32_t fill_times;
|
|||
|
|
uint32_t fill_pixels;
|
|||
|
|
|
|||
|
|
uint32_t stroke_cost;
|
|||
|
|
uint32_t stroke_times;
|
|||
|
|
uint32_t stroke_pixels;
|
|||
|
|
} lcd_profile_t;
|
|||
|
|
|
|||
|
|
lcd_t* lcd_profile_create(lcd_t* impl);
|
|||
|
|
|
|||
|
|
#define LCD_PROFILE(lcd) ((lcd_profile_t*)(lcd))
|
|||
|
|
|
|||
|
|
END_C_DECLS
|
|||
|
|
|
|||
|
|
#endif /*LCD_PROFILE_H*/
|