ViewVC Help
View File | Revision Log | Show Annotations | Download File | Root Listing
root/radiance/ray/src/common/font.c
(Generate patch)

Comparing ray/src/common/font.c (file contents):
Revision 2.1 by greg, Sat Jun 6 07:38:40 1992 UTC vs.
Revision 2.2 by greg, Tue Jun 16 13:16:50 1992 UTC

# Line 71 | Line 71 | char  *fname;
71                  if (g == NULL)
72                          goto memerr;
73                  g->nverts = ngv;
74 <                g->start = g->width = 128;
74 >                g->left = g->right = g->top = g->bottom = 128;
75                  ngv *= 2;
76                  gp = gvlist(g);
77                  while (ngv--) {
# Line 82 | Line 82 | char  *fname;
82                                  goto fonterr;
83                          }
84                          *gp++ = gv;
85 <                        if (ngv & 1)            /* follow x limits */
86 <                                if (gv < g->start)
87 <                                        g->start = gv;
88 <                                else if (gv > g->width)
89 <                                        g->width = gv;
85 >                        if (ngv & 1) {          /* follow x limits */
86 >                                if (gv < g->left)
87 >                                        g->left = gv;
88 >                                else if (gv > g->right)
89 >                                        g->right = gv;
90 >                        } else {                /* follow y limits */
91 >                                if (gv < g->bottom)
92 >                                        g->bottom = gv;
93 >                                else if (gv > g->top)
94 >                                        g->top = gv;
95 >                        }
96                  }
91                g->width -= g->start;
97                  f->fg[gn] = g;
98          }
99          fclose(fp);
# Line 104 | Line 109 | fonterr:
109   memerr:
110          error(SYSTEM, "out of memory in fontglyph");
111   }
112 +
113 +
114 + int
115 + squeeztext(sp, tp, f, cis)              /* squeeze text line */
116 + short  *sp;                     /* returned character spacing */
117 + char  *tp;                      /* text line */
118 + FONT  *f;                       /* font */
119 + int  cis;                       /* intercharacter spacing */
120 + {
121 +        int  linelen;
122 +        register GLYPH  *gp;
123 +
124 +        gp = NULL;
125 +        while (*tp && (gp = f->fg[*tp++&0xff]) == NULL)
126 +                *sp++ = 0;
127 +        cis /= 2;
128 +        linelen = *sp = 0;
129 +        while (gp != NULL) {
130 +                if (gp->nverts) {               /* regular character */
131 +                        linelen += *sp++ += cis - gp->left;
132 +                        *sp = gp->right + cis;
133 +                } else {                        /* space */
134 +                        linelen += *sp++;
135 +                        *sp = 256;
136 +                }
137 +                gp = NULL;
138 +                while (*tp && (gp = f->fg[*tp++&0xff]) == NULL) {
139 +                        linelen += *sp++;
140 +                        *sp = 0;
141 +                }
142 +        }
143 +        linelen += *sp;
144 +        return(linelen);
145 + }
146 +
147 +
148 + proptext(sp, tp, f, cis, nsi)           /* space line proportionally */
149 + short  *sp;                     /* returned character spacing */
150 + char  *tp;                      /* text line */
151 + FONT  *f;                       /* font */
152 + int  cis;                       /* target intercharacter spacing */
153 + int  nsi;                       /* minimum number of spaces for indent */
154 + {
155 + }
156 +
157 +

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines