diff options
author | colin <colin@b3059339-0415-0410-9bf9-f77b7e298cf2> | 2002-11-21 18:31:21 +0000 |
---|---|---|
committer | colin <colin@b3059339-0415-0410-9bf9-f77b7e298cf2> | 2002-11-21 18:31:21 +0000 |
commit | 5e4ff93c817c287ddee4ae266d0e14ddca3d0dc4 (patch) | |
tree | db06d1beaea0d13e3c55c65f04046481c8ae3610 /libmenu | |
parent | f6af4559cc309c3a39a120072b86b83550bbdc1f (diff) | |
download | mpv-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
Diffstat (limited to 'libmenu')
-rw-r--r-- | libmenu/vf_menu.c | 16 |
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); } |