MTK 中断
来源:互联网 发布:网络招聘部项目计划书 编辑:程序博客网 时间:2024/06/10 07:37
MTK 中断
MTK平台有个图层的概念。每个层的数据存放在不同的buffer中,这些buffer可以从LCD对应的寄存器中读出。具体的自己去查对应平台的规格书吧。
MTK的平台是你在blockwrite中通过STARTLCDTRANSFER打开这个寄存器对应的位,然后硬件把每一层图像中对应的像素点取出,然后通过硬件合成,把合成后的数据通过你在LCD_DATA_ADDR中设置的端口地址找到LCD接口,送入LCD中显示。
1,首先由应用建立一个layer,开一个存放LCD数据的BUFFER,然后把这个BUFFER的地址赋给LCD寄存器
gdi_layer_blt_ext() >> CONFIG_HARDWARE_LAYER >> config_lcd_layer_window()
{......
DRV_WriteReg32(lcd_layer_base_addr+0x0C,layer_data->frame_buffer_address);
}
这样数据源已经关联起来了,其实这里还会设置宽度和高度这些信息.
2,准备好数据源之后开始发指令进行DMA传输
gdi_layer_blt_ext() >> lcd_fb_update() >> MainLCD->BlockWrite()
{
START_LCD_TRANSFER
}
--------------------------------------------------------------------------------------
每个背景就是一个图形或图像填充起来的矩形,只要初始化结构提UI_filled_area,然后交由函数gui_draw_filled_area画出来即可。
typedef struct _UI_filled_area
{
U32 flags; //总控制标志
PU8 b; //背景图像
gradient_color *gc; //递进颜色
color c; //背景色
color ac; //替换色
color border_color; //边框颜色
color shadow_color; //阴影颜色
UI_transparent_color_type transparent_color; //透明色
} UI_filled_area;
flags = 类型标志|边框标志|阴影标志;
颜色为背景
void EntryScreenInternet(void)
{
UI_filled_area filler = {0};
EntryNewScreen(SCR_INT_MAIN, NULL, EntryScreenInternet, NULL);
entry_full_screen();
clear_screen_with_color(gui_color(0, 255, 0));
filler.flags = UI_FILLED_AREA_TYPE_COLOR|UI_FILLED_AREA_BORDER|UI_FILLED_AREA_SHADOW;
filler.c = UI_COLOR_GREY;
filler.border_color = UI_COLOR_DARK_GREY;
filler.shadow_color = UI_COLOR_3D_FILLER;
gui_draw_filled_area(20, 20, 156, 150, &filler);
ShowCategoryInternet();
SetKeyHandler(GoBackHistory, KEY_RSK, KEY_EVENT_UP);
}
递进颜色为背景
void EntryScreenInternet(void)
{
UI_filled_area filler = {0};
static color g_color[3] = {{255, 0, 0},{0, 255, 0},{0, 0, 255}};
static U8 perc[2] = {30, 70};
gradient_color gc = {g_color, perc, 3};
EntryNewScreen(SCR_INT_MAIN, NULL, EntryScreenInternet, NULL);
entry_full_screen();
clear_screen_with_color(gui_color(0, 255, 0));
filler.flags = UI_FILLED_AREA_TYPE_GRADIENT_COLOR;
filler.gc = &gc;
gui_draw_filled_area(20, 20, 156, 150, &filler);
ShowCategoryInternet();
SetKeyHandler(GoBackHistory, KEY_RSK, KEY_EVENT_UP);
}
递进色需要用到一个结构体gradient_color, 其定义如下:
typedef struct _gradient_color
{
color *c; 颜色列表,数量由最后一个参数N决定
U8 *p; 百分比列表,个数为N-1,依次表示两个相邻
颜色递进宽度占整个宽度的百分比
U8 n; 颜色数量
} gradient_color;
如上例,总共有三个颜色红,绿,蓝,其中红绿递进所占的百分比为30%,绿蓝递进所占的百分比为70%
另外还有两个参数控制递进色的显示方式:
UI_FILLED_AREA_HORIZONTAL_FILL: 水平方式递进显示,此为默认方式,可以不用设。
UI_FILLED_AREA_VERTICAL_FILL:垂直方式递进显示,从上到下递进显示。
UI_FILLED_AREA_FLIP_FILL:反转显示,将递进色从右至左,或从下至上显示。
图形为背景
void EntryScreenInternet(void)
{
UI_filled_area filler = {0};
EntryNewScreen(SCR_INT_MAIN, NULL, EntryScreenInternet, NULL);
entry_full_screen();
//clear_screen();
clear_screen_with_color(gui_color(0, 255, 0));
filler.flags = UI_FILLED_AREA_TYPE_BITMAP;
filler.b = GetImage(IMG_GLOBAL_SUB_MENU_BG);
gui_draw_filled_area(20, 20, 156, 150, &filler);
ShowCategoryInternet();
SetKeyHandler(GoBackHistory, KEY_RSK, KEY_EVENT_UP);
}
纹理为背景
纹理就是不停的用一副图填充背景,直到填满为止
filler.flags = UI_FILLED_AREA_TYPE_TEXTURE;
filler.b = GetImage(IMG_FLEXIBLE_TITLEBAR_BG);
gui_draw_filled_area(20, 20, 156, 150, &filler);
3D效果背景
filler.flags = UI_FILLED_AREA_TYPE_3D_BORDER;
filler.c = UI_COLOR_GREY;
gui_draw_filled_area(20, 20, 156, 150, &filler);
还有两种3D效果的背景
UI_FILLED_AREA_TYPE_CUSTOM_FILL_TYPE1
UI_FILLED_AREA_TYPE_CUSTOM_FILL_TYPE2
百页窗及十字纹
flags 等效的图像函数
UI_FILLED_AREA_TYPE_CROSS_HATCH_COLOR gui_cross_hatch_fill_rectangle
UI_FILLED_AREA_TYPE_HATCH_COLOR gui_hatch_fill_rectangle
UI_FILLED_AREA_TYPE_ALTERNATE_CROSS_HATCH_COLOR gui_alternate_cross_hatch_fill_rectangle
UI_FILLED_AREA_TYPE_ALTERNATE_HATCH_COLOR gui_alternate_hatch_fill_rectangle
背景动画
gdi_handle my_anim;
void EntryScreenInternet(void)
{
EntryNewScreen(SCR_INT_MAIN, NULL, EntryScreenInternet, NULL);
entry_full_screen();
clear_screen_with_color(gui_color(0, 255, 0));
gdi_anim_draw_id(0, 0, IMG_ID_PHNSET_ON_0, my_anim)
ShowCategoryInternet();
}
- mtk 中断
- mtk 中断
- MTK 中断
- MTK 外部中断
- mtk 按键中断驱动
- MTK sd中断
- MTK FeaturePhone平台关于中断的理解
- MTK 底层耳机中断上报流程
- 3. MTK 底层耳机中断上报流程
- MTK平台释疑android M 配置中断相关问题
- mtk
- MTK
- mtk
- MTK
- MTK
- MTK
- mtk
- MTK
- shell - 使用命令trap来捕捉信号
- 安装配置grid control
- iis6设置http压缩的问题
- 在SHELL中捕捉信号的TRAP命令
- SAS的函数
- MTK 中断
- C#调用外部程序(用cmd为例子)
- JS 得当前地址url参数
- 注意使用stringstream时的清空操作
- LAMP安装配置超详细讲解
- 颜色的16进制表示方法
- The process of developing websites using zope concepts.
- offsetTop、 offsetLeft、offsetWidth、offsetHeight的用法
- MFC微型教程