diff --git a/src/engine.c b/src/engine.c index bf70f83d..459e9e31 100644 --- a/src/engine.c +++ b/src/engine.c @@ -1430,7 +1430,7 @@ void Main_handler(void) if (!preview_is_visible) { previewW = Layer_button_width; - previewH = previewW * Main_image_height / Main_image_width; + previewH = previewW * Main_image_height / Main_image_width * Menu_factor_X / Menu_factor_Y; if (previewH * Menu_factor_Y > Menu_Y) previewH = Menu_Y / Menu_factor_Y; Open_popup((Buttons_Pool[BUTTON_LAYER_SELECT].X_offset + 2)*Menu_factor_X, @@ -1454,12 +1454,15 @@ void Main_handler(void) if (layer*Layer_button_width+previewW > Window_width) break; - for (x = 0; x < previewW; x++) - for (y = 0; y < previewH; y++) + for (y = 0; y < previewH*Pixel_height*Menu_factor_Y; y++) + for (x = 0; x < previewW*Pixel_width*Menu_factor_X; x++) { - int imgx = x * Main_image_width / previewW; - int imgy = y * Main_image_height / previewH; - Pixel_in_window(layer*Layer_button_width + x, y, *(Main_backups->Pages->Image[layer].Pixels + int imgx = x * Main_image_width / previewW/Pixel_width/Menu_factor_X; + int imgy = y * Main_image_height / previewH/Pixel_height/Menu_factor_Y; + // Use Pixel_simple() instead of Pixel_in_window() in order to get higher resolution + //Pixel_in_window(layer*Layer_button_width + x, y, *(Main_backups->Pages->Image[layer].Pixels + // + imgx + imgy * Main_image_width)); + Pixel_simple(x+(layer*Layer_button_width*Menu_factor_X+Window_pos_X)*Pixel_width, y+Window_pos_Y*Pixel_height, *(Main_backups->Pages->Image[layer].Pixels + imgx + imgy * Main_image_width)); } }