Lines Matching refs:out
19 OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
128 writeBYTE(FILE *out, unsigned char val)
131 rc = DO_FWRITE(&val, 1, 1, out);
136 writeBYTEs(FILE *out, unsigned char *chars, int n)
139 rc = DO_FWRITE(chars, 1, n, out);
144 writeCHAR(FILE *out, char val)
147 rc = DO_FWRITE(&val, 1, 1, out);
152 writeCHARs(FILE *out, char *chars, int n)
155 rc = DO_FWRITE(chars, 1, n, out);
160 writeUSHORT(FILE *out, unsigned short val)
164 rc = DO_FWRITE(&val, 2, 1, out);
169 writeSHORT(FILE *out, short val)
173 rc = DO_FWRITE(&val, 2, 1, out);
178 writeULONG(FILE *out, unsigned int val)
182 rc = DO_FWRITE(&val, 4, 1, out);
187 writeLONG(FILE *out, int val)
191 rc = DO_FWRITE(&val, 4, 1, out);
196 readULONG(FILE *out)
200 rc = DO_FREAD(&val, 4, 1, out);
319 FILE *out;
328 out = fopen(filename, "wb+");
329 if(out == NULL)
394 rc = writeDir(out, font, i, tables);
399 offset[j] = ftell(out);
406 rc = table_writers[j](out, font);
409 length[j] = ftell(out) - offset[j];
420 writeBYTE(out, 0);
427 rc = fixupDir(out, font, i, offset, length);
431 full_length = ftell(out);
438 writeBYTE(out, 0);
443 rc = fixupChecksum(out, full_length, head_position);
446 fclose(out);
450 fclose(out);
456 writeDir(FILE *out, FontPtr font, int numTables, unsigned *tables)
465 writeULONG(out, 0x10000); /* version */
466 writeUSHORT(out, numTables); /* numTables */
467 writeUSHORT(out, 16 * ti); /* searchRange */
468 writeUSHORT(out, i); /* entrySelector */
469 writeUSHORT(out, 16 * (numTables - ti)); /* rangeShift */
473 writeULONG(out, tables[i]);
474 writeULONG(out, 0xDEADFACE); /* checkSum */
475 writeULONG(out, 0xDEADFACE); /* offset */
476 writeULONG(out, 0xDEADFACE); /* length */
482 computeChecksum(FILE *out, int offset, int length)
492 rc = fseek(out, offset, SEEK_SET);
500 sum += readULONG(out);
506 fixupDir(FILE *out, FontPtr font, int numTables, int *offset, int *length)
509 unsigned sum = computeChecksum(out, offset[i], length[i]);
510 int rc = fseek(out, 12 + 16 * i + 4, SEEK_SET);
515 writeULONG(out, sum);
516 writeULONG(out, offset[i]);
517 writeULONG(out, length[i]);
523 fixupChecksum(FILE *out, int full_length, int head_position)
526 checksum = computeChecksum(out, 0, full_length);
527 rc = fseek(out, head_position + 8, SEEK_SET);
532 writeULONG(out, 0xB1B0AFBA - checksum); /* checkSumAdjustment */
538 writehead(FILE* out, FontPtr font)
545 writeULONG(out, 0x00010000);
546 writeULONG(out, 0x00010000); /* fontRevision */
547 writeULONG(out, 0); /* checkSumAdjustment -- filled in later */
548 writeULONG(out,0x5F0F3CF5); /* magicNumber */
549 writeUSHORT(out, 1); /* flags */
550 writeUSHORT(out, UNITS_PER_EM); /* unitsPerEm */
552 writeLONG(out, time_hi); /* created */
553 writeULONG(out, time_lo);
554 writeLONG(out, time_hi); /* modified */
555 writeULONG(out, time_lo);
558 writeUSHORT(out, FONT_UNITS_FLOOR(font->metrics.minX));
559 writeUSHORT(out, FONT_UNITS_FLOOR(font->metrics.minY));
560 writeUSHORT(out, FONT_UNITS_CEIL(font->metrics.maxX));
561 writeUSHORT(out, FONT_UNITS_CEIL(font->metrics.maxY));
563 writeUSHORT(out, font->flags); /* macStyle */
564 writeUSHORT(out, 1); /* lowestRecPPEM */
565 writeSHORT(out, 0); /* fontDirectionHint */
566 writeSHORT(out, 0); /* indexToLocFormat */
567 writeSHORT(out, 0); /* glyphDataFormat */
572 outputRaster(FILE *out, char *raster, int width, int height, int stride,
579 writeCHARs(out, raster + i * stride, (width + 7) / 8);
591 writeBYTE(out, v);
599 writeBYTE(out, v);
607 writeEBDT(FILE* out, FontPtr font)
613 ebdt_start = ftell(out);
615 writeULONG(out, 0x00020000); /* version */
630 writeBYTE(out, bitmap->height);
631 writeBYTE(out, bitmap->width);
632 writeCHAR(out, bitmap->horiBearingX);
633 writeCHAR(out, bitmap->horiBearingY);
634 writeBYTE(out, bitmap->advanceWidth);
637 offset += outputRaster(out,
648 if(ftell(out) != ebdt_start + offset)
654 writeEBLC(FILE* out, FontPtr font)
668 eblc_start = ftell(out);
670 writeULONG(out, 0x00020000); /* version */
671 writeULONG(out, numstrikes); /* numSizes */
676 strike->bitmapSizeTableLocation = ftell(out);
677 writeULONG(out, 0xDEADFACE); /* indexSubTableArrayOffset */
678 writeULONG(out, 0xDEADFACE); /* indexTablesSize */
679 writeULONG(out, 0xDEADFACE); /* numberOfIndexSubTables */
680 writeULONG(out, 0); /* colorRef */
682 writeCHAR(out, font->pxMetrics.ascent); /* ascender */
683 writeCHAR(out, -font->pxMetrics.descent); /* descender */
684 writeBYTE(out, strikeMaxWidth(strike)); /* widthMax */
685 writeCHAR(out, num); /* caretSlopeNumerator */
686 writeCHAR(out, den); /* caretSlopeDenominator */
687 writeCHAR(out, 0); /* caretOffset */
688 writeCHAR(out, 0); /* minOriginSB */
689 writeCHAR(out, 0); /* minAdvanceSB */
690 writeCHAR(out, 0); /* maxBeforeBL */
691 writeCHAR(out, 0); /* minAfterBL */
692 writeCHAR(out, 0); /* pad1 */
693 writeCHAR(out, 0); /* pad2 */
695 writeUSHORT(out, 0); /* startGlyphIndex */
696 writeUSHORT(out, 0xFFFD); /* endGlyphIndex */
697 writeBYTE(out, strike->sizeX); /* ppemX */
698 writeBYTE(out, strike->sizeY); /* ppemY */
699 writeBYTE(out, 1); /* bitDepth */
700 writeCHAR(out, 1); /* flags */
711 strike->indexSubTableLocation = ftell(out);
714 table->location = ftell(out);
715 writeUSHORT(out, table->firstGlyphIndex);
716 writeUSHORT(out, table->lastGlyphIndex);
717 writeULONG(out, 0xDEADFACE); /* additionalOffsetToIndexSubtable */
721 endoffset = ftell(out);
722 rc = fseek(out, strike->bitmapSizeTableLocation, SEEK_SET);
727 writeULONG(out, strike->indexSubTableLocation - eblc_start);
729 writeULONG(out, endoffset - strike->indexSubTableLocation);
731 writeULONG(out, numtables); /* numberOfIndexSubTables */
732 rc = fseek(out, endoffset, SEEK_SET);
749 location = ftell(out);
754 rc = fseek(out, table->location + 4, SEEK_SET);
760 writeULONG(out, location - strike->indexSubTableLocation);
761 rc = fseek(out, location, SEEK_SET);
779 writeUSHORT(out, 2);
781 writeUSHORT(out, 3);
783 writeUSHORT(out, 1);
787 writeUSHORT(out, 5);
789 writeUSHORT(out, 2);
791 writeUSHORT(out, 1);
793 writeULONG(out, data_location);
804 writeULONG(out, size); /* imageSize */
806 writeBYTE(out, bitmap->height);
807 writeBYTE(out, bitmap->width);
808 writeCHAR(out, bitmap->horiBearingX);
809 writeCHAR(out, bitmap->horiBearingY);
810 writeBYTE(out, bitmap->advanceWidth);
811 writeCHAR(out, bitmap->horiBearingX); /* vertBearingX */
812 writeCHAR(out, bitmap->horiBearingY); /* vertBearingY */
813 writeBYTE(out, font->metrics.maxAwidth); /* vertAdvance */
821 writeUSHORT(out, offset);
823 writeULONG(out, offset);
827 writeUSHORT(out, table->lastLocation - data_location);
828 writeUSHORT(out, table->lastLocation - data_location);
830 writeULONG(out, table->lastLocation - data_location);
831 writeULONG(out, table->lastLocation - data_location);
834 location = ftell(out);
836 writeCHAR(out, 0);
847 writecmap(FILE* out, FontPtr font)
862 cmap_start = ftell(out);
864 writeUSHORT(out, 0); /* version */
865 writeUSHORT(out, 1); /* number of encoding tables */
866 writeUSHORT(out, 3); /* platform ID */
867 writeUSHORT(out, (font->flags & FACE_SYMBOL) ? 0 : 1);
869 writeULONG(out, 12); /* offset to beginning of subtable */
872 writeUSHORT(out, 4); /* format */
873 writeUSHORT(out, 0xDEAD); /* length */
874 writeUSHORT(out, 0); /* language */
876 writeUSHORT(out, segcount * 2); /* segCountX2 */
877 writeUSHORT(out, 2 * two_log2_floor(segcount)); /* searchRange */
878 writeUSHORT(out, log2_floor(segcount)); /* entrySelector */
879 writeUSHORT(out, 2 * (segcount - two_log2_floor(segcount)));
884 writeUSHORT(out, cmap->endCode);
887 writeUSHORT(out, 0xFFFF);
889 writeUSHORT(out, 0); /* reservedPad */
893 writeUSHORT(out, cmap->startCode);
896 writeUSHORT(out, 0xFFFF);
901 writeUSHORT(out, (cmap->index - cmap->startCode) & 0xFFFF);
904 writeUSHORT(out, 1);
909 writeUSHORT(out, 0);
912 writeUSHORT(out, 0);
916 cmap_end = ftell(out);
917 rc = fseek(out, cmap_start + 12 + 2, SEEK_SET);
922 writeUSHORT(out, cmap_end - cmap_start - 12); /* length */
923 rc = fseek(out, cmap_end, SEEK_SET);
932 writeglyf(FILE* out, FontPtr font)
938 writehhea(FILE* out, FontPtr font)
943 writeULONG(out, 0x00010000); /* version */
944 writeSHORT(out, FONT_UNITS_FLOOR(font->metrics.ascent)); /* ascender */
945 writeSHORT(out, -FONT_UNITS_FLOOR(font->metrics.descent)); /* descender */
946 writeSHORT(out, FONT_UNITS(font->metrics.size - font->metrics.ascent - font->metrics.descent)); /* lineGap */
947 writeUSHORT(out, FONT_UNITS(font->metrics.maxAwidth)); /* advanceWidthMax */
950 writeSHORT(out, FONT_UNITS_FLOOR(font->metrics.minX)); /* minLeftSideBearing */
951 writeSHORT(out, FONT_UNITS_FLOOR(font->metrics.minX)); /* minRightSideBearing */
952 writeSHORT(out, FONT_UNITS_CEIL(font->metrics.maxX)); /* xMaxExtent */
953 writeSHORT(out, den); /* caretSlopeRise */
954 writeSHORT(out, num); /* caretSlopeRun */
955 writeSHORT(out, 0); /* reserved */
956 writeSHORT(out, 0); /* reserved */
957 writeSHORT(out, 0); /* reserved */
958 writeSHORT(out, 0); /* reserved */
959 writeSHORT(out, 0); /* reserved */
960 writeSHORT(out, 0); /* metricDataFormat */
961 writeSHORT(out, nummetrics); /* numberOfHMetrics */
966 writehmtx(FILE* out, FontPtr font)
980 writeSHORT(out, FONT_UNITS(width));
981 writeSHORT(out, FONT_UNITS(lsb));
983 writeSHORT(out, FONT_UNITS(lsb));
990 writeloca(FILE* out, FontPtr font)
994 writeSHORT(out, 0);
996 writeSHORT(out, 0);
1001 writemaxp(FILE* out, FontPtr font)
1003 writeLONG(out, 0x00010000); /* version */
1004 writeUSHORT(out, numglyphs); /* numGlyphs */
1005 writeUSHORT(out, 0); /* maxPoints */
1006 writeUSHORT(out, 0); /* maxContours */
1007 writeUSHORT(out, 0); /* maxCompositePoints */
1008 writeUSHORT(out, 0); /* maxCompositeContours */
1009 writeUSHORT(out, 1); /* maxZones */
1010 writeUSHORT(out, 0); /* maxTwilightPoints */
1011 writeUSHORT(out, 0); /* maxStorage */
1012 writeUSHORT(out, 0); /* maxFunctionDefs */
1013 writeUSHORT(out, 0); /* maxInstructionDefs */
1014 writeUSHORT(out, 0); /* maxStackElements */
1015 writeUSHORT(out, 0); /* maxSizeOfInstructions */
1016 writeUSHORT(out, 0); /* maxComponentElements */
1017 writeUSHORT(out, 0); /* maxComponentDepth */
1022 writename(FILE* out, FontPtr font)
1026 writeUSHORT(out, 0); /* format selector */
1027 writeUSHORT(out, font->numNames);
1028 writeUSHORT(out, 6 + font->numNames * 12); /* offset to string storage */
1031 writeUSHORT(out, 3); /* platform id -- Microsoft */
1032 writeUSHORT(out, 1); /* encoding -- Unicode */
1033 writeUSHORT(out, 0x409); /* language id -- American English */
1034 writeUSHORT(out, font->names[i].nid); /* name id */
1035 writeUSHORT(out, font->names[i].size); /* string length */
1036 writeUSHORT(out, offset); /* string offset */
1040 writeCHARs(out, font->names[i].value, font->names[i].size);
1045 writepost(FILE* out, FontPtr font)
1065 writeULONG(out, 0x00030000); /* FormatType */
1066 writeULONG(out, font->italicAngle); /* italicAngle */
1067 writeSHORT(out, FONT_UNITS(font->metrics.underlinePosition));
1068 writeSHORT(out, FONT_UNITS(font->metrics.underlineThickness));
1069 writeULONG(out, fixed_pitch); /* isFixedPitch */
1070 writeULONG(out, 0); /* minMemType42 */
1071 writeULONG(out, 0); /* maxMemType42 */
1072 writeULONG(out, 0); /* minMemType1 */
1073 writeULONG(out, 0); /* maxMemType1 */
1078 writeOS2(FILE* out, FontPtr font)
1082 writeUSHORT(out, 5); /* version */
1083 writeSHORT(out, FONT_UNITS(font->metrics.awidth)); /* xAvgCharWidth; */
1084 writeUSHORT(out, font->weight); /* usWeightClass; */
1085 writeUSHORT(out, font->width); /* usWidthClass; */
1086 writeSHORT(out, 0); /* fsType; */
1087 writeSHORT(out, UNITS_PER_EM / 5); /* ySubscriptXSize; */
1088 writeSHORT(out, UNITS_PER_EM / 5); /* ySubscriptYSize; */
1089 writeSHORT(out, 0); /* ySubscriptXOffset; */
1090 writeSHORT(out, UNITS_PER_EM / 5); /* ySubscriptYOffset; */
1091 writeSHORT(out, UNITS_PER_EM / 5); /* ySuperscriptXSize; */
1092 writeSHORT(out
1093 writeSHORT(out, 0); /* ySuperscriptXOffset; */
1094 writeSHORT(out, UNITS_PER_EM / 5); /* ySuperscriptYOffset; */
1095 writeSHORT(out, FONT_UNITS(font->metrics.underlineThickness));
1097 writeSHORT(out, UNITS_PER_EM / 4); /* yStrikeoutPosition; */
1098 writeSHORT(out, 0); /* sFamilyClass; */
1100 writeBYTE(out, 0); /* panose; */
1101 writeULONG(out, 0xFFFF); /* ulUnicodeRange1; */
1102 writeULONG(out, 0xFFFF); /* ulUnicodeRange2; */
1103 writeULONG(out, 0x03FF); /* ulUnicodeRange3; */
1104 writeULONG(out, 0U); /* ulUnicodeRange4; */
1105 writeULONG(out, font->foundry); /* achVendID[4]; */
1116 writeUSHORT(out, i); /* fsSelection; */
1117 writeUSHORT(out, 0x20); /* usFirstCharIndex; */
1118 writeUSHORT(out, 0xFFFD); /* usLastCharIndex; */
1119 writeUSHORT(out, FONT_UNITS_FLOOR(font->metrics.ascent)); /* sTypoAscender; */
1120 writeSHORT(out, -FONT_UNITS_FLOOR(font->metrics.descent)); /* sTypoDescender; */
1121 writeSHORT(out, FONT_UNITS(font->metrics.size - font->metrics.ascent - font->metrics.descent)); /* sTypoLineGap */
1123 writeUSHORT(out, FONT_UNITS_FLOOR(font->metrics.ascent)); /* usWinAscent; */
1124 writeUSHORT(out, FONT_UNITS_FLOOR(font->metrics.descent)); /* usWinDescent; */
1126 writeUSHORT(out, FONT_UNITS_FLOOR(font->metrics.maxY)); /* usWinAscent; */
1127 writeUSHORT(out, -FONT_UNITS_FLOOR(font->metrics.minY)); /* usWinDescent; */
1129 writeULONG(out, 3); /* ulCodePageRange1; */
1130 writeULONG(out, 0); /* ulCodePageRange2; */
1131 writeSHORT(out, FONT_UNITS_CEIL(font->metrics.xHeight)); /* sxHeight; */
1132 writeSHORT(out, FONT_UNITS_CEIL(font->metrics.capHeight)); /* sCapHeight; */
1133 writeUSHORT(out, 0); /* usDefaultChar; */
1134 writeUSHORT(out, 20); /* usBreakChar; */
1135 writeUSHORT(out, 0); /* usMaxContext; */
1136 writeUSHORT(out, 0); /* usLowerOpticalPointSize; */
1137 writeUSHORT(out, 0xffff); /* usUpperOpticalPointSize; */
1142 writePCLT(FILE* out, FontPtr font)
1173 writeULONG(out, 0x00010000); /* version */
1174 writeULONG(out, 0); /* FontNumber */
1175 writeUSHORT(out, FONT_UNITS(font->metrics.maxAwidth)); /* pitch */
1176 writeUSHORT(out, FONT_UNITS(font->metrics.xHeight)); /* xHeight */
1177 writeUSHORT(out, style); /* style */
1178 writeUSHORT(out, 6 << 12); /* TypeFamily */
1179 writeUSHORT(out, FONT_UNITS(font->metrics.xHeight)); /* CapHeight */
1180 writeUSHORT(out, 0); /* SymbolSet */
1181 writeCHARs(out, name, 16); /* TypeFace */
1182 writeBYTEs(out, charComplement, 8); /* CharacterComplement */
1183 writeCHARs(out, filename, 6); /* FileName */
1184 writeCHAR(out, strokeWeight); /* StrokeWeight */
1185 writeCHAR(out, widthType); /* WidthType */
1186 writeCHAR(out, 1 << 6); /* SerifStyle */
1187 writeCHAR(out, 0); /* Reserved */