summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPetri Hintukainen <phintuka@users.sourceforge.net>2012-11-13 15:08:37 +0200
committerPetri Hintukainen <phintuka@users.sourceforge.net>2012-11-13 15:08:37 +0200
commitb89f849c7bdb7752036a7448ed4cf17e99af1ebc (patch)
treec66759a485edc6a789639419be7ba0a50989fcdb
parente6eb6ad2bd077c5075b497f1722b3288d61d0d39 (diff)
downloadxine-lib-b89f849c7bdb7752036a7448ed4cf17e99af1ebc.tar.gz
xine-lib-b89f849c7bdb7752036a7448ed4cf17e99af1ebc.tar.bz2
video_out_opengl2: fix ARGB overlay colors
-rw-r--r--src/video_out/video_out_opengl2.c5
1 files changed, 4 insertions, 1 deletions
diff --git a/src/video_out/video_out_opengl2.c b/src/video_out/video_out_opengl2.c
index 4d9043d57..e93d65a15 100644
--- a/src/video_out/video_out_opengl2.c
+++ b/src/video_out/video_out_opengl2.c
@@ -82,6 +82,7 @@ typedef struct {
int unscaled;
int vid_scale;
+ int type; /* GL_RGBA or GL_BGRA */
} opengl2_overlay_t;
@@ -560,6 +561,7 @@ static int opengl2_process_ovl( opengl2_driver_t *this_gen, vo_overlay_t *overla
ovl->vid_scale = 1;
else
ovl->vid_scale = 0;
+ ovl->type = GL_RGBA;
int num_rle = overlay->num_rle;
rle_elem_t *rle = overlay->rle;
@@ -628,6 +630,7 @@ static int opengl2_process_rgba_ovl( opengl2_driver_t *this_gen, vo_overlay_t *o
ovl->vid_scale = 1;
else
ovl->vid_scale = 0;
+ ovl->type = GL_BGRA;
pthread_mutex_lock(&overlay->argb_layer->mutex);
@@ -880,7 +883,7 @@ static void opengl2_update_overlays( opengl2_driver_t *that )
o->tex_h = o->ovl_h;
}
glBindTexture( GL_TEXTURE_RECTANGLE_ARB, o->tex );
- glTexImage2D( GL_TEXTURE_RECTANGLE_ARB, 0, GL_RGBA, o->tex_w, o->tex_h, 0, GL_RGBA, GL_UNSIGNED_BYTE, o->ovl_rgba );
+ glTexImage2D( GL_TEXTURE_RECTANGLE_ARB, 0, GL_RGBA, o->tex_w, o->tex_h, 0, o->type, GL_UNSIGNED_BYTE, o->ovl_rgba );
glTexParameterf( GL_TEXTURE_RECTANGLE_ARB, GL_TEXTURE_WRAP_S, GL_CLAMP_TO_EDGE );
glTexParameterf( GL_TEXTURE_RECTANGLE_ARB, GL_TEXTURE_WRAP_T, GL_CLAMP_TO_EDGE );
glTexParameteri( GL_TEXTURE_RECTANGLE_ARB, GL_TEXTURE_MIN_FILTER, GL_LINEAR );