From e6270130984ab145aa0dea2f25208d96156ac3ff Mon Sep 17 00:00:00 2001 From: Mikko Rasa Date: Fri, 23 Nov 2012 09:47:23 +0200 Subject: [PATCH] Code formatting fixes --- ttf2png.c | 294 +++++++++++++++++++++++++++--------------------------- 1 file changed, 149 insertions(+), 145 deletions(-) diff --git a/ttf2png.c b/ttf2png.c index b499b43..67228e5 100644 --- 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; yrows; ++y) for(x=0; xwidth; ++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; yrows; ++y) for(x=0; xwidth; ++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_yglyphs[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_glyphsimage.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; in_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; yimage.h; ++y) for(x=0; ximage.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; in_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; cyimage.h;) { unsigned w; unsigned x, y; - Glyph *glyph=NULL; - unsigned best_score=0; - - for(; (cximage.w && used_pixels[cx+cy*font->image.w]); ++cx); + Glyph *glyph = NULL; + unsigned best_score = 0; + + for(; (cximage.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+wimage.w && !used_pixels[cx+w+cy*font->image.w]); ++w); + for(w=0; (cx+wimage.w && !used_pixels[cx+w+cy*font->image.w]); ++w) ; for(i=0; in_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; yimage.h; ++y) for(x=0; ximage.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; yimage.h+2; ++y) for(x=0; ximage.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; in_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; iw*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; ih; ++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; ih; ++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); -- 2.45.2