/***************************************************************************** * FUNCTION * wgui_text_label_show * DESCRIPTION * show the text label component * PARAMETERS * text_label_id [IN] Id of text label * RETURNS * void *****************************************************************************/ void wgui_text_label_show(U32 text_label_id) { /*----------------------------------------------------------------*/ /* Local Variables */ /*----------------------------------------------------------------*/ GDI_HANDLE old_lcd, old_layer; /*----------------------------------------------------------------*/ /* Code Body */ /*----------------------------------------------------------------*/ if (text_label_id >= WGUI_TEXT_LABEL_MAX || wgui_text_label_list[text_label_id].active == MMI_FALSE) { return; } GDI_LOCK; gdi_layer_get_active(&old_layer); gdi_lcd_get_active(&old_lcd); gdi_lcd_set_active(wgui_text_label_list[text_label_id].target_lcd); gdi_layer_push_and_set_active(wgui_text_label_list[text_label_id].target_layer); gui_text_label_show(&wgui_text_label_list[text_label_id]); gdi_layer_pop_and_restore_active(); gdi_lcd_set_active(old_lcd); gdi_layer_set_active(old_layer); GDI_UNLOCK; }
static S32 mmi_em_profiling_gdi_misc_2d_nb(void *v_param) { gdi_handle src_layer, dest_layer; gdi_lt_matrix_struct affine_transform = { { 1.8f, 0.0f, 5.0f, 0.0f, 1.9f, 5.0f, 0.0f, 0.0f, 1.0f } }; src_layer = mmi_em_profiling_gdi_create_layer(GDI_COLOR_FORMAT_32_PARGB, 0, 0, 100, 100); dest_layer = mmi_em_profiling_gdi_create_layer(GDI_COLOR_FORMAT_32_PARGB, 0, 0, 200, 200); gdi_layer_push_and_set_active(src_layer); gdi_layer_clear(GDI_COLOR_GREEN); gdi_image_draw_id(0, 0, IMG_GLOBAL_QUESTION); gdi_layer_set_active(dest_layer); gdi_layer_clear(GDI_COLOR_BLACK); gdi_2d_linear_transfrom( affine_transform.m, src_layer, 0, 0, 100, 100, 0, 0, 200, 200, GDI_LT_SRC_KEY_EDGE_FILTER_DULPLICATE, GDI_COLOR_WHITE, GDI_LT_SAMPLE_MODE_BILINEAR_WITH_EDGE_FILTER_DULPLICATE, GDI_LT_FLAG_NON_BLOCKING); gdi_layer_pop_and_restore_active(); gdi_2d_fill_rect( dest_layer, dest_layer, 50, 50, 100, 100, 255, gdi_cf_get_color(GDI_COLOR_FORMAT_32_PARGB, 128, 255, 255, 255), GDI_2D_FILL_FLAG_ALPHA_BLENDING | GDI_2D_FILL_FLAG_NON_BLOCKING, NULL); gdi_2d_fill_rect_wait_for_finish(); mmi_em_profiling_gdi_misc_blt_case(dest_layer, 0, 0, 0); mmi_em_profiling_gdi_free_layer(src_layer); mmi_em_profiling_gdi_free_layer(dest_layer); return 0; }
static gdi_handle mmi_em_profiling_gdi_misc_fill_rect_create_layer( gdi_color_format cf) { gdi_handle layer; layer = mmi_em_profiling_gdi_create_layer( cf, 0, 0, 100, 100); gdi_layer_push_and_set_active(layer); gdi_layer_clear(GDI_COLOR_BLUE); gdi_layer_pop_and_restore_active(); return layer; }
void *mmi_widget_view_lock_canvas(int instance_id, void *view_handle, void **ptr_buffer, int width, int height) { canvas_lock_struct *lock = NULL; int buffer_size = width * height * 2; #ifdef WIDGET_DETAILS_VIEW_ARGB8888_COLOR_FORMAT buffer_size = width * height * 4; #endif ASSERT(ptr_buffer); if (mmi_frm_scrn_get_active_id() != SCR_ID_WIDGET_VIEW) { return NULL; } kal_take_mutex(g_widget_view_lock); if (!g_widget_view_cntx || g_widget_view_cntx->widget_id != instance_id || g_widget_view_cntx->view_handle != view_handle || !g_widget_view_cntx->render_layer || g_widget_view_cntx->view_width != width || g_widget_view_cntx->view_height != height) { kal_give_mutex(g_widget_view_lock); return NULL; } lock = (canvas_lock_struct *)OslMalloc(sizeof(canvas_lock_struct)); memset(lock, 0, sizeof(canvas_lock_struct)); lock->mutex = g_widget_view_lock; lock->view_type = g_widget_view_cntx->view_type; lock->unlock_canvas = mmi_widget_view_unlock_canvas; gdi_layer_push_and_set_active(g_widget_view_cntx->render_layer); memset(gdi_act_layer->buf_ptr1, 0xff, buffer_size); //gdi_layer_get_buffer_ptr(&layer_buffer); *ptr_buffer = gdi_act_layer->buf_ptr1; gdi_layer_pop_and_restore_active(); return lock; }
static S32 mmi_em_profiling_gdi_misc_fill_rect_src2(void *v_param) { gdi_handle src_layer; gdi_handle dest_layer; dest_layer = mmi_em_profiling_gdi_misc_fill_rect_create_layer(GDI_COLOR_FORMAT_32_PARGB); src_layer = mmi_em_profiling_gdi_create_layer(GDI_COLOR_FORMAT_16, 0, 0, 100, 100); gdi_layer_push_and_set_active(src_layer); gdi_layer_clear(GDI_COLOR_RED); gdi_layer_pop_and_restore_active(); gdi_2d_fill_rect( src_layer, dest_layer, 30, 30, 60, 60, 128, gdi_cf_get_color(GDI_COLOR_FORMAT_16, 255, 255, 255, 255), GDI_2D_FILL_FLAG_ALPHA_BLENDING, NULL); mmi_em_profiling_gdi_misc_blt_case(dest_layer, 0, 0, 0); mmi_em_profiling_gdi_free_layer(src_layer); mmi_em_profiling_gdi_free_layer(dest_layer); return 0; }
static S32 mmi_em_profiling_gdi_misc_speed_sw_fill_rect(void *v_param) { static const U32 PROFILING_MS = 4000; gdi_handle layer; S32 i; U32 start_time, duration; mmi_em_profiling_gdi_misc_speec_fill_rect_param *param = (mmi_em_profiling_gdi_misc_speec_fill_rect_param*)v_param; kal_int32 fill_x, fill_y, fill_width, fill_height; gdi_color fill_color; layer = mmi_em_profiling_gdi_create_layer( param->layer.cf, param->layer.x, param->layer.y, param->layer.width, param->layer.height); if (layer == 0) { return -1; } gdi_layer_push_and_set_active(layer); gdi_layer_clear(GDI_COLOR_BLACK); gdi_layer_pop_and_restore_active(); fill_x = param->fill.x; fill_y = param->fill.y; fill_width = param->fill.width; fill_height = param->fill.height; fill_color = gdi_cf_get_color(param->layer.cf, 255, 255, 255, 255); gdi_layer_push_and_set_active(layer); MMI_TRACE(MMI_COMMON_TRC_INFO, TRC_APP_EM_PROFILING_GDI_FRECT_START); start_time = drv_get_current_time(); i = 0; do { do { gdi_draw_solid_rect( fill_x, fill_y, fill_width, fill_height, fill_color); i++; } while ((i & 0xf) != 0); /* Calculate duration every 16 iterations */ duration = drv_get_duration_ms(start_time); } #ifdef __MTK_TARGET__ while (duration < PROFILING_MS); #else while (0); #endif MMI_TRACE(MMI_COMMON_TRC_INFO, TRC_APP_EM_PROFILING_GDI_FRECT_END, param->id, i, duration); gdi_layer_pop_and_restore_active(); gdi_layer_blt( layer, 0, 0, 0, 0, 0, GDI_LCD_WIDTH - 1, GDI_LCD_HEIGHT - 1); mmi_em_profiling_gdi_free_layer(layer); return 0; }