runelite-client: catch exceptions from overlay renderer
This commit is contained in:
@@ -22,7 +22,6 @@
|
|||||||
* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
|
* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
|
||||||
* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
package net.runelite.inject.callbacks;
|
package net.runelite.inject.callbacks;
|
||||||
|
|
||||||
import java.awt.Canvas;
|
import java.awt.Canvas;
|
||||||
@@ -30,14 +29,18 @@ import java.awt.Graphics;
|
|||||||
import java.awt.image.BufferedImage;
|
import java.awt.image.BufferedImage;
|
||||||
import net.runelite.client.RuneLite;
|
import net.runelite.client.RuneLite;
|
||||||
import net.runelite.client.ui.overlay.OverlayRenderer;
|
import net.runelite.client.ui.overlay.OverlayRenderer;
|
||||||
|
import org.slf4j.Logger;
|
||||||
|
import org.slf4j.LoggerFactory;
|
||||||
|
|
||||||
public class RSCanvasCallback
|
public class RSCanvasCallback
|
||||||
{
|
{
|
||||||
|
private static final Logger logger = LoggerFactory.getLogger(RSCanvasCallback.class);
|
||||||
|
|
||||||
private static final int WIDTH = 765, HEIGHT = 503;
|
private static final int WIDTH = 765, HEIGHT = 503;
|
||||||
|
|
||||||
private BufferedImage clientBuffer = new BufferedImage(WIDTH, HEIGHT, BufferedImage.TYPE_INT_RGB);
|
private BufferedImage clientBuffer = new BufferedImage(WIDTH, HEIGHT, BufferedImage.TYPE_INT_RGB);
|
||||||
private BufferedImage gameBuffer = new BufferedImage(WIDTH, HEIGHT, BufferedImage.TYPE_INT_RGB);
|
private BufferedImage gameBuffer = new BufferedImage(WIDTH, HEIGHT, BufferedImage.TYPE_INT_RGB);
|
||||||
|
|
||||||
public Graphics getGraphics(Canvas canvas, Graphics superGraphics)
|
public Graphics getGraphics(Canvas canvas, Graphics superGraphics)
|
||||||
{
|
{
|
||||||
if (canvas.getHeight() != clientBuffer.getHeight() || canvas.getWidth() != clientBuffer.getWidth())
|
if (canvas.getHeight() != clientBuffer.getHeight() || canvas.getWidth() != clientBuffer.getWidth())
|
||||||
@@ -56,7 +59,14 @@ public class RSCanvasCallback
|
|||||||
OverlayRenderer renderer = runelite.getRenderer();
|
OverlayRenderer renderer = runelite.getRenderer();
|
||||||
if (renderer != null)
|
if (renderer != null)
|
||||||
{
|
{
|
||||||
renderer.render(clientBuffer);
|
try
|
||||||
|
{
|
||||||
|
renderer.render(clientBuffer);
|
||||||
|
}
|
||||||
|
catch (Exception ex)
|
||||||
|
{
|
||||||
|
logger.warn("Error during overlay rendering", ex);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user