Hi

In function static int compute_window_row(int fd, int row, int *cellRow) in ~/grass/7.0/grass_trunk/lib/raster/get_row.c, there is a check to see if row is in window, and if not, 0 is returned.

I came across this function from get_map_row_nomask(...) in the same file (which came all the way from Rast_get_row(fds[i], rowbuf, row, maptype);), and the result of compute_window_row(...) is used to determined whether to "read cell file row if not in memory".

I'm a little confused about the concept 'window' here, and how does that relate to "in memory"?

My understanding is that "window" is a "visible area", and rows are only read from disk file if it's within this "window" area. Then what would happen if rast_get_row is used to get the exact same row in exact the same map more than once? Does the second time NOT read the row from file because the first time has put this row in memory? In this case the requested row is copied from a inner buffer that was filled with the data during the first time call?

Thanks,
Peng
_______________________________________________
grass-dev mailing list
[email protected]
http://lists.osgeo.org/mailman/listinfo/grass-dev

Reply via email to