package com.google.typography.font.tools.subsetter;
import com.google.typography.font.sfntly.Font.Builder;
import com.google.typography.font.sfntly.Tag;
import com.google.typography.font.sfntly.data.WritableFontData;
import com.google.typography.font.sfntly.table.core.HorizontalHeaderTable.Builder;
import java.util.List;
public class HorizontalMetricsTableBuilder
{
private final Font.Builder fontBuilder;
private final List<LongHorMetric> metrics;
public HorizontalMetricsTableBuilder(Font.Builder paramBuilder, List<LongHorMetric> paramList)
{
this.fontBuilder = paramBuilder;
this.metrics = paramList;
}
public void build()
{
int i = this.metrics.size();
if (i <= 0) {
throw new IllegalArgumentException("nMetrics must be positive");
}
int j = ((LongHorMetric)this.metrics.get(i - 1)).advanceWidth;
for (int k = i; (k > 1) && (((LongHorMetric)this.metrics.get(k - 2)).advanceWidth == j); k--) {}
int m = 4 * k + 2 * (i - k);
WritableFontData localWritableFontData = WritableFontData.createWritableFontData(m);
int n = 0;
int i1 = 0;
for (int i2 = 0; i2 < k; i2++)
{
int i3 = ((LongHorMetric)this.metrics.get(i2)).advanceWidth;
i1 = Math.max(i3, i1);
n += localWritableFontData.writeUShort(n, i3);
n += localWritableFontData.writeShort(n, ((LongHorMetric)this.metrics.get(i2)).lsb);
}
for (i2 = k; i2 < i; i2++) {
n += localWritableFontData.writeShort(n, ((LongHorMetric)this.metrics.get(i2)).lsb);
}
this.fontBuilder.newTableBuilder(Tag.hmtx, localWritableFontData);
HorizontalHeaderTable.Builder localBuilder = (HorizontalHeaderTable.Builder)this.fontBuilder.getTableBuilder(Tag.hhea);
localBuilder.setNumberOfHMetrics(k);
localBuilder.setAdvanceWidthMax(i1);
}
public static class LongHorMetric
{
public int advanceWidth;
public int lsb;
public LongHorMetric(int paramInt1, int paramInt2)
{
this.advanceWidth = paramInt1;
this.lsb = paramInt2;
}
}
}
/* Location: C:\Users\Ethan\Desktop\FontZip\FontTool\sfnttool.jar!\com\google\typography\font\tools\subsetter\HorizontalMetricsTableBuilder.class
* Java compiler version: 6 (50.0)
* JD-Core Version: 0.7.1
*/