1234567891011121314151617181920212223242526272829303132333435363738 |
- #include <u.h>
- #include <libc.h>
- #include <draw.h>
- /*
- * compressed data are seuences of byte codes.
- * if the first byte b has the 0x80 bit set, the next (b^0x80)+1 bytes
- * are data. otherwise, it's two bytes specifying a previous string to repeat.
- */
- void
- _twiddlecompressed(uchar *buf, int n)
- {
- uchar *ebuf;
- int j, k, c;
- ebuf = buf+n;
- while(buf < ebuf){
- c = *buf++;
- if(c >= 128){
- k = c-128+1;
- for(j=0; j<k; j++, buf++)
- *buf ^= 0xFF;
- }else
- buf++;
- }
- }
- int
- _compblocksize(Rectangle r, int depth)
- {
- int bpl;
- bpl = bytesperline(r, depth);
- bpl = 2*bpl; /* add plenty extra for blocking, etc. */
- if(bpl < NCBLOCK)
- return NCBLOCK;
- return bpl;
- }
|