Isolate graphics for each overlay (#267)
Clone graphics before rendering overlay, then use the cloned graphics for the overlay and dispose it afterwards to prevent any unwanted side effects from overlay. Signed-off-by: Tomas Slusny <slusnucky@gmail.com>
This commit is contained in:
@@ -28,11 +28,9 @@ import com.google.common.base.MoreObjects;
|
|||||||
import com.google.common.eventbus.Subscribe;
|
import com.google.common.eventbus.Subscribe;
|
||||||
import java.awt.Color;
|
import java.awt.Color;
|
||||||
import java.awt.Dimension;
|
import java.awt.Dimension;
|
||||||
import java.awt.Font;
|
|
||||||
import java.awt.Graphics2D;
|
import java.awt.Graphics2D;
|
||||||
import java.awt.Point;
|
import java.awt.Point;
|
||||||
import java.awt.Rectangle;
|
import java.awt.Rectangle;
|
||||||
import java.awt.geom.AffineTransform;
|
|
||||||
import java.awt.image.BufferedImage;
|
import java.awt.image.BufferedImage;
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
@@ -261,11 +259,9 @@ public class OverlayRenderer
|
|||||||
|
|
||||||
private Dimension safeRender(RenderableEntity entity, Graphics2D graphics, Point point)
|
private Dimension safeRender(RenderableEntity entity, Graphics2D graphics, Point point)
|
||||||
{
|
{
|
||||||
final Font font = graphics.getFont();
|
final Graphics2D subGraphics = (Graphics2D) graphics.create();
|
||||||
final AffineTransform transform = graphics.getTransform();
|
final Dimension dimension = entity.render(subGraphics, point);
|
||||||
final Dimension dimension = entity.render(graphics, point);
|
subGraphics.dispose();
|
||||||
graphics.setFont(font);
|
|
||||||
graphics.setTransform(transform);
|
|
||||||
return dimension;
|
return dimension;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user