@Override public short readSignedShort() throws IOException { return stream.readSignedShort(); }
/** * This will read the required data from the stream. * * @param ttf The font that is being read. * @param data The stream to read the data from. * @throws IOException If there is an error reading the data. */ public void read(TrueTypeFont ttf, TTFDataStream data) throws IOException { version = data.read32Fixed(); ascender = data.readSignedShort(); descender = data.readSignedShort(); lineGap = data.readSignedShort(); advanceWidthMax = data.readUnsignedShort(); minLeftSideBearing = data.readSignedShort(); minRightSideBearing = data.readSignedShort(); xMaxExtent = data.readSignedShort(); caretSlopeRise = data.readSignedShort(); caretSlopeRun = data.readSignedShort(); reserved1 = data.readSignedShort(); reserved2 = data.readSignedShort(); reserved3 = data.readSignedShort(); reserved4 = data.readSignedShort(); reserved5 = data.readSignedShort(); metricDataFormat = data.readSignedShort(); numberOfHMetrics = data.readUnsignedShort(); initialized = true; }
/** * This will read the required data from the stream. * * @param ttf The font that is being read. * @param data The stream to read the data from. * @throws IOException If there is an error reading the data. */ @Override public void read(TrueTypeFont ttf, TTFDataStream data) throws IOException { version = data.read32Fixed(); ascender = data.readSignedShort(); descender = data.readSignedShort(); lineGap = data.readSignedShort(); advanceHeightMax = data.readUnsignedShort(); minTopSideBearing = data.readSignedShort(); minBottomSideBearing = data.readSignedShort(); yMaxExtent = data.readSignedShort(); caretSlopeRise = data.readSignedShort(); caretSlopeRun = data.readSignedShort(); caretOffset = data.readSignedShort(); reserved1 = data.readSignedShort(); reserved2 = data.readSignedShort(); reserved3 = data.readSignedShort(); reserved4 = data.readSignedShort(); metricDataFormat = data.readSignedShort(); numberOfVMetrics = data.readUnsignedShort(); initialized = true; }
/** * Read a 16.16 fixed value, where the first 16 bits are the decimal and the last 16 bits are the fraction. * * @return A 32 bit value. * @throws IOException If there is an error reading the data. */ public float read32Fixed() throws IOException { float retval = 0; retval = readSignedShort(); retval += (readUnsignedShort() / 65536.0); return retval; }
/** * This will read the required data from the stream. * * @param glyphTable The glyph table this glyph belongs to. * @param data The stream to read the data from. * @param leftSideBearing The left side bearing for this glyph. * @throws IOException If there is an error reading the data. */ public void initData( GlyphTable glyphTable, TTFDataStream data, int leftSideBearing ) throws IOException { numberOfContours = data.readSignedShort(); xMin = data.readSignedShort(); yMin = data.readSignedShort(); xMax = data.readSignedShort(); yMax = data.readSignedShort(); boundingBox = new BoundingBox(xMin, yMin, xMax, yMax); if (numberOfContours >= 0) { // create a simple glyph short x0 = (short) (leftSideBearing - xMin); glyphDescription = new GlyfSimpleDescript(numberOfContours, data, x0); } else { // create a composite glyph glyphDescription = new GlyfCompositeDescript(data, glyphTable); } }
flags = bais.readSignedShort(); argument1 = bais.readSignedShort(); argument2 = bais.readSignedShort(); int i = bais.readSignedShort(); xscale = yscale = i / (double) 0x4000; short i = bais.readSignedShort(); xscale = i / (double) 0x4000; i = bais.readSignedShort(); yscale = i / (double) 0x4000; int i = bais.readSignedShort(); xscale = i / (double) 0x4000; i = bais.readSignedShort(); scale01 = i / (double) 0x4000; i = bais.readSignedShort(); scale10 = i / (double) 0x4000; i = bais.readSignedShort(); yscale = i / (double) 0x4000;
/** * This will read the required data from the stream. * * @param ttf The font that is being read. * @param data The stream to read the data from. * @throws IOException If there is an error reading the data. */ @Override public void read(TrueTypeFont ttf, TTFDataStream data) throws IOException { version = data.read32Fixed(); defaultVertOriginY = data.readSignedShort(); int numVertOriginYMetrics = data.readUnsignedShort(); origins = new ConcurrentHashMap<>(numVertOriginYMetrics); for (int i = 0; i < numVertOriginYMetrics; ++i) { int g = data.readUnsignedShort(); int y = data.readSignedShort(); origins.put(g, y); } initialized = true; }
/** * This will read the required data from the stream. * * @param ttf The font that is being read. * @param data The stream to read the data from. * @throws IOException If there is an error reading the data. */ @Override public void read(TrueTypeFont ttf, TTFDataStream data) throws IOException { version = data.read32Fixed(); fontRevision = data.read32Fixed(); checkSumAdjustment = data.readUnsignedInt(); magicNumber = data.readUnsignedInt(); flags = data.readUnsignedShort(); unitsPerEm = data.readUnsignedShort(); created = data.readInternationalDate(); modified = data.readInternationalDate(); xMin = data.readSignedShort(); yMin = data.readSignedShort(); xMax = data.readSignedShort(); yMax = data.readSignedShort(); macStyle = data.readUnsignedShort(); lowestRecPPEM = data.readUnsignedShort(); fontDirectionHint = data.readSignedShort(); indexToLocFormat = data.readSignedShort(); glyphDataFormat = data.readSignedShort(); initialized = true; } /**
averageCharWidth = data.readSignedShort(); weightClass = data.readUnsignedShort(); widthClass = data.readUnsignedShort(); fsType = data.readSignedShort(); subscriptXSize = data.readSignedShort(); subscriptYSize = data.readSignedShort(); subscriptXOffset = data.readSignedShort(); subscriptYOffset = data.readSignedShort(); superscriptXSize = data.readSignedShort(); superscriptYSize = data.readSignedShort(); superscriptXOffset = data.readSignedShort(); superscriptYOffset = data.readSignedShort(); strikeoutSize = data.readSignedShort(); strikeoutPosition = data.readSignedShort(); familyClass = data.readSignedShort(); panose = data.read(10); unicodeRange1 = data.readUnsignedInt(); firstCharIndex = data.readUnsignedShort(); lastCharIndex = data.readUnsignedShort(); typoAscender = data.readSignedShort(); typoDescender = data.readSignedShort(); typoLineGap = data.readSignedShort(); winAscent = data.readUnsignedShort(); winDescent = data.readUnsignedShort(); sxHeight = data.readSignedShort(); sCapHeight = data.readSignedShort(); usDefaultChar = data.readUnsignedShort();
x += bais.readSignedShort(); y += bais.readSignedShort();
topSideBearing[i] = data.readSignedShort(); bytesRead += 4; additionalTopSideBearing[i] = data.readSignedShort(); bytesRead += 2;
leftSideBearing[i] = data.readSignedShort(); bytesRead += 4; nonHorizontalLeftSideBearing[i] = data.readSignedShort(); bytesRead += 2;
underlinePosition = data.readSignedShort(); underlineThickness = data.readSignedShort(); isFixedPitch = data.readUnsignedInt(); minMemType42 = data.readUnsignedInt();
short idDelta = data.readSignedShort(); int idRangeOffset = data.readUnsignedShort() - (maxSubHeaderIndex + 1 - i - 1) * 8 - 2; subHeaders[i] = new SubHeader(firstCode, entryCount, idDelta, idRangeOffset);
@Override public void read(TTFDataStream data) throws IOException { int numPairs = data.readUnsignedShort(); searchRange = data.readUnsignedShort()/6; int entrySelector = data.readUnsignedShort(); int rangeShift = data.readUnsignedShort(); pairs = new int[numPairs][3]; for (int i = 0; i < numPairs; ++i) { int left = data.readUnsignedShort(); int right = data.readUnsignedShort(); int value = data.readSignedShort(); pairs[i][0] = left; pairs[i][1] = right; pairs[i][2] = value; } }
@Override public short readSignedShort() throws IOException { return stream.readSignedShort(); }
@Override public short readSignedShort() throws IOException { return stream.readSignedShort(); }
private LookupSubTable readLookupSubTable(TTFDataStream data, long offset) throws IOException { data.seek(offset); int substFormat = data.readUnsignedShort(); switch (substFormat) { case 1: { int coverageOffset = data.readUnsignedShort(); short deltaGlyphID = data.readSignedShort(); CoverageTable coverageTable = readCoverageTable(data, offset + coverageOffset); return new LookupTypeSingleSubstFormat1(substFormat, coverageTable, deltaGlyphID); } case 2: { int coverageOffset = data.readUnsignedShort(); int glyphCount = data.readUnsignedShort(); int[] substituteGlyphIDs = new int[glyphCount]; for (int i = 0; i < glyphCount; i++) { substituteGlyphIDs[i] = data.readUnsignedShort(); } CoverageTable coverageTable = readCoverageTable(data, offset + coverageOffset); return new LookupTypeSingleSubstFormat2(substFormat, coverageTable, substituteGlyphIDs); } default: throw new IllegalArgumentException("Unknown substFormat: " + substFormat); } }
/** * Read a 16.16 fixed value, where the first 16 bits are the decimal and the last 16 bits are the fraction. * * @return A 32 bit value. * @throws IOException If there is an error reading the data. */ public float read32Fixed() throws IOException { float retval = 0; retval = readSignedShort(); retval += (readUnsignedShort() / 65536.0); return retval; }
/** * Read a 16.16 fixed value, where the first 16 bits are the decimal and the last 16 bits are the fraction. * * @return A 32 bit value. * @throws IOException If there is an error reading the data. */ public float read32Fixed() throws IOException { float retval = 0; retval = readSignedShort(); retval += (readUnsignedShort() / 65536.0); return retval; }