diff options
Diffstat (limited to 'recordmydesktop')
-rw-r--r-- | recordmydesktop/src/rectinsert.c | 36 |
1 files changed, 36 insertions, 0 deletions
diff --git a/recordmydesktop/src/rectinsert.c b/recordmydesktop/src/rectinsert.c index fea6a1d..b46ec1f 100644 --- a/recordmydesktop/src/rectinsert.c +++ b/recordmydesktop/src/rectinsert.c @@ -511,3 +511,39 @@ void ClearList(RectArea **root){ } } +void BlocksFromList(RectArea **root, + 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/Y_UNIT_WIDTH; + column_end=(temp->geom.x+temp->geom.width)/Y_UNIT_WIDTH; + row_start=temp->geom.y/Y_UNIT_WIDTH; + row_end=(temp->geom.y+temp->geom.height)/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; + } + +} + + |