|
| #define | NOVASVG_IW_MALLOC(sz) malloc(sz) |
| |
| #define | NOVASVG_IW_REALLOC(p, newsz) realloc(p,newsz) |
| |
| #define | NOVASVG_IW_FREE(p) free(p) |
| |
| #define | NOVASVG_IW_REALLOC_SIZED(p, oldsz, newsz) NOVASVG_IW_REALLOC(p,newsz) |
| |
| #define | NOVASVG_IW_MEMMOVE(a, b, sz) memmove(a,b,sz) |
| |
| #define | NOVASVG_IW_ASSERT(x) assert(x) |
| |
| #define | NOVASVG_IW_UCHAR(x) (unsigned char) ((x) & 0xff) |
| |
| #define | iw_max(a, b) ((a) > (b) ? (a) : (b)) |
| |
| #define | sb_raw(a) ((int *) (void *) (a) - 2) |
| |
| #define | sb_m(a) sb_raw(a)[0] |
| |
| #define | sb_n(a) sb_raw(a)[1] |
| |
| #define | sb_needgrow(a, n) ((a)==0 || sb_n(a)+n >= sb_m(a)) |
| |
| #define | sb_maybegrow(a, n) (sb_needgrow(a,(n)) ? sb_grow(a,n) : 0) |
| |
| #define | sb_grow(a, n) sb_growf((void **) &(a), (n), sizeof(*(a))) |
| |
| #define | sb_push(a, v) (sb_maybegrow(a,1), (a)[sb_n(a)++] = (v)) |
| |
| #define | sb_count(a) ((a) ? sb_n(a) : 0) |
| |
| #define | sb_free(a) ((a) ? NOVASVG_IW_FREE(sb_raw(a)),0 : 0) |
| |
| #define | zlib_flush() (out = zlib_flushf(out, &bitbuf, &bitcount)) |
| |
| #define | zlib_add(code, codebits) (bitbuf |= (code) << bitcount, bitcount += (codebits), zlib_flush()) |
| |
| #define | zlib_huffa(b, c) zlib_add(zlib_bitrev(b,c),c) |
| |
| #define | zlib_huff1(n) zlib_huffa(0x30 + (n), 8) |
| |
| #define | zlib_huff2(n) zlib_huffa(0x190 + (n)-144, 9) |
| |
| #define | zlib_huff3(n) zlib_huffa(0 + (n)-256,7) |
| |
| #define | zlib_huff4(n) zlib_huffa(0xc0 + (n)-280,8) |
| |
| #define | zlib_huff(n) ((n) <= 143 ? zlib_huff1(n) : (n) <= 255 ? zlib_huff2(n) : (n) <= 279 ? zlib_huff3(n) : zlib_huff4(n)) |
| |
| #define | zlib_huffb(n) ((n) <= 143 ? zlib_huff1(n) : zlib_huff2(n)) |
| |
| #define | ZLIB_HASH 16384 |
| |
| #define | png_write_u32x4(o, a, b, c, d) ((o)[0]=NOVASVG_IW_UCHAR(a),(o)[1]=NOVASVG_IW_UCHAR(b),(o)[2]=NOVASVG_IW_UCHAR(c),(o)[3]=NOVASVG_IW_UCHAR(d),(o)+=4) |
| |
| #define | zlib_write_u32(data, v) png_write_u32x4(data, (v)>>24,(v)>>16,(v)>>8,(v)); |
| |
| #define | png_write_tag(data, s) png_write_u32x4(data, s[0],s[1],s[2],s[3]) |
| |