diff options
author | enselic <enselic@f606c939-3180-4ac9-a4b8-4b8779d57d0a> | 2008-09-12 23:12:41 +0000 |
---|---|---|
committer | enselic <enselic@f606c939-3180-4ac9-a4b8-4b8779d57d0a> | 2008-09-12 23:12:41 +0000 |
commit | ac3ce74511a9953ae22fd6a1f77f8e969bb99922 (patch) | |
tree | 86036a5b98bc63f85c2cdbe79cf2dcf3eaca9a31 /recordmydesktop/src | |
parent | 4c387338ef2fced0aa667b199ce9e45ce74907bf (diff) |
include/rmdfunc.h
src/rectinsert.c: Remove BlocksFromList() to get rid of
dependencies. We now only depend on rmdtypes.h in rectinsert.c.
src/get_frame.c: BlocksFromList() makes more sense to keep as a static
function here.
git-svn-id: https://recordmydesktop.svn.sourceforge.net/svnroot/recordmydesktop/trunk@517 f606c939-3180-4ac9-a4b8-4b8779d57d0a
Diffstat (limited to 'recordmydesktop/src')
-rw-r--r-- | recordmydesktop/src/get_frame.c | 54 | ||||
-rw-r--r-- | recordmydesktop/src/rectinsert.c | 41 |
2 files changed, 54 insertions, 41 deletions
diff --git a/recordmydesktop/src/get_frame.c b/recordmydesktop/src/get_frame.c index 8de95aa..ab8ff9a 100644 --- a/recordmydesktop/src/get_frame.c +++ b/recordmydesktop/src/get_frame.c @@ -250,7 +250,59 @@ void MoveCaptureArea( BRWindow *brwin, height-brwin->rgeom.height:t_y); } - +/** +* Extract cache blocks from damage list +* +* \param root Root entry of the list with damaged areas +* +* \param x_offset left x of the recording area +* +* \param x_offset upper y of the recording area +* +* \param blocknum_x Width of image in blocks +* +* \param blocknum_y Height of image in blocks +*/ +void BlocksFromList (RectArea **root, + unsigned int x_offset, + unsigned int y_offset, + unsigned int blocknum_x, + unsigned int blocknum_y) { + + RectArea *temp; + unsigned int i, + j, + blockno, + row_start, + row_end, + column_start, + column_end; + + temp = *root; + + for (i = 0; i < blocknum_x * blocknum_y; i++) { + yblocks[i] = ublocks[i] = vblocks[i] = 0; + } + + while (temp != NULL) { + + column_start = (temp->geom.x - x_offset) / Y_UNIT_WIDTH; + column_end = (temp->geom.x + (temp->geom.width - 1) - x_offset) / Y_UNIT_WIDTH; + row_start = (temp->geom.y - y_offset) / Y_UNIT_WIDTH; + row_end = (temp->geom.y + (temp->geom.height - 1) - y_offset) / Y_UNIT_WIDTH; + + for (i = row_start; i < row_end + 1; i++) { + for (j = column_start; j < column_end + 1; j++) { + blockno = i * blocknum_x + j; + yblocks[blockno] = 1; + ublocks[blockno] = 1; + vblocks[blockno] = 1; + } + } + + temp = temp->next; + } +} void *GetFrame(ProgData *pdata){ int i=0, diff --git a/recordmydesktop/src/rectinsert.c b/recordmydesktop/src/rectinsert.c index 61e931e..5e31a32 100644 --- a/recordmydesktop/src/rectinsert.c +++ b/recordmydesktop/src/rectinsert.c @@ -25,7 +25,7 @@ ******************************************************************************/ -#include "recordmydesktop.h" +#include "rmdtypes.h" #include "rectinsert.h" @@ -532,42 +532,3 @@ void ClearList(RectArea **root){ *root=NULL; } } - -void BlocksFromList(RectArea **root, - unsigned int x_offset, - unsigned int y_offset, - unsigned int blocknum_x, - unsigned int blocknum_y){ - - RectArea *temp; - unsigned int i, - j, - blockno, - row_start, - row_end, - column_start, - column_end; - temp=*root; - for(i=0;i<blocknum_x*blocknum_y;i++){ - yblocks[i]=ublocks[i]=vblocks[i]=0; - } - - while(temp!=NULL){ - column_start=(temp->geom.x-x_offset)/Y_UNIT_WIDTH; - column_end=(temp->geom.x+(temp->geom.width-1)-x_offset)/Y_UNIT_WIDTH; - row_start=(temp->geom.y-y_offset)/Y_UNIT_WIDTH; - row_end=(temp->geom.y+(temp->geom.height-1)-y_offset)/Y_UNIT_WIDTH; - for(i=row_start;i<row_end+1;i++){ - for(j=column_start;j<column_end+1;j++){ - blockno=i*blocknum_x+j; - yblocks[blockno]=1; - ublocks[blockno]=1; - vblocks[blockno]=1; - } - } - temp=temp->next; - } - -} - - |