diff options
Diffstat (limited to 'src/renderer.cpp')
-rw-r--r-- | src/renderer.cpp | 5 |
1 files changed, 4 insertions, 1 deletions
diff --git a/src/renderer.cpp b/src/renderer.cpp index f01d72a..64c9fd0 100644 --- a/src/renderer.cpp +++ b/src/renderer.cpp | |||
@@ -613,7 +613,7 @@ void Texture::fill(Rectangle dstrect, int r, int g, int b) | |||
613 | glDeleteBuffers(1, &vertexbuffer); | 613 | glDeleteBuffers(1, &vertexbuffer); |
614 | } | 614 | } |
615 | 615 | ||
616 | void Texture::blit(const Texture& srctex, Rectangle srcrect, Rectangle dstrect) | 616 | void Texture::blit(const Texture& srctex, Rectangle srcrect, Rectangle dstrect, double alpha) |
617 | { | 617 | { |
618 | if (!rendererInitialized) | 618 | if (!rendererInitialized) |
619 | { | 619 | { |
@@ -621,6 +621,8 @@ void Texture::blit(const Texture& srctex, Rectangle srcrect, Rectangle dstrect) | |||
621 | exit(-1); | 621 | exit(-1); |
622 | } | 622 | } |
623 | 623 | ||
624 | alpha = glm::clamp(alpha, 0.0, 1.0); | ||
625 | |||
624 | // Target the framebuffer | 626 | // Target the framebuffer |
625 | glBindFramebuffer(GL_FRAMEBUFFER, generic_framebuffer); | 627 | glBindFramebuffer(GL_FRAMEBUFFER, generic_framebuffer); |
626 | glFramebufferTexture(GL_FRAMEBUFFER, GL_COLOR_ATTACHMENT0, texID, 0); | 628 | glFramebufferTexture(GL_FRAMEBUFFER, GL_COLOR_ATTACHMENT0, texID, 0); |
@@ -670,6 +672,7 @@ void Texture::blit(const Texture& srctex, Rectangle srcrect, Rectangle dstrect) | |||
670 | glActiveTexture(GL_TEXTURE0); | 672 | glActiveTexture(GL_TEXTURE0); |
671 | glBindTexture(GL_TEXTURE_2D, srctex.texID); | 673 | glBindTexture(GL_TEXTURE_2D, srctex.texID); |
672 | glUniform1i(glGetUniformLocation(blitShader, "srctex"), 0); | 674 | glUniform1i(glGetUniformLocation(blitShader, "srctex"), 0); |
675 | glUniform1f(glGetUniformLocation(blitShader, "alpha"), alpha); | ||
673 | 676 | ||
674 | // Blit! | 677 | // Blit! |
675 | glDrawArrays(GL_TRIANGLE_STRIP, 0, 4); | 678 | glDrawArrays(GL_TRIANGLE_STRIP, 0, 4); |