diff --git a/src/main/kotlin/gln/framebuffer/block.kt b/src/main/kotlin/gln/framebuffer/block.kt index cf3292f..77bdd16 100644 --- a/src/main/kotlin/gln/framebuffer/block.kt +++ b/src/main/kotlin/gln/framebuffer/block.kt @@ -36,15 +36,15 @@ inline fun withFramebuffer(framebuffer: Int, block: Framebuffer.() -> Unit) { Framebuffer.block() } -// TODO check if leave -inline fun withFramebuffer(block: Framebuffer.() -> Unit) { - Framebuffer.name = 0 - Framebuffer.block() -} +// TODO check if leave, backup current fbo? +//inline fun withDefaultFramebuffer(block: Framebuffer.() -> Unit) { +// Framebuffer.name = 0 +// Framebuffer.block() +//} object Framebuffer { - var name = 0 + var name = defaultFramebuffer set(value) { GL30.glBindFramebuffer(GL30.GL_FRAMEBUFFER, value) field = value @@ -100,5 +100,4 @@ object Framebuffers { Framebuffer.name = names[index] // bind Framebuffer.block() } - } \ No newline at end of file diff --git a/src/main/kotlin/gln/framebuffer/framebuffer.kt b/src/main/kotlin/gln/framebuffer/framebuffer.kt index 6749008..a0a44bb 100644 --- a/src/main/kotlin/gln/framebuffer/framebuffer.kt +++ b/src/main/kotlin/gln/framebuffer/framebuffer.kt @@ -15,6 +15,7 @@ import kotlin.properties.Delegates var framebufferName: IntBuffer by Delegates.notNull() +val defaultFramebuffer = 0 inline fun glFramebufferRenderbuffer(target: Int, attachment: Int, renderbuffertarget: Int, renderbuffer: Enum<*>) = GL30.glFramebufferRenderbuffer(target, attachment, renderbuffertarget, renderbufferName[renderbuffer]) inline fun glFramebufferRenderbuffer(target: Int, attachment: Int, renderbuffertarget: Int, renderbuffer: IntBuffer) = GL30.glFramebufferRenderbuffer(target, attachment, renderbuffertarget, renderbuffer[0]) @@ -25,7 +26,7 @@ inline fun glBindFramebuffer(target: Int, framebuffer: IntBuffer) = GL30.glBindF inline fun glBindFramebuffer(framebuffer: Enum<*>) = GL30.glBindFramebuffer(GL30.GL_FRAMEBUFFER, framebufferName[framebuffer]) inline fun glBindFramebuffer(framebuffer: IntBuffer) = GL30.glBindFramebuffer(GL30.GL_FRAMEBUFFER, framebuffer[0]) inline fun glBindFramebuffer(framebuffer: Int) = GL30.glBindFramebuffer(GL30.GL_FRAMEBUFFER, framebuffer) -inline fun glBindFramebuffer() = GL30.glBindFramebuffer(GL30.GL_FRAMEBUFFER, 0) +inline fun glBindFramebuffer() = GL30.glBindFramebuffer(GL30.GL_FRAMEBUFFER, defaultFramebuffer) //inline fun glFramebufferTexture2D(target: Int, attachment: Int, textarget: Int, texture: Int) = GL30.glFramebufferTexture2D(target, attachment, textarget, texture, 0) TODO renable without target