Add exception catch for screen viewport dispose method

This commit is contained in:
UnicornFreedom 2024-10-10 17:37:49 +02:00
parent 6decd3e51a
commit 74b498bdfb

View File

@ -4,12 +4,12 @@ import ocelot.desktop.color.{Color, RGBAColorNorm}
import ocelot.desktop.geometry.Transform2D
import ocelot.desktop.graphics.mesh.{Mesh2D, MeshInstance2D, MeshVertex2D}
import ocelot.desktop.graphics.render.InstanceRenderer
import ocelot.desktop.util.{Font, Resource, Spritesheet}
import ocelot.desktop.util.{Font, Logging, Resource, Spritesheet}
import org.lwjgl.opengl.{ARBFramebufferObject, GL11, GL21, GL30}
import java.nio.ByteBuffer
class ScreenViewport(graphics: Graphics, private var _width: Int, private var _height: Int) extends Resource {
class ScreenViewport(graphics: Graphics, private var _width: Int, private var _height: Int) extends Resource with Logging {
private[graphics] var texture = new Texture(_width, _height, GL21.GL_SRGB8, GL11.GL_UNSIGNED_BYTE, 0)
private val framebuffer = ARBFramebufferObject.glGenFramebuffers()
GL30.glBindFramebuffer(GL30.GL_FRAMEBUFFER, framebuffer)
@ -32,7 +32,11 @@ class ScreenViewport(graphics: Graphics, private var _width: Int, private var _h
override def freeResource(): Unit = {
super.freeResource()
try {
GL30.glDeleteFramebuffers(framebuffer)
} catch {
case e: Exception => logger.error("Error disposing screen viewport frame buffer!", e)
}
texture.freeResource()
renderer.freeResource()