changeset 8244:64352fb332b6

don't fully-copy the planes if the menu doesn't show (faster)
author colin
date Thu, 21 Nov 2002 18:31:21 +0000
parents d78b7cbcdf9c
children 3a805f951be7
files libmenu/vf_menu.c
diffstat 1 files changed, 16 insertions(+), 0 deletions(-) [+]
line wrap: on
line diff
--- a/libmenu/vf_menu.c	Wed Nov 20 21:42:04 2002 +0000
+++ b/libmenu/vf_menu.c	Thu Nov 21 18:31:21 2002 +0000
@@ -165,6 +165,7 @@
 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 @@
   }
   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);
 }