@@ -73,19 +73,14 @@ void BitmapScreen::BlitScreen(int x, int y, Rect const& src_rect) {
7373
7474 Rect rect = src_rect_effect.GetSubRect (src_rect);
7575
76- Rect bush_rect = src_rect_effect;
77- bush_rect.height -= bush_effect;
78- bush_rect = bush_rect.GetSubRect (src_rect);
79- int bush_y = (rect.y + rect.height ) - (bush_rect.y + bush_rect.height );
80-
8176 bool need_scale = false ;
82- BitmapRef draw_bitmap = Refresh (rect, need_scale, bush_y );
77+ BitmapRef draw_bitmap = Refresh (rect, need_scale);
8378
8479 bitmap_changed = false ;
8580 needs_refresh = false ;
8681
8782 if (draw_bitmap) {
88- BlitScreenIntern (*draw_bitmap, x, y, rect, need_scale, bush_y );
83+ BlitScreenIntern (*draw_bitmap, x, y, rect, need_scale, bush_effect );
8984 }
9085}
9186
@@ -94,10 +89,9 @@ void BitmapScreen::BlitScreenTiled(Rect const& src_rect, Rect const& dst_rect, i
9489 return ;
9590
9691 Rect rect = src_rect_effect.GetSubRect (src_rect);
97- int bush_y = 0 ;
9892
9993 bool need_scale = false ;
100- BitmapRef draw_bitmap = Refresh (rect, need_scale, bush_y );
94+ BitmapRef draw_bitmap = Refresh (rect, need_scale);
10195
10296 bitmap_changed = false ;
10397 needs_refresh = false ;
@@ -330,14 +324,12 @@ double BitmapScreen::GetWaverEffectPhase() const {
330324}
331325
332326void BitmapScreen::BlitScreenIntern (Bitmap const & draw_bitmap, int x, int y,
333- Rect const & src_rect, bool need_scale, int bush_y ) {
327+ Rect const & src_rect, bool need_scale, int opacity_split ) {
334328 if (! &draw_bitmap)
335329 return ;
336330
337331 BitmapRef dst = DisplayUi->GetDisplaySurface ();
338332
339- int opacity_split = bush_y;
340-
341333 double zoom_x = need_scale ? zoom_x_effect : 1.0 ;
342334 double zoom_y = need_scale ? zoom_y_effect : 1.0 ;
343335
@@ -347,7 +339,7 @@ void BitmapScreen::BlitScreenIntern(Bitmap const& draw_bitmap, int x, int y,
347339 waver_effect_depth, waver_effect_phase);
348340}
349341
350- BitmapRef BitmapScreen::Refresh (Rect& rect, bool & need_scale, int & bush_y ) {
342+ BitmapRef BitmapScreen::Refresh (Rect& rect, bool & need_scale) {
351343 need_scale = false ;
352344
353345 rect.Adjust (bitmap->GetWidth (), bitmap->GetHeight ());
@@ -365,6 +357,8 @@ BitmapRef BitmapScreen::Refresh(Rect& rect, bool& need_scale, int& bush_y) {
365357 flipx_effect != current_flip_x ||
366358 flipy_effect != current_flip_y;
367359 bool effects_rect_changed = rect != bitmap_effects_src_rect;
360+ bool zoom_changed = zoom_x_effect != current_zoom_x ||
361+ zoom_y_effect != current_zoom_y;
368362
369363 if (effects_changed || effects_rect_changed || bitmap_changed) {
370364 bitmap_effects_valid = false ;
@@ -429,43 +423,12 @@ BitmapRef BitmapScreen::Refresh(Rect& rect, bool& need_scale, int& bush_y) {
429423 src_bitmap = bitmap_effects;
430424 }
431425
432- if (no_zoom || angle_effect != 0.0 )
433- return src_bitmap;
434-
435- int zoomed_width = (int )(rect.width * zoom_x_effect);
436- int zoomed_height = (int )(rect.height * zoom_y_effect);
437-
438- if (zoomed_width > 640 || zoomed_height > 640 ) {
439- need_scale = true ;
426+ if (no_zoom && !zoom_changed)
440427 return src_bitmap;
441- }
442-
443- bool zoom_changed =
444- zoom_x_effect != current_zoom_x ||
445- zoom_y_effect != current_zoom_y;
446-
447- bool scale_rect_changed = rect != bitmap_scale_src_rect;
448-
449- if (zoom_changed || scale_rect_changed)
450- bitmap_scale_valid = false ;
451-
452- if (bitmap_scale && bitmap_scale_valid) {
453- bush_y = bush_y * bitmap_scale->GetHeight () / rect.height ;
454- rect = bitmap_scale->GetRect ();
455- return bitmap_scale;
456- }
457428
458429 current_zoom_x = zoom_x_effect;
459430 current_zoom_y = zoom_y_effect;
431+ need_scale = true ;
460432
461- bitmap_scale.reset ();
462-
463- bitmap_scale = src_bitmap->Resample (zoomed_width, zoomed_height, rect);
464-
465- bitmap_scale_src_rect = rect;
466- bitmap_scale_valid = true ;
467-
468- bush_y = bush_y * bitmap_scale->GetHeight () / rect.height ;
469- rect = bitmap_scale->GetRect ();
470- return bitmap_scale;
433+ return src_bitmap;
471434}
0 commit comments