[vlc-devel] commit: opengl: Link the gl texture to the picture. (Pierre d'Herbemont )
git version control
git at videolan.org
Tue Dec 8 19:32:06 CET 2009
vlc | branch: master | Pierre d'Herbemont <pdherbemont at free.fr> | Tue Dec 8 19:25:03 2009 +0100| [bfcea9facbe30916441821d5e4ad76828832d580] | committer: Pierre d'Herbemont
opengl: Link the gl texture to the picture.
This fixes the opengl "vout display" on Mac OS X.
> http://git.videolan.org/gitweb.cgi/vlc.git/?a=commit;h=bfcea9facbe30916441821d5e4ad76828832d580
---
modules/video_output/opengl.h | 18 +++++++++++++-----
1 files changed, 13 insertions(+), 5 deletions(-)
diff --git a/modules/video_output/opengl.h b/modules/video_output/opengl.h
index 1ad8cad..c54258f 100644
--- a/modules/video_output/opengl.h
+++ b/modules/video_output/opengl.h
@@ -263,8 +263,15 @@ static int vout_display_opengl_ResetTextures(vout_display_opengl_t *vgl)
/* XXX See comment vout_display_opengl_Prepare */
struct picture_sys_t {
vout_display_opengl_t *vgl;
- GLuint texture;
+ GLuint *texture;
};
+
+/* Small helper */
+static inline GLuint get_texture(picture_t *picture)
+{
+ return *picture->p_sys->texture;
+}
+
static int PictureLock(picture_t *picture)
{
if (!picture->p_sys)
@@ -273,7 +280,7 @@ static int PictureLock(picture_t *picture)
vout_display_opengl_t *vgl = picture->p_sys->vgl;
if (!vout_opengl_Lock(vgl->gl)) {
- glBindTexture(VLCGL_TARGET, picture->p_sys->texture);
+ glBindTexture(VLCGL_TARGET, get_texture(picture));
glTexSubImage2D(VLCGL_TARGET, 0, 0, 0,
vgl->fmt.i_width, vgl->fmt.i_height,
VLCGL_FORMAT, VLCGL_TYPE, picture->p[0].p_pixels);
@@ -304,9 +311,10 @@ static picture_pool_t *vout_display_opengl_GetPool(vout_display_opengl_t *vgl)
memset(&rsc, 0, sizeof(rsc));
#ifdef __APPLE__
rsc.p_sys = malloc(sizeof(*rsc.p_sys));
- if (rsc.p_sys) {
+ if (rsc.p_sys)
+ {
rsc.p_sys->vgl = vgl;
- rsc.p_sys->texture = vgl->texture[i];
+ rsc.p_sys->texture = &vgl->texture[i];
}
#endif
rsc.p[0].p_pixels = vgl->buffer[i];
@@ -372,7 +380,7 @@ static int vout_display_opengl_Prepare(vout_display_opengl_t *vgl,
#ifdef __APPLE__
/* Bind to the texture for drawing */
- glBindTexture(VLCGL_TARGET, picture->p_sys->texture);
+ glBindTexture(VLCGL_TARGET, get_texture(picture));
#else
/* Update the texture */
glTexSubImage2D(GL_TEXTURE_2D, 0, 0, 0,
More information about the vlc-devel
mailing list