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; +    } + +} + + | 
