/****************************************************************************** * recordMyDesktop * ******************************************************************************* * * * Copyright (C) 2006,2007,2008 John Varouhakis * * * * * * This program is free software; you can redistribute it and/or modify * * it under the terms of the GNU General Public License as published by * * the Free Software Foundation; either version 2 of the License, or * * (at your option) any later version. * * * * This program is distributed in the hope that it will be useful, * * but WITHOUT ANY WARRANTY; without even the implied warranty of * * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * * GNU General Public License for more details. * * * * You should have received a copy of the GNU General Public License * * along with this program; if not, write to the Free Software * * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA * * * * * * * * For further information contact me at johnvarouhakis@gmail.com * ******************************************************************************/ #include "config.h" #include "rmd_update_image.h" #include "rmd_getzpixmap.h" #include "rmd_yuv_utils.h" #include "rmd_types.h" #include #include #include void rmdUpdateImage( Display * dpy, yuv_buffer *yuv, DisplaySpecs *specs, RectArea **root, BRWindow *brwin, EncData *enc, char *datatemp, int noshmem, XShmSegmentInfo *shminfo, int shm_opcode, int no_quick_subsample){ RectArea *temp; unsigned char *dtap=(unsigned char*)datatemp; temp=*root; if (temp!=NULL) { do { if (noshmem) { rmdGetZPixmap( dpy, specs->root, datatemp, temp->rect.x, temp->rect.y, temp->rect.width, temp->rect.height); } else { rmdGetZPixmapSHM( dpy, specs->root, shminfo, shm_opcode, datatemp,temp->rect.x, temp->rect.y, temp->rect.width, temp->rect.height); } UPDATE_YUV_BUFFER( yuv,dtap,NULL, temp->rect.x-brwin->rrect.x+enc->x_offset, temp->rect.y-brwin->rrect.y+enc->y_offset, temp->rect.width, temp->rect.height, no_quick_subsample, specs->depth ); temp=temp->next; } while (temp!=NULL); } }