NAME
      rle_getrow - Read a scanline of pixels from
      an RLE file.

 SYNOPSIS
      #include <rle.h>

      rle_getrow( the_hdr, rows );
      rle_hdr * the_hdr;
      rle_pixel ** rows;

 DESCRIPTION
      Rle_getrow reads information for a single
      scanline from the input file each time it is
      called. The_hdr should point to the structure
      initialized by rle_get_setup(3).  The array
      rows should contain pointers to arrays of
      characters, into which the scanline data will
      be written.  There should be as many elements
      in rows as there are primary colors in the
      input file (typically 1 or 3), and the
      scanline arrays must be indexable up to the
      maximum X coordinate, as specified by
      the_hdr->xmax.  rle_getrow returns the y
      value of the scanline just read.  This will
      always be 1 greater than the y value from the
      scanline previously read, and starts at
      the_hdr->ymin.  Only those channels enabled
      by the_hdr->bits will be returned.

 NOTES
      If an alpha channel is present in the input
      and enabled (by RLE_SET_BIT, see rle_hdr(3)),
      then rows should include a -1 entry.  (I.e.,
      rows[-1] should point to a valid scanline
      array.)  The easiest way to ensure this is to
      use rle_row_alloc(3) to allocate rows.

      Rle_getrow will continue to return scanlines
      even after the end of the input file has been
      reached, incrementing the return scanline
      number each time it is called.  The calling
      program should use some other termination
      criterion (such as the scanline number
      reaching the_hdr->ymax, or explicitly testing
      testing for end of file on the input with
      feof(infile).  The second test may fail if
      rle_getrow has encountered a logical EOF in
      the file.  The first will always work
      eventually.)
9
 EXAMPLE
      The code below reads the first two 3 color
      scanlines of 512 pixels from an RLE file on
      the standard input.

                char scanline[2][3][512], *rows[3];
                int row, i;
                rle_dflt_hdr.rle_file = stdin;
                rle_get_setup( &rle_dflt_hdr );
                for ( row = 0; row < 2; row++ )
                {
                     for ( i = 0; i < 3; i++ )
                          rows[i] = scanline[row][i];
                     rle_getrow( &rle_dflt_hdr, rows );
                }

 SEE ALSO
      rle_hdr(3), rle_row_alloc(3),
      rle_row_free(3), rle_get_setup(3),
      rle_getraw(3), rle_getskip(3), rle_putrow(3),
      librle(3), RLE(5).

 AUTHOR
      Spencer W. Thomas, Todd Fuqua
      University of Utah

























9