[FL-2524] Graphics cleanup and icon rotation (#2561)
* Canvas with rotation * Full icon rotation, cleanup of unused resources * F18 API update * Bitmap draw cleanup * More cleaning up * Migrate recovery and DFU to canvas * Make the internal draw function static * Remove all calls to u8g2_DrawXBM Co-authored-by: あく <alleteam@gmail.com>
This commit is contained in:
		@@ -37,7 +37,7 @@ static void desktop_loader_callback(const void* message, void* context) {
 | 
			
		||||
static void desktop_lock_icon_draw_callback(Canvas* canvas, void* context) {
 | 
			
		||||
    UNUSED(context);
 | 
			
		||||
    furi_assert(canvas);
 | 
			
		||||
    canvas_draw_icon(canvas, 0, 0, &I_Lock_8x8);
 | 
			
		||||
    canvas_draw_icon(canvas, 0, 0, &I_Lock_7x8);
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
static void desktop_dummy_mode_icon_draw_callback(Canvas* canvas, void* context) {
 | 
			
		||||
@@ -230,7 +230,7 @@ Desktop* desktop_alloc() {
 | 
			
		||||
 | 
			
		||||
    // Lock icon
 | 
			
		||||
    desktop->lock_icon_viewport = view_port_alloc();
 | 
			
		||||
    view_port_set_width(desktop->lock_icon_viewport, icon_get_width(&I_Lock_8x8));
 | 
			
		||||
    view_port_set_width(desktop->lock_icon_viewport, icon_get_width(&I_Lock_7x8));
 | 
			
		||||
    view_port_draw_callback_set(
 | 
			
		||||
        desktop->lock_icon_viewport, desktop_lock_icon_draw_callback, desktop);
 | 
			
		||||
    view_port_enabled_set(desktop->lock_icon_viewport, false);
 | 
			
		||||
 
 | 
			
		||||
@@ -115,16 +115,18 @@ static void desktop_view_pin_input_draw_cells(Canvas* canvas, DesktopViewPinInpu
 | 
			
		||||
            } else {
 | 
			
		||||
                switch(model->pin.data[i]) {
 | 
			
		||||
                case InputKeyDown:
 | 
			
		||||
                    canvas_draw_icon(canvas, x + 3, y + 2, &I_Pin_arrow_down_7x9);
 | 
			
		||||
                    canvas_draw_icon_ex(
 | 
			
		||||
                        canvas, x + 3, y + 2, &I_Pin_arrow_up_7x9, IconRotation180);
 | 
			
		||||
                    break;
 | 
			
		||||
                case InputKeyUp:
 | 
			
		||||
                    canvas_draw_icon(canvas, x + 3, y + 2, &I_Pin_arrow_up_7x9);
 | 
			
		||||
                    canvas_draw_icon_ex(canvas, x + 3, y + 2, &I_Pin_arrow_up_7x9, IconRotation0);
 | 
			
		||||
                    break;
 | 
			
		||||
                case InputKeyLeft:
 | 
			
		||||
                    canvas_draw_icon(canvas, x + 2, y + 3, &I_Pin_arrow_left_9x7);
 | 
			
		||||
                    canvas_draw_icon_ex(
 | 
			
		||||
                        canvas, x + 2, y + 3, &I_Pin_arrow_up_7x9, IconRotation270);
 | 
			
		||||
                    break;
 | 
			
		||||
                case InputKeyRight:
 | 
			
		||||
                    canvas_draw_icon(canvas, x + 2, y + 3, &I_Pin_arrow_right_9x7);
 | 
			
		||||
                    canvas_draw_icon_ex(canvas, x + 2, y + 3, &I_Pin_arrow_up_7x9, IconRotation90);
 | 
			
		||||
                    break;
 | 
			
		||||
                default:
 | 
			
		||||
                    furi_assert(0);
 | 
			
		||||
@@ -147,7 +149,8 @@ static void desktop_view_pin_input_draw(Canvas* canvas, void* context) {
 | 
			
		||||
    desktop_view_pin_input_draw_cells(canvas, model);
 | 
			
		||||
 | 
			
		||||
    if((model->pin.length > 0) && !model->locked_input) {
 | 
			
		||||
        canvas_draw_icon(canvas, 4, 53, &I_Pin_back_full_40x8);
 | 
			
		||||
        canvas_draw_icon(canvas, 4, 53, &I_Pin_back_arrow_10x8);
 | 
			
		||||
        canvas_draw_str(canvas, 16, 60, "= clear");
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    if(model->button_label && ((model->pin.length >= MIN_PIN_SIZE) || model->locked_input)) {
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user