From: Rémi Denis-Courmont Date: Fri, 17 Apr 2009 19:22:18 +0000 (+0300) Subject: XCB: do not render, we always use the native server format X-Git-Tag: 1.0.0-rc1~335 X-Git-Url: http://git.videolan.org/gitweb.cgi/vlc.git/?p=vlc.git;p=vlc.git;a=commitdiff_plain;h=a90da50b2061b2534b308b5eec497d02f4a48beb;ds=sidebyside XCB: do not render, we always use the native server format --- diff --git a/modules/video_output/xcb/x11.c b/modules/video_output/xcb/x11.c index 7adcfb8497..80eef541ea 100644 --- a/modules/video_output/xcb/x11.c +++ b/modules/video_output/xcb/x11.c @@ -90,7 +90,6 @@ struct vout_sys_t static int Init (vout_thread_t *); static void Deinit (vout_thread_t *); -static void Render (vout_thread_t *, picture_t *); static void Display (vout_thread_t *, picture_t *); static int Manage (vout_thread_t *); @@ -300,7 +299,6 @@ static int Open (vlc_object_t *obj) vout->pf_init = Init; vout->pf_end = Deinit; - vout->pf_render = Render; vout->pf_display = Display; vout->pf_manage = Manage; return VLC_SUCCESS; @@ -331,7 +329,6 @@ struct picture_sys_t { xcb_connection_t *conn; /* Shared connection to X server */ xcb_image_t *image; /* Picture buffer */ - xcb_image_t *native; /* Rendered picture buffer (in X server format) */ xcb_shm_seg_t segment; /* Shared memory segment X ID */ }; @@ -407,12 +404,9 @@ static int PictureInit (vout_thread_t *vout, picture_t *pic) xcb_shm_detach (p_sys->conn, priv->segment); goto error; } - if (shm != SHM_ERR && xcb_image_native (p_sys->conn, img, 0) == NULL) - msg_Warn (vout, "incompatible X server image format"); priv->conn = p_sys->conn; priv->image = img; - priv->native = NULL; pic->p_sys = priv; pic->p->p_pixels = img->data; pic->i_status = DESTROYED_PICTURE; @@ -439,8 +433,6 @@ static void PictureDeinit (picture_t *pic) xcb_shm_detach (p_sys->conn, p_sys->segment); shmdt (p_sys->image->data); } - if ((p_sys->native != NULL) && (p_sys->native != p_sys->image)) - xcb_image_destroy (p_sys->native); xcb_image_destroy (p_sys->image); free (p_sys); } @@ -570,20 +562,6 @@ static void Deinit (vout_thread_t *vout) xcb_destroy_window (p_sys->conn, p_sys->window); } -/** - * Prepares an image ahead of display. - */ -static void Render (vout_thread_t *vout, picture_t *pic) -{ - vout_sys_t *p_sys = vout->p_sys; - picture_sys_t *priv = pic->p_sys; - - if ((priv->native != NULL) && (priv->native != priv->image)) - xcb_image_destroy (priv->native); - priv->native = xcb_image_native (p_sys->conn, priv->image, 1); -} - - /** * Sends an image to the X server. */ @@ -591,9 +569,9 @@ static void Display (vout_thread_t *vout, picture_t *pic) { vout_sys_t *p_sys = vout->p_sys; picture_sys_t *priv = pic->p_sys; - xcb_image_t *img = priv->image, *native = priv->native; + xcb_image_t *img = priv->image; - if ((native == img) && (img->base == NULL)) + if (img->base == NULL) { xcb_shm_segment_info_t info = { .shmseg = priv->segment, @@ -605,8 +583,7 @@ static void Display (vout_thread_t *vout, picture_t *pic) 0, 0, 0, 0, img->width, img->height, 0); } else - if (native != NULL) - xcb_image_put (p_sys->conn, p_sys->window, p_sys->gc, native, 0, 0, 0); + xcb_image_put (p_sys->conn, p_sys->window, p_sys->gc, img, 0, 0, 0); xcb_flush (p_sys->conn); }