| 101 | } |
| 102 | |
| 103 | int |
| 104 | fclose_ppm_file(void) |
| 105 | { |
| 106 | int i, j; |
| 107 | |
| 108 | if (curr_tiles_across) { /* partial row */ |
| 109 | /* fill with checkerboard, for lack of a better idea */ |
| 110 | for (j = 0; j < TILE_Y; j++) { |
| 111 | for (i = curr_tiles_across * TILE_X; i < PpmScreen.Width; |
| 112 | i += 2) { |
| 113 | image[j][i].r = MainColorMap[CM_RED][0]; |
| 114 | image[j][i].g = MainColorMap[CM_GREEN][0]; |
| 115 | image[j][i].b = MainColorMap[CM_BLUE][0]; |
| 116 | image[j][i + 1].r = MainColorMap[CM_RED][1]; |
| 117 | image[j][i + 1].g = MainColorMap[CM_GREEN][1]; |
| 118 | image[j][i + 1].b = MainColorMap[CM_BLUE][1]; |
| 119 | } |
| 120 | } |
| 121 | WriteTileStrip(); |
| 122 | curr_tiles_across = 0; |
| 123 | tiles_down++; |
| 124 | } |
| 125 | |
| 126 | for (i = 0; i < TILE_Y; i++) { |
| 127 | free((genericptr_t) image[i]); |
| 128 | } |
| 129 | free((genericptr_t) image); |
| 130 | |
| 131 | PpmScreen.Height = tiles_down * TILE_Y; |
| 132 | rewind(ppm_file); |
| 133 | write_header(); /* update size */ |
| 134 | |
| 135 | return (fclose(ppm_file)); |
| 136 | } |
| 137 | |
| 138 | int |
| 139 | main(int argc, char *argv[]) |
no test coverage detected