瀏覽代碼

feat: setting font once before drawing

Roman Shchekin 2 年之前
父節點
當前提交
0bb751f906
共有 1 個文件被更改,包括 6 次插入3 次删除
  1. 6 3
      views/hex_viewer_startscreen.c

+ 6 - 3
views/hex_viewer_startscreen.c

@@ -69,6 +69,9 @@ void hex_viewer_startscreen_draw(Canvas* canvas, HexViewerStartscreenModel* mode
         uint32_t row_iters = model->file_read_bytes / HEX_VIEWER_BYTES_PER_LINE;
         uint32_t row_iters = model->file_read_bytes / HEX_VIEWER_BYTES_PER_LINE;
         if(model->file_read_bytes % HEX_VIEWER_BYTES_PER_LINE != 0) row_iters += 1;
         if(model->file_read_bytes % HEX_VIEWER_BYTES_PER_LINE != 0) row_iters += 1;
 
 
+        // For the rest of drawing.
+        canvas_set_font(canvas, FontKeyboard);
+
         for(uint32_t i = 0; i < row_iters; ++i) {
         for(uint32_t i = 0; i < row_iters; ++i) {
             uint32_t bytes_left_per_row = model->file_read_bytes - i * HEX_VIEWER_BYTES_PER_LINE;
             uint32_t bytes_left_per_row = model->file_read_bytes - i * HEX_VIEWER_BYTES_PER_LINE;
             bytes_left_per_row = MIN(bytes_left_per_row, HEX_VIEWER_BYTES_PER_LINE);
             bytes_left_per_row = MIN(bytes_left_per_row, HEX_VIEWER_BYTES_PER_LINE);
@@ -79,13 +82,13 @@ void hex_viewer_startscreen_draw(Canvas* canvas, HexViewerStartscreenModel* mode
                 for(uint32_t j = 0; j < bytes_left_per_row; ++j)
                 for(uint32_t j = 0; j < bytes_left_per_row; ++j)
                     if(!isprint((int)temp_buf[j])) temp_buf[j] = '.';
                     if(!isprint((int)temp_buf[j])) temp_buf[j] = '.';
 
 
-                canvas_set_font(canvas, FontKeyboard);
+                //canvas_set_font(canvas, FontKeyboard);
                 canvas_draw_str(canvas, LEFT_OFFSET, TOP_OFFSET + i * ROW_HEIGHT, temp_buf);
                 canvas_draw_str(canvas, LEFT_OFFSET, TOP_OFFSET + i * ROW_HEIGHT, temp_buf);
             } else {
             } else {
                 uint32_t addr = model->file_offset + i * HEX_VIEWER_BYTES_PER_LINE;
                 uint32_t addr = model->file_offset + i * HEX_VIEWER_BYTES_PER_LINE;
                 snprintf(temp_buf, 32, "%04lX", addr);
                 snprintf(temp_buf, 32, "%04lX", addr);
 
 
-                canvas_set_font(canvas, FontKeyboard);
+                //canvas_set_font(canvas, FontKeyboard);
                 canvas_draw_str(canvas, LEFT_OFFSET, TOP_OFFSET + i * ROW_HEIGHT, temp_buf);
                 canvas_draw_str(canvas, LEFT_OFFSET, TOP_OFFSET + i * ROW_HEIGHT, temp_buf);
             }
             }
 
 
@@ -93,7 +96,7 @@ void hex_viewer_startscreen_draw(Canvas* canvas, HexViewerStartscreenModel* mode
             for(uint32_t j = 0; j < bytes_left_per_row; ++j)
             for(uint32_t j = 0; j < bytes_left_per_row; ++j)
                 p += snprintf(p, 32, "%02X ", model->file_bytes[i][j]);
                 p += snprintf(p, 32, "%02X ", model->file_bytes[i][j]);
 
 
-            canvas_set_font(canvas, FontKeyboard);
+            //canvas_set_font(canvas, FontKeyboard);
             canvas_draw_str(canvas, LEFT_OFFSET + 41, TOP_OFFSET + i * ROW_HEIGHT, temp_buf);
             canvas_draw_str(canvas, LEFT_OFFSET + 41, TOP_OFFSET + i * ROW_HEIGHT, temp_buf);
         }
         }