aboutsummaryrefslogtreecommitdiff
path: root/src/graphics
diff options
context:
space:
mode:
authordec05eba <dec05eba@protonmail.com>2024-08-02 06:01:36 +0200
committerdec05eba <dec05eba@protonmail.com>2024-08-02 06:01:36 +0200
commitf2da59054cedd1c07779e72537da4d7b14616b48 (patch)
treeb6c8606c1e7494d2fc17439552db30f55b97fd26 /src/graphics
parent470dac0e891c1ec59dfe52e77861cf068837976d (diff)
Ensure correct blending function for transparent window
Diffstat (limited to 'src/graphics')
-rw-r--r--src/graphics/sprite.c5
-rw-r--r--src/graphics/text.c5
2 files changed, 10 insertions, 0 deletions
diff --git a/src/graphics/sprite.c b/src/graphics/sprite.c
index 3110cf9..613ec4c 100644
--- a/src/graphics/sprite.c
+++ b/src/graphics/sprite.c
@@ -1,5 +1,6 @@
#include "../../include/mgl/graphics/sprite.h"
#include "../../include/mgl/graphics/texture.h"
+#include "../../include/mgl/window/window.h"
#include "../../include/mgl/mgl.h"
void mgl_sprite_init(mgl_sprite *self, mgl_texture *texture) {
@@ -60,6 +61,8 @@ void mgl_sprite_draw(mgl_context *context, mgl_sprite *sprite) {
if(!sprite->texture)
return;
+ mgl_window_set_texture_blend_func(context->current_window);
+
float texture_right = 1.0f;
float texture_bottom = 1.0f;
if(sprite->texture->pixel_coordinates) {
@@ -86,4 +89,6 @@ void mgl_sprite_draw(mgl_context *context, mgl_sprite *sprite) {
context->gl.glEnd();
mgl_texture_use(NULL);
context->gl.glLoadIdentity(); /* TODO: Remove, but what about glRotatef above */
+
+ mgl_window_set_render_blend_func(context->current_window);
}
diff --git a/src/graphics/text.c b/src/graphics/text.c
index 0942b62..76ac128 100644
--- a/src/graphics/text.c
+++ b/src/graphics/text.c
@@ -1,6 +1,7 @@
#include "../../include/mgl/graphics/text.h"
#include "../../include/mgl/graphics/font.h"
#include "../../include/mgl/system/utf8.h"
+#include "../../include/mgl/window/window.h"
#include "../../include/mgl/mgl.h"
#include <stdio.h>
@@ -225,10 +226,14 @@ void mgl_text_draw(mgl_context *context, mgl_text *text) {
text_draw_userdata.context = context;
text_draw_userdata.prev_codepoint = 0;
+ mgl_window_set_texture_blend_func(context->current_window);
+
context->gl.glColor4ub(text->color.r, text->color.g, text->color.b, text->color.a);
mgl_texture_use(&text->font->texture);
context->gl.glBegin(GL_QUADS);
mgl_text_for_each_codepoint(text, text_draw_callback, &text_draw_userdata);
context->gl.glEnd();
mgl_texture_use(NULL);
+
+ mgl_window_set_render_blend_func(context->current_window);
}