]> git.tdb.fi Git - ttf2png.git/commitdiff
Code formatting fixes
authorMikko Rasa <tdb@tdb.fi>
Fri, 23 Nov 2012 07:47:23 +0000 (09:47 +0200)
committerMikko Rasa <tdb@tdb.fi>
Fri, 23 Nov 2012 07:47:23 +0000 (09:47 +0200)
ttf2png.c

index b499b438858e08bb67cc24de3bfd6dcd012f7051..67228e533095c119070af16beaa950da87cb8378 100644 (file)
--- a/ttf2png.c
+++ b/ttf2png.c
@@ -59,20 +59,20 @@ void render_packed(Font *);
 int save_defs(const char *, const Font *);
 int save_png(const char *, const Image *, char);
 
-char verbose=0;
+char verbose = 0;
 
 int main(int argc, char **argv)
 {
        char *fn;
-       int  begin=0;
-       int  end=255;
-       int  size=10;
-       int  cpl=0;
-       int  cell=0;
-       char autohinter=0;
-       char seq=0;
-       char alpha=0;
-       char pack=0;
+       int  begin = 0;
+       int  end = 255;
+       int  size = 10;
+       int  cpl = 0;
+       int  cell = 0;
+       char autohinter = 0;
+       char seq = 0;
+       char alpha = 0;
+       char pack = 0;
 
        FT_Library freetype;
        FT_Face    face;
@@ -80,9 +80,8 @@ int main(int argc, char **argv)
        int  err;
        int  i;
 
-       char *out_fn="font.png";
-
-       char *def_fn=NULL;
+       char *out_fn = "font.png";
+       char *def_fn = NULL;
 
        Font font;
 
@@ -92,7 +91,7 @@ int main(int argc, char **argv)
                return 1;
        }
 
-       while((i=getopt(argc, argv, "r:s:l:c:o:atvh?ed:p"))!=-1)
+       while((i = getopt(argc, argv, "r:s:l:c:o:atvh?ed:p")) != -1)
        {
                char *ptr;
                int  temp;
@@ -101,18 +100,18 @@ int main(int argc, char **argv)
                case 'r':
                        if(!strcmp(optarg, "all"))
                        {
-                               begin=0;
-                               end=0x110000;
+                               begin = 0;
+                               end = 0x110000;
                        }
                        else
                        {
                                if(!isdigit(optarg[0]))
-                                       temp=-1;
+                                       temp = -1;
                                else
                                {
-                                       temp=strtol(optarg, &ptr, 0);
+                                       temp = strtol(optarg, &ptr, 0);
                                        if(ptr[0]!=',' || !isdigit(ptr[1]))
-                                               temp=-1;
+                                               temp = -1;
                                }
                                if(temp<0)
                                {
@@ -121,28 +120,28 @@ int main(int argc, char **argv)
                                }
                                else
                                {
-                                       begin=temp;
-                                       end=strtol(ptr+1, NULL, 0);
+                                       begin = temp;
+                                       end = strtol(ptr+1, NULL, 0);
                                }
                        }
                        break;
                case 's':
-                       size=strtol(optarg, NULL, 0);
+                       size = strtol(optarg, NULL, 0);
                        break;
                case 'l':
-                       cpl=strtol(optarg, NULL, 0);
+                       cpl = strtol(optarg, NULL, 0);
                        break;
                case 'c':
-                       cell=strtol(optarg, NULL, 0);
+                       cell = strtol(optarg, NULL, 0);
                        break;
                case 'o':
-                       out_fn=optarg;
+                       out_fn = optarg;
                        break;
                case 'a':
-                       autohinter=1;
+                       autohinter = 1;
                        break;
                case 't':
-                       alpha=1;
+                       alpha = 1;
                        break;
                case 'v':
                        ++verbose;
@@ -152,35 +151,35 @@ int main(int argc, char **argv)
                        usage();
                        return 0;
                case 'e':
-                       seq=1;
+                       seq = 1;
                        break;
                case 'd':
-                       def_fn=optarg;
+                       def_fn = optarg;
                        break;
                case 'p':
-                       pack=1;
+                       pack = 1;
                        break;
                }
        }
        if(!strcmp(out_fn, "-"))
-               verbose=0;
+               verbose = 0;
 
        if(optind!=argc-1)
        {
                usage();
                return 1;
        }
-       
-       fn=argv[optind];
 
-       err=FT_Init_FreeType(&freetype);
+       fn = argv[optind];
+
+       err = FT_Init_FreeType(&freetype);
        if(err)
        {
                fprintf(stderr, "Couldn't initialize FreeType library\n");
                return 1;
        }
 
-       err=FT_New_Face(freetype, fn, 0, &face);
+       err = FT_New_Face(freetype, fn, 0, &face);
        if(err)
        {
                fprintf(stderr, "Couldn't load font file\n");
@@ -191,19 +190,19 @@ int main(int argc, char **argv)
 
        if(verbose)
        {
-               const char *name=FT_Get_Postscript_Name(face);
+               const char *name = FT_Get_Postscript_Name(face);
                printf("Font name: %s\n", name);
                printf("Glyphs:    %ld\n", face->num_glyphs);
        }
 
-       err=FT_Set_Pixel_Sizes(face, 0, size);
+       err = FT_Set_Pixel_Sizes(face, 0, size);
        if(err)
        {
                fprintf(stderr, "Couldn't set size\n");
                return 1;
        }
 
-       font.size=size;
+       font.size = size;
        init_font(&font, face, begin, end, autohinter);
        if(pack)
                render_packed(&font);
@@ -226,16 +225,16 @@ int main(int argc, char **argv)
 
 unsigned round_to_pot(unsigned n)
 {
-       n-=1;
-       n|=n>>1;
-       n|=n>>2;
-       n|=n>>4;
-       n|=n>>8;
-       n|=n>>16;
+       n -= 1;
+       n |= n>>1;
+       n |= n>>2;
+       n |= n>>4;
+       n |= n>>8;
+       n |= n>>16;
 
        return n+1;
 }
-       
+
 void usage()
 {
        printf("ttf2png - True Type Font to PNG converter\n"
@@ -260,32 +259,33 @@ void usage()
 void init_font(Font *font, FT_Face face, unsigned first, unsigned last, int autohinter)
 {
        unsigned i;
-       unsigned size=0;
+       unsigned size = 0;
+
+       font->ascent = (face->size->metrics.ascender+63)>>6;
+       font->descent = (face->size->metrics.descender+63)>>6;
 
-       font->ascent=(face->size->metrics.ascender+63)>>6;
-       font->descent=(face->size->metrics.descender+63)>>6;
-       
        if(verbose>=1)
        {
                printf("Ascent:    %d\n", font->ascent);
                printf("Descent:   %d\n", font->descent);
        }
 
-       font->n_glyphs=0;
-       font->glyphs=NULL;
+       font->n_glyphs = 0;
+       font->glyphs = NULL;
        for(i=first; i<=last; ++i)
        {
                unsigned  n;
-               FT_Bitmap *bmp=&face->glyph->bitmap;
+               FT_Bitmap *bmp = &face->glyph->bitmap;
                int       x, y;
-               int       flags=0;
+               int       flags = 0;
                Glyph     *glyph;
 
-               n=FT_Get_Char_Index(face, i);
-               if(!n) continue;
+               n = FT_Get_Char_Index(face, i);
+               if(!n)
+                       continue;
 
                if(autohinter)
-                       flags|=FT_LOAD_FORCE_AUTOHINT;
+                       flags |= FT_LOAD_FORCE_AUTOHINT;
                FT_Load_Glyph(face, n, flags);
                FT_Render_Glyph(face->glyph, FT_RENDER_MODE_NORMAL);
 
@@ -300,28 +300,28 @@ void init_font(Font *font, FT_Face face, unsigned first, unsigned last, int auto
 
                if(font->n_glyphs>=size)
                {
-                       size+=16;
-                       font->glyphs=(Glyph *)realloc(font->glyphs, size*sizeof(Glyph));
+                       size += 16;
+                       font->glyphs = (Glyph *)realloc(font->glyphs, size*sizeof(Glyph));
                }
 
-               glyph=&font->glyphs[font->n_glyphs++];
-               glyph->code=i;
-               glyph->image.w=bmp->width;
-               glyph->image.h=bmp->rows;
-               glyph->image.data=(char *)malloc(bmp->width*bmp->rows);
-               glyph->offset_x=face->glyph->bitmap_left;
-               glyph->offset_y=face->glyph->bitmap_top-bmp->rows;
-               glyph->advance=(int)(face->glyph->advance.x+32)/64;
+               glyph = &font->glyphs[font->n_glyphs++];
+               glyph->code = i;
+               glyph->image.w = bmp->width;
+               glyph->image.h = bmp->rows;
+               glyph->image.data = (char *)malloc(bmp->width*bmp->rows);
+               glyph->offset_x = face->glyph->bitmap_left;
+               glyph->offset_y = face->glyph->bitmap_top-bmp->rows;
+               glyph->advance = (int)(face->glyph->advance.x+32)/64;
 
                if(bmp->pitch<0)
                {
                        for(y=0; y<bmp->rows; ++y) for(x=0; x<bmp->width; ++x)
-                               glyph->image.data[x+(glyph->image.h-1-y)*glyph->image.w]=bmp->buffer[x-y*bmp->pitch];
+                               glyph->image.data[x+(glyph->image.h-1-y)*glyph->image.w] = bmp->buffer[x-y*bmp->pitch];
                }
                else
                {
                        for(y=0; y<bmp->rows; ++y) for(x=0; x<bmp->width; ++x)
-                               glyph->image.data[x+y*glyph->image.w]=bmp->buffer[x+y*bmp->pitch];
+                               glyph->image.data[x+y*glyph->image.w] = bmp->buffer[x+y*bmp->pitch];
                }
        }
 
@@ -332,14 +332,14 @@ void init_font(Font *font, FT_Face face, unsigned first, unsigned last, int auto
 void render_grid(Font *font, unsigned cell, unsigned cpl, int seq)
 {
        unsigned i;
-       int      top=0, bot=0;
+       int      top = 0, bot = 0;
        unsigned first, last;
-       unsigned maxw=0, maxh=0;
+       unsigned maxw = 0, maxh = 0;
 
        for(i=1;; i<<=1)
        {
-               first=font->glyphs[0].code&~(i-1);
-               last=first+i-1;
+               first = font->glyphs[0].code&~(i-1);
+               last = first+i-1;
                if(last>=font->glyphs[font->n_glyphs-1].code)
                        break;
        }
@@ -348,22 +348,22 @@ void render_grid(Font *font, unsigned cell, unsigned cpl, int seq)
        {
                int y;
 
-               y=font->glyphs[i].offset_y+font->glyphs[i].image.h;
+               y = font->glyphs[i].offset_y+font->glyphs[i].image.h;
                if(y>top)
-                       top=y;
+                       top = y;
                if(font->glyphs[i].offset_y<bot)
-                       bot=font->glyphs[i].offset_y;
+                       bot = font->glyphs[i].offset_y;
                if(font->glyphs[i].image.w>maxw)
-                       maxw=font->glyphs[i].image.w;
+                       maxw = font->glyphs[i].image.w;
                if(font->glyphs[i].image.h>maxh)
-                       maxh=font->glyphs[i].image.h;
+                       maxh = font->glyphs[i].image.h;
        }
 
        if(cell==0)
        {
-               cell=top-bot;
+               cell = top-bot;
                if(maxw>cell)
-                       cell=maxw;
+                       cell = maxw;
        }
 
        if(verbose>=1)
@@ -371,28 +371,28 @@ void render_grid(Font *font, unsigned cell, unsigned cpl, int seq)
                printf("Max size:  %u x %u\n", maxw, maxh);
                printf("Y range:   [%d %d]\n", bot, top);
                if(maxw>cell || top-bot>cell)
-                       fprintf(stderr,"Warning: character size exceeds cell size (%d)\n", cell);
+                       fprintf(stderr, "Warning: character size exceeds cell size (%d)\n", cell);
        }
 
        if(cpl==0)
        {
-               unsigned count=(seq ? font->n_glyphs : last-first+1);
+               unsigned count = (seq ? font->n_glyphs : last-first+1);
                for(i=1;; i<<=1)
                {
-                       cpl=i/cell;
+                       cpl = i/cell;
                        if(cpl>0 && (count+cpl-1)/cpl<=cpl)
                                break;
                }
        }
 
-       font->image.w=round_to_pot(cpl*cell);
+       font->image.w = round_to_pot(cpl*cell);
        if(seq && font->n_glyphs<last-first+1)
-               font->image.h=(font->n_glyphs+cpl-1)/cpl*cell;
+               font->image.h = (font->n_glyphs+cpl-1)/cpl*cell;
        else
-               font->image.h=(last-first+cpl)/cpl*cell;
-       font->image.h=round_to_pot(font->image.h);
-       
-       font->image.data=(char *)malloc(font->image.w*font->image.h);
+               font->image.h = (last-first+cpl)/cpl*cell;
+       font->image.h = round_to_pot(font->image.h);
+
+       font->image.data = (char *)malloc(font->image.w*font->image.h);
        memset(font->image.data, 255, font->image.w*font->image.h);
 
        for(i=0; i<font->n_glyphs; ++i)
@@ -401,30 +401,31 @@ void render_grid(Font *font, unsigned cell, unsigned cpl, int seq)
                int      cx, cy;
                unsigned x, y;
 
-               glyph=&font->glyphs[i];
+               glyph = &font->glyphs[i];
 
                if(seq)
                {
-                       cx=(i%cpl)*cell;
-                       cy=(i/cpl)*cell;
+                       cx = (i%cpl)*cell;
+                       cy = (i/cpl)*cell;
                }
                else
                {
-                       cx=((glyph->code-first)%cpl)*cell;
-                       cy=((glyph->code-first)/cpl)*cell;
+                       cx = ((glyph->code-first)%cpl)*cell;
+                       cy = ((glyph->code-first)/cpl)*cell;
                }
 
                if(cell>glyph->image.w)
-                       cx+=(cell-glyph->image.w)/2;
-               cy+=top-glyph->offset_y-glyph->image.h;
+                       cx += (cell-glyph->image.w)/2;
+               cy += top-glyph->offset_y-glyph->image.h;
 
-               glyph->x=cx;
-               glyph->y=cy;
+               glyph->x = cx;
+               glyph->y = cy;
 
                for(y=0; y<glyph->image.h; ++y) for(x=0; x<glyph->image.w; ++x)
                {
-                       if(cx+x<0 || cx+x>=font->image.w || cy+y<0 || cy+y>=font->image.h) continue;
-                       font->image.data[cx+x+(cy+y)*font->image.w]=255-glyph->image.data[x+y*glyph->image.w];
+                       if(cx+x<0 || cx+x>=font->image.w || cy+y<0 || cy+y>=font->image.h)
+                               continue;
+                       font->image.data[cx+x+(cy+y)*font->image.w] = 255-glyph->image.data[x+y*glyph->image.w];
                }
        }
 }
@@ -432,92 +433,94 @@ void render_grid(Font *font, unsigned cell, unsigned cpl, int seq)
 void render_packed(Font *font)
 {
        unsigned i;
-       unsigned area=0;
-       unsigned last_h=0xFFFF;
+       unsigned area = 0;
+       unsigned last_h = 0xFFFF;
        char     *used_glyphs;
        char     *used_pixels;
-       unsigned cx=0, cy;
+       unsigned cx = 0, cy;
 
        for(i=0; i<font->n_glyphs; ++i)
                area+=(font->glyphs[i].image.w+1)*(font->glyphs[i].image.h+1);
 
        for(font->image.w=1;; font->image.w<<=1)
        {
-               font->image.h=(area*5/4)/font->image.w;
+               font->image.h = (area*5/4)/font->image.w;
                if(font->image.h<=font->image.w)
                        break;
        }
-       font->image.h=round_to_pot(font->image.h);
-       
-       font->image.data=(char *)malloc(font->image.w*font->image.h);
+       font->image.h = round_to_pot(font->image.h);
+
+       font->image.data = (char *)malloc(font->image.w*font->image.h);
        memset(font->image.data, 255, font->image.w*font->image.h);
-       used_pixels=(char *)malloc(font->image.w*font->image.h);
+       used_pixels = (char *)malloc(font->image.w*font->image.h);
        memset(used_pixels, 0, font->image.w*font->image.h);
-       used_glyphs=(char *)malloc(font->n_glyphs);
+       used_glyphs = (char *)malloc(font->n_glyphs);
        memset(used_glyphs, 0, font->n_glyphs);
 
        for(cy=0; cy<font->image.h;)
        {
                unsigned w;
                unsigned x, y;
-               Glyph    *glyph=NULL;
-               unsigned best_score=0;
-               
-               for(; (cx<font->image.w && used_pixels[cx+cy*font->image.w]); ++cx);
+               Glyph    *glyph = NULL;
+               unsigned best_score = 0;
+
+               for(; (cx<font->image.w && used_pixels[cx+cy*font->image.w]); ++cx) ;
                if(cx>=font->image.w)
                {
-                       cx=0;
+                       cx = 0;
                        ++cy;
-                       last_h=0xFFFF;
+                       last_h = 0xFFFF;
                        continue;
                }
-               for(w=0; (cx+w<font->image.w && !used_pixels[cx+w+cy*font->image.w]); ++w);
+               for(w=0; (cx+w<font->image.w && !used_pixels[cx+w+cy*font->image.w]); ++w) ;
 
                for(i=0; i<font->n_glyphs; ++i)
                {
-                       Glyph    *g;
+                       Glyph *g;
 
-                       g=&font->glyphs[i];
+                       g = &font->glyphs[i];
                        if(!used_glyphs[i] && g->image.w<=w)
                        {
                                unsigned score;
 
-                               score=g->image.h+1;
+                               score = g->image.h+1;
                                if(g->image.h==last_h)
-                                       score*=g->image.w;
+                                       score *= g->image.w;
                                else
-                                       score+=g->image.w;
+                                       score += g->image.w;
 
                                if(score>best_score)
                                {
-                                       glyph=g;
-                                       best_score=score;
+                                       glyph = g;
+                                       best_score = score;
                                }
                        }
                }
 
                if(!glyph)
                {
-                       cx+=w;
+                       cx += w;
                        continue;
                }
 
-               used_glyphs[glyph-font->glyphs]=1;
-               glyph->x=cx;
-               glyph->y=cy;
+               used_glyphs[glyph-font->glyphs] = 1;
+               glyph->x = cx;
+               glyph->y = cy;
 
                for(y=0; y<glyph->image.h; ++y) for(x=0; x<glyph->image.w; ++x)
                {
-                       if(cx+x<0 || cx+x>=font->image.w || cy+y<0 || cy+y>=font->image.h) continue;
-                       font->image.data[cx+x+(cy+y)*font->image.w]=255-glyph->image.data[x+y*glyph->image.w];
+                       if(cx+x<0 || cx+x>=font->image.w || cy+y<0 || cy+y>=font->image.h)
+                               continue;
+                       font->image.data[cx+x+(cy+y)*font->image.w] = 255-glyph->image.data[x+y*glyph->image.w];
                }
                for(y=0; y<glyph->image.h+2; ++y) for(x=0; x<glyph->image.w+2; ++x)
                {
-                       if(cx+x<1 || cx+x>font->image.w || cy+y<1 || cy+y>font->image.h) continue;
-                       used_pixels[cx+x-1+(cy+y-1)*font->image.w]=1;
+                       if(cx+x<1 || cx+x>font->image.w || cy+y<1 || cy+y>font->image.h)
+                               continue;
+                       used_pixels[cx+x-1+(cy+y-1)*font->image.w] = 1;
                }
 
-               last_h=glyph->image.h;
+               last_h = glyph->image.h;
        }
 }
 
@@ -526,7 +529,7 @@ int save_defs(const char *fn, const Font *font)
        FILE     *out;
        unsigned i;
 
-       out=fopen(fn, "w");
+       out = fopen(fn, "w");
        if(!out)
        {
                fprintf(stderr, "Couldn't open %s\n",fn);
@@ -536,7 +539,7 @@ int save_defs(const char *fn, const Font *font)
        fprintf(out, "%d %d %d %d %d\n", font->image.w, font->image.h, font->size, font->ascent, font->descent);
        for(i=0; i<font->n_glyphs; ++i)
        {
-               const Glyph *g=&font->glyphs[i];
+               const Glyph *g = &font->glyphs[i];
                fprintf(out, "%u %u %u %u %u %d %d %d\n", g->code, g->x, g->y, g->image.w, g->image.h, g->offset_x, g->offset_y, g->advance);
        }
 
@@ -556,10 +559,10 @@ int save_png(const char *fn, const Image *image, char alpha)
        int        color;
 
        if(!strcmp(fn, "-"))
-               out=stdout;
+               out = stdout;
        else
        {
-               out=fopen(fn, "wb");
+               out = fopen(fn, "wb");
                if(!out)
                {
                        fprintf(stderr, "Couldn't open %s\n",fn);
@@ -567,13 +570,13 @@ int save_png(const char *fn, const Image *image, char alpha)
                }
        }
 
-       pngs=png_create_write_struct(PNG_LIBPNG_VER_STRING, NULL, NULL, NULL);
+       pngs = png_create_write_struct(PNG_LIBPNG_VER_STRING, NULL, NULL, NULL);
        if(!pngs)
        {
                fprintf(stderr, "Error writing PNG file\n");
                return -1;
        }
-       pngi=png_create_info_struct(pngs);
+       pngi = png_create_info_struct(pngs);
        if(!pngi)
        {
                png_destroy_write_struct(&pngs, NULL);
@@ -584,21 +587,21 @@ int save_png(const char *fn, const Image *image, char alpha)
        png_init_io(pngs, out);
        if(alpha)
        {
-               data2=(png_byte *)malloc(image->w*image->h*2);
+               data2 = (png_byte *)malloc(image->w*image->h*2);
                for(i=0; i<image->w*image->h; ++i)
                {
-                       data2[i*2]=255;
-                       data2[i*2+1]=255-image->data[i];
+                       data2[i*2] = 255;
+                       data2[i*2+1] = 255-image->data[i];
                }
                for(i=0; i<image->h; ++i)
-                       rows[i]=(png_byte *)(data2+i*image->w*2);
-               color=PNG_COLOR_TYPE_GRAY_ALPHA;
+                       rows[i] = (png_byte *)(data2+i*image->w*2);
+               color = PNG_COLOR_TYPE_GRAY_ALPHA;
        }
        else
        {
                for(i=0; i<image->h; ++i)
-                       rows[i]=(png_byte *)(image->data+i*image->w);
-               color=PNG_COLOR_TYPE_GRAY;
+                       rows[i] = (png_byte *)(image->data+i*image->w);
+               color = PNG_COLOR_TYPE_GRAY;
        }
        png_set_IHDR(pngs, pngi, image->w, image->h, 8, color, PNG_INTERLACE_NONE, PNG_COMPRESSION_TYPE_DEFAULT, PNG_FILTER_TYPE_DEFAULT);
        png_set_rows(pngs, pngi, rows);
@@ -607,7 +610,8 @@ int save_png(const char *fn, const Image *image, char alpha)
        if(alpha)
                free(data2);
 
-       if(verbose) printf("Saved %dx%d PNG image to %s\n", image->w, image->h, fn);
+       if(verbose)
+               printf("Saved %dx%d PNG image to %s\n", image->w, image->h, fn);
 
        fclose(out);