MTK 層的應用

2021-05-22 00:21:33 字數 1881 閱讀 2023

gui_buffer = getcurrguibuffer(scr_id_***x);

//設定視窗不帶狀態列

entry_full_screen();

//開啟多層

gdi_layer_multi_layer_enable();

buf_ptr = med_alloc_ext_mem(gdi_lcd_width*gdi_lcd_height*2);

if (buf_ptr == null)

gdi_layer_create_using_outside_memory(

0,0,

ui_device_width,

ui_device_height,

&my_layer1,

(pu8) buf_ptr,

(s32) gdi_lcd_width*gdi_lcd_height*2);

//啟用新層1

gdi_layer_set_active(my_layer1);

//把背景全刷成紅色

gdi_layer_clear_background(gdi_color_red);

//設定紅色為通透色

gdi_layer_set_source_key(true, gdi_color_red);

gdi_image_draw_id(50, 100, img_id_phoart_icon_6);

//建立層2,使用系統提供的直接建立函式從層記憶體直接建立

gdi_layer_create(0, 0, ui_device_width, ui_device_height, &my_layer2);

//啟用新層2

gdi_layer_set_active(my_layer2);

gdi_layer_clear_background(gdi_color_transparent);//刷色

gdi_layer_set_source_key(true, gdi_color_transparent);//設定通透

//在層2上輸出字串

gui_move_text_cursor(50, 200);

gui_print_bordered_text(l"hellow word");

//在最後要啟用基層

gdi_layer_get_base_handle(&my_base_layer);

gdi_layer_set_active(my_layer1);

//得到當前活動層的通透屬性

gdi_layer_get_source_key(&isenable, &base_color);

//設定通透

gdi_layer_set_source_key(true, base_color);

//指定合併層,注意疊加的順序

gdi_layer_set_blt_layer(my_base_layer, my_layer1, my_layer2, 0);

//重新整理到螢幕上

gdi_layer_blt_previous(0, 0, ui_device_width - 1, ui_device_height - 1);

}有關gdi_layer_create函式再說明一點,如果你通過這個函式建立的層大小比螢幕小,倒是可以建立多個的,但你所建立的層大小的總和,不能超過螢幕大小

還有一點需要注意的是,如果程式執行在**上,最好使用malloc和free替換med_alloc_ext_mem和med_free_ext_mem,也就是寫成

#ifdef win32

malloc

#else

med_alloc_ext_mem

#endif

和#ifdef win32

free

#else

med_free_ext_mem

#endif

MTK層的運用

有關gdi layer create函式再說明一點,如果你通過這個函式建立的層大小比螢幕小,倒是可以建立多個的,但你所建立的層大小的總和,不能超過螢幕大小 還有一點需要注意的是,如果程式執行在 上,最好使用malloc和free替換med alloc ext mem和med free ext mem...

MTK層的運用

有關gdi layer create函式再說明一點,如果你通過這個函式建立的層大小比螢幕小,倒是可以建立多個的,但你所建立的層大小的總和,不能超過螢幕大小 還有一點需要注意的是,如果程式執行在 上,最好使用malloc和free替換med alloc ext mem和med free ext mem...

MTK特效製作的方法,層複製

對於mtk平台來說,選單和螢幕特效曾經在很長的一段時間裡,影響甚遠。但對於其設計過程和方法,由於各種各樣的原因,很少有人提及。這裡介紹一種不同於前幾天日誌所載之方法的另一種方法,就是合併圖層,其核心實現函式如下。void my gdi layer copy gdi layer struct dst ...