---
name: "buildrdswindow"
section: "3"
platform: "linux"
package: "alliance"
version: "5.1.1-3"
release: "Debian 10 (Buster)"
platforms: ["linux"]
url: "https://new.carta.tech/buildrdswindow"
---

# buildrdswindow(3)

builds windowing of a figure

## NAME

buildrdswindow - builds windowing of a figure

## SYNOPSYS

```
#include "rwinnn.h"
 rdswindow ∗buildrdswindow( Figure )
    rdsfig_list ∗Figure;
```

## PARAMETER

- *Figure*

  The figure where has to be built the windowing.

## DESCRIPTION

The *buildrdswindow* function permits to build windowing on the figure named ´Figure´.

## RETURN VALUE

The pointer to the windowing structure "rdswindow".

## ERRORS

**"Rds202: rdsalloc error, can't continue !"**

it's impossible to allocate the memory size desired

## EXAMPLE

```
        #include "mphnnn.h"
        #include "mutnnn.h"
        #include "rdsnnn.h"
        #include "rfmnnn.h"
        #include "rwinnn.h"
        #include "rtlnnn.h"
        main()
          {
            phfig_list     ∗MbkFigure;
            rdsfig_list    ∗RdsFigure;
            rdswindow      ∗Window;
            long            X,Y,Offset;
            rdswin_list    ∗Win;
            rdswinrec_list ∗WinRec;
            rdsrec_list    ∗ScanRec;
            char            Layer;
            char            Index;
            mbkenv();
            rdsenv();
            loadrdsparam();
            MbkFigure = getphfig("na2_y",'A');
            RdsFigure = figmbkrds(MbkFigure,0,0);
            Window    =  buildrdswindow ( RdsFigure );
            /∗ gets each window of the table ∗/
            for ( X = 0 ; X < Window->DX ; X ++ )
             for ( Y = 0 ; Y < Window->DY ; Y ++ )
              {
                printf("WINDOW (%ld,%ld)\n",X,Y);
                Offset = Y ∗ Window->DX + X;
                Win = Window->WINTAB + Offset;
                /∗ gets all rectangles of a window ∗/
                for ( Layer = 0 ; Layer < RWI_MAX_LAYER ; Layer ++ )
                 {
                   printf("LAYER = %s\n",RDS_LAYER_NAME[Layer]);
                   for ( WinRec  = Win->LAYERTAB[ Layer ];
                         WinRec != (rdswinrec_list ∗)NULL;
                         WinRec  = WinRec->NEXT )
                    {
                      for (
                            Index = 0;
                            Index < RWI_MAX_REC;
                            Index++
                          )
                       {
                        ScanRec = WinRec->RECTAB[ Index ];
                        /∗ prints dimensions of each rectangle ∗/
                        if ( ScanRec != NULL )
                        printf("X=%ld, Y=%ld, DX=%ld, DY=%ld\n",
                               ScanRec->X,ScanRec->Y,ScanRec->DX,
                               ScanRec->DY);
                        else break;
                       }
                    }
                 }
              }
            . . .
          }
```

## SEE ALSO

**librwi,** **allocrdswindow,** **destroyrdswindow,** **viewrdswindow**
