equal
deleted
inserted
replaced
63 |
63 |
64 else |
64 else |
65 return PT_CACHE_FRESH; |
65 return PT_CACHE_FRESH; |
66 } |
66 } |
67 |
67 |
|
68 int pt_cache_info (struct pt_cache *cache, struct pt_image_info *info) |
|
69 { |
|
70 // ensure open |
|
71 if (pt_cache_open(cache)) |
|
72 return -1; |
|
73 |
|
74 info->width = cache->header->width; |
|
75 info->height = cache->header->height; |
|
76 |
|
77 return 0; |
|
78 } |
|
79 |
68 /** |
80 /** |
69 * Abort any incomplete open operation, cleaning up |
81 * Abort any incomplete open operation, cleaning up |
70 */ |
82 */ |
71 static void pt_cache_abort (struct pt_cache *cache) |
83 static void pt_cache_abort (struct pt_cache *cache) |
72 { |
84 { |
286 int pt_cache_open (struct pt_cache *cache) |
298 int pt_cache_open (struct pt_cache *cache) |
287 { |
299 { |
288 struct pt_cache_header header; |
300 struct pt_cache_header header; |
289 void *base; |
301 void *base; |
290 |
302 |
|
303 // ignore if already open |
|
304 if (cache->header && cache->data) |
|
305 return 0; |
|
306 |
291 // open the .cache |
307 // open the .cache |
292 if (pt_cache_open_read_fd(cache, &cache->fd)) |
308 if (pt_cache_open_read_fd(cache, &cache->fd)) |
293 return -1; |
309 return -1; |
294 |
310 |
295 // read in header |
311 // read in header |
388 return 0; |
404 return 0; |
389 } |
405 } |
390 |
406 |
391 int pt_cache_tile_png (struct pt_cache *cache, png_structp png, png_infop info, const struct pt_tile_info *ti) |
407 int pt_cache_tile_png (struct pt_cache *cache, png_structp png, png_infop info, const struct pt_tile_info *ti) |
392 { |
408 { |
393 if (!cache->data) { |
409 // ensure open |
394 // not yet open |
410 if (pt_cache_open(cache)) |
395 if (pt_cache_open(cache)) |
411 return -1; |
396 return -1; |
|
397 } |
|
398 |
412 |
399 // set basic info |
413 // set basic info |
400 png_set_IHDR(png, info, ti->width, ti->height, cache->header->bit_depth, cache->header->color_type, |
414 png_set_IHDR(png, info, ti->width, ti->height, cache->header->bit_depth, cache->header->color_type, |
401 PNG_INTERLACE_NONE, PNG_COMPRESSION_TYPE_DEFAULT, PNG_FILTER_TYPE_DEFAULT |
415 PNG_INTERLACE_NONE, PNG_COMPRESSION_TYPE_DEFAULT, PNG_FILTER_TYPE_DEFAULT |
402 ); |
416 ); |