Moved to lasted bassbone

This commit is contained in:
Willem Cazander 2024-04-22 20:32:30 +02:00
parent 002f6bcbc4
commit 11989ed12e
26 changed files with 340 additions and 348 deletions

View file

@ -54,7 +54,7 @@ public enum CodePointᶻᴰ {
public static final int MODIFIER_ENVELOP = 0b000000000100000000;
public int getArgument(V036Teger teger, T002ᖟ part) {
int value = teger.partᗅᗷᗷᗅ(part).getNativeValue();
int value = teger.legoᐧtuneᐧᗅᗷᗷᗅ(part).smurfᐧnativeᐧint();
int result = value & MASK_ARGU;
if ((value & MASK_SIGN) != 0) {
result |= 0xFFFFC000;
@ -63,40 +63,40 @@ public enum CodePointᶻᴰ {
}
public void setArgument(V036Teger teger, T002ᖟ part, int number) {
int value = teger.partᗅᗷᗷᗅ(part).getNativeValue();
int value = teger.legoᐧtuneᐧᗅᗷᗷᗅ(part).smurfᐧnativeᐧint();
int result = (value & MASK_CMD) + ((number >> 17) & MASK_SIGN) + (number & MASK_ARGU);
teger.partᗅᗷᗷᗅ(part).setNativeValue(result);
teger.legoᐧtuneᐧᗅᗷᗷᗅ(part).smurfᐧnativeᐧint(result);
}
public int getArgumentUnicode(V036Teger teger) {
int unicode = 0;
unicode += teger.partᗅᗷᗷᗅ(T002ᖟ.PART_1).getNativeValue() & MASK_ARGU+MASK_SIGN;
unicode += (teger.partᗅᗷᗷᗅ(T002ᖟ.PART_2).getNativeValue() & MASK_ARGU+MASK_SIGN) << 15;
unicode += teger.legoᐧtuneᐧᗅᗷᗷᗅ(T002ᖟ.PART_1).smurfᐧnativeᐧint() & MASK_ARGU+MASK_SIGN;
unicode += (teger.legoᐧtuneᐧᗅᗷᗷᗅ(T002ᖟ.PART_2).smurfᐧnativeᐧint() & MASK_ARGU+MASK_SIGN) << 15;
return unicode;
}
public void setArgumentUnicode(V036Teger teger, int unicode) {
int value1 = teger.partᗅᗷᗷᗅ(T002ᖟ.PART_1).getNativeValue();
int value2 = teger.partᗅᗷᗷᗅ(T002ᖟ.PART_2).getNativeValue();
int value1 = teger.legoᐧtuneᐧᗅᗷᗷᗅ(T002ᖟ.PART_1).smurfᐧnativeᐧint();
int value2 = teger.legoᐧtuneᐧᗅᗷᗷᗅ(T002ᖟ.PART_2).smurfᐧnativeᐧint();
value1 = (value1 & MASK_CMD) + (unicode & MASK_ARGU+MASK_SIGN);
value2 = (value2 & MASK_CMD) + ((unicode >> 15) & MASK_ARGU+MASK_SIGN);
teger.partᗅᗷᗷᗅ(T002ᖟ.PART_1).setNativeValue(value1);
teger.partᗅᗷᗷᗅ(T002ᖟ.PART_2).setNativeValue(value2);
teger.legoᐧtuneᐧᗅᗷᗷᗅ(T002ᖟ.PART_1).smurfᐧnativeᐧint(value1);
teger.legoᐧtuneᐧᗅᗷᗷᗅ(T002ᖟ.PART_2).smurfᐧnativeᐧint(value2);
}
public CodePointCommandᶻᴰ getCommand(V036Teger teger) {
int mode = 0;
mode += (teger.partᗅᗷᗷᗅ(T002ᖟ.PART_1).getNativeValue() >> 15) << 0;
mode += (teger.partᗅᗷᗷᗅ(T002ᖟ.PART_2).getNativeValue() >> 15) << 3;
mode += (teger.legoᐧtuneᐧᗅᗷᗷᗅ(T002ᖟ.PART_1).smurfᐧnativeᐧint() >> 15) << 0;
mode += (teger.legoᐧtuneᐧᗅᗷᗷᗅ(T002ᖟ.PART_2).smurfᐧnativeᐧint() >> 15) << 3;
return CodePointCommandᶻᴰ.values()[mode];
}
public void setCommand(V036Teger teger, CodePointCommandᶻᴰ command) {
int mode = command.ordinal();
int value1 = teger.partᗅᗷᗷᗅ(T002ᖟ.PART_1).getNativeValue();
int value2 = teger.partᗅᗷᗷᗅ(T002ᖟ.PART_2).getNativeValue();
teger.partᗅᗷᗷᗅ(T002ᖟ.PART_1).setNativeValue(value1 | (((mode >> 0) << 15)) & MASK_CMD);
teger.partᗅᗷᗷᗅ(T002ᖟ.PART_2).setNativeValue(value2 | (((mode >> 3) << 15)) & MASK_CMD);
int value1 = teger.legoᐧtuneᐧᗅᗷᗷᗅ(T002ᖟ.PART_1).smurfᐧnativeᐧint();
int value2 = teger.legoᐧtuneᐧᗅᗷᗷᗅ(T002ᖟ.PART_2).smurfᐧnativeᐧint();
teger.legoᐧtuneᐧᗅᗷᗷᗅ(T002ᖟ.PART_1).smurfᐧnativeᐧint(value1 | (((mode >> 0) << 15)) & MASK_CMD);
teger.legoᐧtuneᐧᗅᗷᗷᗅ(T002ᖟ.PART_2).smurfᐧnativeᐧint(value2 | (((mode >> 3) << 15)) & MASK_CMD);
}
/**
@ -104,11 +104,11 @@ public enum CodePointᶻᴰ {
*/
public int searchUnicode(List<V072Tong> tongs) {
for (V072Tong tong:tongs) {
if (CodePointCommandᶻᴰ.UNICODE.equals(CodePointᶻᴰ.INSTANCE.getCommand(tong.partᗅᗷᗷᗅ(T002ᖟ.PART_1)))) {
return CodePointᶻᴰ.INSTANCE.getArgumentUnicode(tong.partᗅᗷᗷᗅ(T002ᖟ.PART_1));
if (CodePointCommandᶻᴰ.UNICODE.equals(CodePointᶻᴰ.INSTANCE.getCommand(tong.legoᐧtuneᐧᗅᗷᗷᗅ(T002ᖟ.PART_1)))) {
return CodePointᶻᴰ.INSTANCE.getArgumentUnicode(tong.legoᐧtuneᐧᗅᗷᗷᗅ(T002ᖟ.PART_1));
}
if (CodePointCommandᶻᴰ.UNICODE.equals(CodePointᶻᴰ.INSTANCE.getCommand(tong.partᗅᗷᗷᗅ(T002ᖟ.PART_2)))) {
return CodePointᶻᴰ.INSTANCE.getArgumentUnicode(tong.partᗅᗷᗷᗅ(T002ᖟ.PART_2));
if (CodePointCommandᶻᴰ.UNICODE.equals(CodePointᶻᴰ.INSTANCE.getCommand(tong.legoᐧtuneᐧᗅᗷᗷᗅ(T002ᖟ.PART_2)))) {
return CodePointᶻᴰ.INSTANCE.getArgumentUnicode(tong.legoᐧtuneᐧᗅᗷᗷᗅ(T002ᖟ.PART_2));
}
}
return -1;
@ -120,11 +120,11 @@ public enum CodePointᶻᴰ {
*/
public int searchNumber(List<V072Tong> tongs) {
for (V072Tong tong:tongs) {
if (CodePointCommandᶻᴰ.NUMBER.equals(CodePointᶻᴰ.INSTANCE.getCommand(tong.partᗅᗷᗷᗅ(T002ᖟ.PART_1)))) {
return CodePointᶻᴰ.INSTANCE.getArgumentUnicode(tong.partᗅᗷᗷᗅ(T002ᖟ.PART_1));
if (CodePointCommandᶻᴰ.NUMBER.equals(CodePointᶻᴰ.INSTANCE.getCommand(tong.legoᐧtuneᐧᗅᗷᗷᗅ(T002ᖟ.PART_1)))) {
return CodePointᶻᴰ.INSTANCE.getArgumentUnicode(tong.legoᐧtuneᐧᗅᗷᗷᗅ(T002ᖟ.PART_1));
}
if (CodePointCommandᶻᴰ.NUMBER.equals(CodePointᶻᴰ.INSTANCE.getCommand(tong.partᗅᗷᗷᗅ(T002ᖟ.PART_2)))) {
return CodePointᶻᴰ.INSTANCE.getArgumentUnicode(tong.partᗅᗷᗷᗅ(T002ᖟ.PART_2));
if (CodePointCommandᶻᴰ.NUMBER.equals(CodePointᶻᴰ.INSTANCE.getCommand(tong.legoᐧtuneᐧᗅᗷᗷᗅ(T002ᖟ.PART_2)))) {
return CodePointᶻᴰ.INSTANCE.getArgumentUnicode(tong.legoᐧtuneᐧᗅᗷᗷᗅ(T002ᖟ.PART_2));
}
}
return -1;

View file

@ -51,16 +51,16 @@ public class Stringᶻᴰ {
public V036Teger getCodePointByIndex(int index) {
V072Tong tong = string.get(index >> 1);
if ((index & 1) == 0) {
return tong.partᗅᗷᗷᗅ(T002ᖟ.PART_1);
return tong.legoᐧtuneᐧᗅᗷᗷᗅ(T002ᖟ.PART_1);
} else {
return tong.partᗅᗷᗷᗅ(T002ᖟ.PART_2);
return tong.legoᐧtuneᐧᗅᗷᗷᗅ(T002ᖟ.PART_2);
}
}
public int charSize() {
int result = 0;
for (V072Tong points:string) {
CodePointCommandᶻᴰ cmd = CodePointᶻᴰ.INSTANCE.getCommand(points.partᗅᗷᗷᗅ(T002ᖟ.PART_1));
CodePointCommandᶻᴰ cmd = CodePointᶻᴰ.INSTANCE.getCommand(points.legoᐧtuneᐧᗅᗷᗷᗅ(T002ᖟ.PART_1));
if (cmd == CodePointCommandᶻᴰ.START_LR) {
result++;
} else if (cmd == CodePointCommandᶻᴰ.START_RL) {

View file

@ -34,7 +34,6 @@ import java.util.ArrayList;
import java.util.Base64;
import java.util.List;
import ᒢᐩᐩ.ᒡᒢᑊᒻᒻᓫᔿ.ᣳᣝᐤᣜᣳ.ᒢᓫᑊᐣᑊ.Base2Terminator;
import ᒢᐩᐩ.ᒡᒢᑊᒻᒻᓫᔿ.ᣳᣝᐤᣜᣳ.ᒢᓫᑊᐣᑊ.ᔿᓫᒻᓫᓫ.V072Tong;
import ᒢᐩᐩ.ᔆʸᔆᐪᓫᔿ.ᒃᣔᒃᓫᒻ.ᑊᐣᓑᖮᐪᔆ.DuytsDocAuthor注;
@ -61,7 +60,7 @@ public class FontAtlasStoreGlyph {
public String getBase64() {
ByteArrayOutputStream baos = new ByteArrayOutputStream();
try {
Base2Terminator.INSTANCE.Bãß2WriteTong(tongs, baos);
V072Tong..gearsᐧbuildᐧbyteᐧstreamᐧfromᐧbricks(tongs, baos);
} catch (IOException e) {
throw new RuntimeException(e);
}
@ -72,9 +71,7 @@ public class FontAtlasStoreGlyph {
byte[] decodedBytes = Base64.getDecoder().decode(base64);
ByteArrayInputStream bais = new ByteArrayInputStream(decodedBytes);
try {
List<V072Tong> result = new ArrayList<>();
Base2Terminator.INSTANCE.Bãß2ReadTong(bais, result);
tongs = result;
tongs = V072Tong..gearsᐧbuildᐧbricksᐧfromᐧbyteᐧstream(bais);
} catch (IOException e) {
throw new RuntimeException(e);
}

View file

@ -57,8 +57,8 @@ public class DrawCharacter {
public DrawCharacter(List<V072Tong> tongs) {
this.tongs = tongs;
for (V072Tong tong: tongs) {
processCodePoint(tong.partᗅᗷᗷᗅ(T002ᖟ.PART_1));
processCodePoint(tong.partᗅᗷᗷᗅ(T002ᖟ.PART_2));
processCodePoint(tong.legoᐧtuneᐧᗅᗷᗷᗅ(T002ᖟ.PART_1));
processCodePoint(tong.legoᐧtuneᐧᗅᗷᗷᗅ(T002ᖟ.PART_2));
}
if (currentContour != null) {
contours.add(currentContour);

View file

@ -197,7 +197,7 @@ public class TestConvFont {
} else if ("glyph".equals(qName)) {
if (CodePointCommandᶻᴰ.NOP != CodePointᶻᴰ.INSTANCE.getCommand(point.partᗅᗷᗷᗅ(T002ᖟ.PART_1))) {
if (CodePointCommandᶻᴰ.NOP != CodePointᶻᴰ.INSTANCE.getCommand(point.legoᐧtuneᐧᗅᗷᗷᗅ(T002ᖟ.PART_1))) {
tongs.add(point);
}
glyphCounter++;
@ -242,8 +242,8 @@ public class TestConvFont {
} else if ("glyph".equals(qName)) {
tongs = new ArrayList<>();
point = new V072Tong();
CodePointᶻᴰ.INSTANCE.setCommand(point.partᗅᗷᗷᗅ(T002ᖟ.PART_1), CodePointCommandᶻᴰ.NOP);
CodePointᶻᴰ.INSTANCE.setCommand(point.partᗅᗷᗷᗅ(T002ᖟ.PART_2), CodePointCommandᶻᴰ.NOP);
CodePointᶻᴰ.INSTANCE.setCommand(point.legoᐧtuneᐧᗅᗷᗷᗅ(T002ᖟ.PART_1), CodePointCommandᶻᴰ.NOP);
CodePointᶻᴰ.INSTANCE.setCommand(point.legoᐧtuneᐧᗅᗷᗷᗅ(T002ᖟ.PART_2), CodePointCommandᶻᴰ.NOP);
String unicodeStr = atts.getValue("unicode");
if (unicodeStr.startsWith("0000, ")) {
@ -263,27 +263,27 @@ public class TestConvFont {
V072Tong v2 = new V072Tong();
if (unicodePlane2.isLeftToRight()) {
CodePointᶻᴰ.INSTANCE.setCommand(v0.partᗅᗷᗷᗅ(T002ᖟ.PART_1), CodePointCommandᶻᴰ.START_LR);
CodePointᶻᴰ.INSTANCE.setCommand(v0.legoᐧtuneᐧᗅᗷᗷᗅ(T002ᖟ.PART_1), CodePointCommandᶻᴰ.START_LR);
} else {
CodePointᶻᴰ.INSTANCE.setCommand(v0.partᗅᗷᗷᗅ(T002ᖟ.PART_1), CodePointCommandᶻᴰ.START_RL);
CodePointᶻᴰ.INSTANCE.setCommand(v0.legoᐧtuneᐧᗅᗷᗷᗅ(T002ᖟ.PART_1), CodePointCommandᶻᴰ.START_RL);
}
CodePointᶻᴰ.INSTANCE.setCommand(v0.partᗅᗷᗷᗅ(T002ᖟ.PART_2), CodePointCommandᶻᴰ.UNICODE);
CodePointᶻᴰ.INSTANCE.setArgumentUnicode(v0.partᗅᗷᗷᗅ(T002ᖟ.PART_2), unicode);
CodePointᶻᴰ.INSTANCE.setCommand(v0.legoᐧtuneᐧᗅᗷᗷᗅ(T002ᖟ.PART_2), CodePointCommandᶻᴰ.UNICODE);
CodePointᶻᴰ.INSTANCE.setArgumentUnicode(v0.legoᐧtuneᐧᗅᗷᗷᗅ(T002ᖟ.PART_2), unicode);
CodePointᶻᴰ.INSTANCE.setCommand(v1.partᗅᗷᗷᗅ(T002ᖟ.PART_1), CodePointCommandᶻᴰ.XY_MAX);
CodePointᶻᴰ.INSTANCE.setArgument(v1.partᗅᗷᗷᗅ(T002ᖟ.PART_1), T002ᖟ.PART_1, xMax);
CodePointᶻᴰ.INSTANCE.setArgument(v1.partᗅᗷᗷᗅ(T002ᖟ.PART_1), T002ᖟ.PART_2, yMax);
CodePointᶻᴰ.INSTANCE.setCommand(v1.legoᐧtuneᐧᗅᗷᗷᗅ(T002ᖟ.PART_1), CodePointCommandᶻᴰ.XY_MAX);
CodePointᶻᴰ.INSTANCE.setArgument(v1.legoᐧtuneᐧᗅᗷᗷᗅ(T002ᖟ.PART_1), T002ᖟ.PART_1, xMax);
CodePointᶻᴰ.INSTANCE.setArgument(v1.legoᐧtuneᐧᗅᗷᗷᗅ(T002ᖟ.PART_1), T002ᖟ.PART_2, yMax);
CodePointᶻᴰ.INSTANCE.setCommand(v1.partᗅᗷᗷᗅ(T002ᖟ.PART_2), CodePointCommandᶻᴰ.XY_MIN);
CodePointᶻᴰ.INSTANCE.setArgument(v1.partᗅᗷᗷᗅ(T002ᖟ.PART_2), T002ᖟ.PART_1, xMin);
CodePointᶻᴰ.INSTANCE.setArgument(v1.partᗅᗷᗷᗅ(T002ᖟ.PART_2), T002ᖟ.PART_2, yMin);
CodePointᶻᴰ.INSTANCE.setCommand(v1.legoᐧtuneᐧᗅᗷᗷᗅ(T002ᖟ.PART_2), CodePointCommandᶻᴰ.XY_MIN);
CodePointᶻᴰ.INSTANCE.setArgument(v1.legoᐧtuneᐧᗅᗷᗷᗅ(T002ᖟ.PART_2), T002ᖟ.PART_1, xMin);
CodePointᶻᴰ.INSTANCE.setArgument(v1.legoᐧtuneᐧᗅᗷᗷᗅ(T002ᖟ.PART_2), T002ᖟ.PART_2, yMin);
CodePointᶻᴰ.INSTANCE.setCommand(v2.partᗅᗷᗷᗅ(T002ᖟ.PART_1), CodePointCommandᶻᴰ.ADVANCE);
CodePointᶻᴰ.INSTANCE.setArgument(v2.partᗅᗷᗷᗅ(T002ᖟ.PART_1), T002ᖟ.PART_1, advanceWidth);
CodePointᶻᴰ.INSTANCE.setArgument(v2.partᗅᗷᗷᗅ(T002ᖟ.PART_1), T002ᖟ.PART_2, leftSideBearing);
CodePointᶻᴰ.INSTANCE.setCommand(v2.legoᐧtuneᐧᗅᗷᗷᗅ(T002ᖟ.PART_1), CodePointCommandᶻᴰ.ADVANCE);
CodePointᶻᴰ.INSTANCE.setArgument(v2.legoᐧtuneᐧᗅᗷᗷᗅ(T002ᖟ.PART_1), T002ᖟ.PART_1, advanceWidth);
CodePointᶻᴰ.INSTANCE.setArgument(v2.legoᐧtuneᐧᗅᗷᗷᗅ(T002ᖟ.PART_1), T002ᖟ.PART_2, leftSideBearing);
CodePointᶻᴰ.INSTANCE.setCommand(v2.partᗅᗷᗷᗅ(T002ᖟ.PART_2), CodePointCommandᶻᴰ.NOP);
CodePointᶻᴰ.INSTANCE.setCommand(v2.legoᐧtuneᐧᗅᗷᗷᗅ(T002ᖟ.PART_2), CodePointCommandᶻᴰ.NOP);
tongs.add(v0);
tongs.add(v1);
@ -298,29 +298,29 @@ public class TestConvFont {
int y = (int) Float.parseFloat(atts.getValue("y"));
T002ᖟ part = T002ᖟ.PART_1;
if (CodePointCommandᶻᴰ.NOP != CodePointᶻᴰ.INSTANCE.getCommand(point.partᗅᗷᗷᗅ(T002ᖟ.PART_1))) {
if (CodePointCommandᶻᴰ.NOP != CodePointᶻᴰ.INSTANCE.getCommand(point.legoᐧtuneᐧᗅᗷᗷᗅ(T002ᖟ.PART_1))) {
part = T002ᖟ.PART_2;
}
if (onCurve) {
if (startPoint) {
CodePointᶻᴰ.INSTANCE.setCommand(point.partᗅᗷᗷᗅ(part), CodePointCommandᶻᴰ.XY_ON_CURVE_START);
CodePointᶻᴰ.INSTANCE.setCommand(point.legoᐧtuneᐧᗅᗷᗷᗅ(part), CodePointCommandᶻᴰ.XY_ON_CURVE_START);
} else {
CodePointᶻᴰ.INSTANCE.setCommand(point.partᗅᗷᗷᗅ(part), CodePointCommandᶻᴰ.XY_ON_CURVE);
CodePointᶻᴰ.INSTANCE.setCommand(point.legoᐧtuneᐧᗅᗷᗷᗅ(part), CodePointCommandᶻᴰ.XY_ON_CURVE);
}
} else {
if (startPoint) {
CodePointᶻᴰ.INSTANCE.setCommand(point.partᗅᗷᗷᗅ(part), CodePointCommandᶻᴰ.XY_OFF_CURVE_START);
CodePointᶻᴰ.INSTANCE.setCommand(point.legoᐧtuneᐧᗅᗷᗷᗅ(part), CodePointCommandᶻᴰ.XY_OFF_CURVE_START);
} else {
CodePointᶻᴰ.INSTANCE.setCommand(point.partᗅᗷᗷᗅ(part), CodePointCommandᶻᴰ.XY_OFF_CURVE);
CodePointᶻᴰ.INSTANCE.setCommand(point.legoᐧtuneᐧᗅᗷᗷᗅ(part), CodePointCommandᶻᴰ.XY_OFF_CURVE);
}
}
CodePointᶻᴰ.INSTANCE.setArgument(point.partᗅᗷᗷᗅ(part), T002ᖟ.PART_1, x);
CodePointᶻᴰ.INSTANCE.setArgument(point.partᗅᗷᗷᗅ(part), T002ᖟ.PART_2, y);
CodePointᶻᴰ.INSTANCE.setArgument(point.legoᐧtuneᐧᗅᗷᗷᗅ(part), T002ᖟ.PART_1, x);
CodePointᶻᴰ.INSTANCE.setArgument(point.legoᐧtuneᐧᗅᗷᗷᗅ(part), T002ᖟ.PART_2, y);
if (part == T002ᖟ.PART_2) {
tongs.add(point);
point = new V072Tong();
CodePointᶻᴰ.INSTANCE.setCommand(point.partᗅᗷᗷᗅ(T002ᖟ.PART_1), CodePointCommandᶻᴰ.NOP);
CodePointᶻᴰ.INSTANCE.setCommand(point.partᗅᗷᗷᗅ(T002ᖟ.PART_2), CodePointCommandᶻᴰ.NOP);
CodePointᶻᴰ.INSTANCE.setCommand(point.legoᐧtuneᐧᗅᗷᗷᗅ(T002ᖟ.PART_1), CodePointCommandᶻᴰ.NOP);
CodePointᶻᴰ.INSTANCE.setCommand(point.legoᐧtuneᐧᗅᗷᗷᗅ(T002ᖟ.PART_2), CodePointCommandᶻᴰ.NOP);
}
if (startPoint) {
startPoint = false;