summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorcolin <colin@b3059339-0415-0410-9bf9-f77b7e298cf2>2002-11-21 18:31:21 +0000
committercolin <colin@b3059339-0415-0410-9bf9-f77b7e298cf2>2002-11-21 18:31:21 +0000
commit5e4ff93c817c287ddee4ae266d0e14ddca3d0dc4 (patch)
treedb06d1beaea0d13e3c55c65f04046481c8ae3610
parentf6af4559cc309c3a39a120072b86b83550bbdc1f (diff)
downloadmpv-5e4ff93c817c287ddee4ae266d0e14ddca3d0dc4.tar.bz2
mpv-5e4ff93c817c287ddee4ae266d0e14ddca3d0dc4.tar.xz
don't fully-copy the planes if the menu doesn't show (faster)
git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@8245 b3059339-0415-0410-9bf9-f77b7e298cf2
-rw-r--r--libmenu/vf_menu.c16
1 files changed, 16 insertions, 0 deletions
diff --git a/libmenu/vf_menu.c b/libmenu/vf_menu.c
index ecfc0f19c8..b1fd822f36 100644
--- a/libmenu/vf_menu.c
+++ b/libmenu/vf_menu.c
@@ -165,6 +165,7 @@ inline static void copy_mpi(mp_image_t *dmpi, mp_image_t *mpi) {
static int put_image(struct vf_instance_s* vf, mp_image_t *mpi){
mp_image_t *dmpi = NULL;
+ if(vf->priv->current->show) {
// Close all menu who requested it
while(vf->priv->current->cl && vf->priv->current != vf->priv->root) {
menu_t* m = vf->priv->current;
@@ -207,6 +208,21 @@ static int put_image(struct vf_instance_s* vf, mp_image_t *mpi){
}
menu_draw(vf->priv->current,dmpi);
+ } else {
+ if(mp_input_key_cb)
+ mp_input_key_cb = NULL;
+ dmpi = vf_get_image(vf->next,mpi->imgfmt,
+ MP_IMGTYPE_EXPORT, MP_IMGFLAG_ACCEPT_STRIDE,
+ mpi->w,mpi->h);
+
+ dmpi->stride[0] = mpi->stride[0];
+ dmpi->stride[1] = mpi->stride[1];
+ dmpi->stride[2] = mpi->stride[2];
+ dmpi->planes[0] = mpi->planes[0];
+ dmpi->planes[1] = mpi->planes[1];
+ dmpi->planes[2] = mpi->planes[2];
+ dmpi->priv = mpi->priv;
+ }
return vf_next_put_image(vf,dmpi);
}