new fontrenderer
This commit is contained in:
parent
dbe4747127
commit
bb37c557ec
File diff suppressed because it is too large
Load Diff
File diff suppressed because one or more lines are too long
|
@ -28,7 +28,8 @@ public class EaglerFontRenderer extends FontRenderer {
|
||||||
|
|
||||||
private final int[] temporaryCodepointArray = new int[6553];
|
private final int[] temporaryCodepointArray = new int[6553];
|
||||||
|
|
||||||
public EaglerFontRenderer(GameSettings gameSettingsIn, ResourceLocation location, TextureManager textureManagerIn, boolean unicode) {
|
public EaglerFontRenderer(GameSettings gameSettingsIn, ResourceLocation location, TextureManager textureManagerIn,
|
||||||
|
boolean unicode) {
|
||||||
super(gameSettingsIn, location, textureManagerIn, unicode);
|
super(gameSettingsIn, location, textureManagerIn, unicode);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -37,7 +38,7 @@ public class EaglerFontRenderer extends FontRenderer {
|
||||||
this.posX = x + (dropShadow ? 1 : 0);
|
this.posX = x + (dropShadow ? 1 : 0);
|
||||||
this.posY = y;
|
this.posY = y;
|
||||||
} else {
|
} else {
|
||||||
if (this.unicodeFlag || !decodeASCIICodepointsAndValidate(text)) {
|
if(this.unicodeFlag || !decodeASCIICodepointsAndValidate(text)) {
|
||||||
return super.drawString(text, x, y, color, dropShadow);
|
return super.drawString(text, x, y, color, dropShadow);
|
||||||
}
|
}
|
||||||
this.resetStyles();
|
this.resetStyles();
|
||||||
|
@ -57,10 +58,10 @@ public class EaglerFontRenderer extends FontRenderer {
|
||||||
}
|
}
|
||||||
|
|
||||||
protected void renderStringAtPos(String parString1, boolean parFlag) {
|
protected void renderStringAtPos(String parString1, boolean parFlag) {
|
||||||
if (parString1 == null) return;
|
if(parString1 == null) return;
|
||||||
if (this.unicodeFlag || !decodeASCIICodepointsAndValidate(parString1)) {
|
if(this.unicodeFlag || !decodeASCIICodepointsAndValidate(parString1)) {
|
||||||
super.renderStringAtPos(parString1, parFlag);
|
super.renderStringAtPos(parString1, parFlag);
|
||||||
} else {
|
}else {
|
||||||
renderStringAtPos0(parString1, false);
|
renderStringAtPos0(parString1, false);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -106,7 +107,8 @@ public class EaglerFontRenderer extends FontRenderer {
|
||||||
this.strikethroughStyle = false;
|
this.strikethroughStyle = false;
|
||||||
this.underlineStyle = false;
|
this.underlineStyle = false;
|
||||||
this.italicStyle = false;
|
this.italicStyle = false;
|
||||||
this.textColor = ((int) (this.alpha * 255.0f) << 24) | ((int) (this.red * 255.0f) << 16) | ((int) (this.green * 255.0f) << 8) | (int) (this.blue * 255.0f);
|
this.textColor = ((int) (this.alpha * 255.0f) << 24) | ((int) (this.red * 255.0f) << 16)
|
||||||
|
| ((int) (this.green * 255.0f) << 8) | (int) (this.blue * 255.0f);
|
||||||
}
|
}
|
||||||
|
|
||||||
++i;
|
++i;
|
||||||
|
@ -115,8 +117,7 @@ public class EaglerFontRenderer extends FontRenderer {
|
||||||
|
|
||||||
if (this.randomStyle && j != -1) {
|
if (this.randomStyle && j != -1) {
|
||||||
int k = this.getCharWidth(c0);
|
int k = this.getCharWidth(c0);
|
||||||
String chars =
|
String chars = "\u00c0\u00c1\u00c2\u00c8\u00ca\u00cb\u00cd\u00d3\u00d4\u00d5\u00da\u00df\u00e3\u00f5\u011f\u0130\u0131\u0152\u0153\u015e\u015f\u0174\u0175\u017e\u0207\u0000\u0000\u0000\u0000\u0000\u0000\u0000 !\"#$%&\'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\]^_`abcdefghijklmnopqrstuvwxyz{|}~\u0000\u00c7\u00fc\u00e9\u00e2\u00e4\u00e0\u00e5\u00e7\u00ea\u00eb\u00e8\u00ef\u00ee\u00ec\u00c4\u00c5\u00c9\u00e6\u00c6\u00f4\u00f6\u00f2\u00fb\u00f9\u00ff\u00d6\u00dc\u00f8\u00a3\u00d8\u00d7\u0192\u00e1\u00ed\u00f3\u00fa\u00f1\u00d1\u00aa\u00ba\u00bf\u00ae\u00ac\u00bd\u00bc\u00a1\u00ab\u00bb\u2591\u2592\u2593\u2502\u2524\u2561\u2562\u2556\u2555\u2563\u2551\u2557\u255d\u255c\u255b\u2510\u2514\u2534\u252c\u251c\u2500\u253c\u255e\u255f\u255a\u2554\u2569\u2566\u2560\u2550\u256c\u2567\u2568\u2564\u2565\u2559\u2558\u2552\u2553\u256b\u256a\u2518\u250c\u2588\u2584\u258c\u2590\u2580\u03b1\u03b2\u0393\u03c0\u03a3\u03c3\u03bc\u03c4\u03a6\u0398\u03a9\u03b4\u221e\u2205\u2208\u2229\u2261\u00b1\u2265\u2264\u2320\u2321\u00f7\u2248\u00b0\u2219\u00b7\u221a\u207f\u00b2\u25a0\u0000";
|
||||||
"\u00c0\u00c1\u00c2\u00c8\u00ca\u00cb\u00cd\u00d3\u00d4\u00d5\u00da\u00df\u00e3\u00f5\u011f\u0130\u0131\u0152\u0153\u015e\u015f\u0174\u0175\u017e\u0207\u0000\u0000\u0000\u0000\u0000\u0000\u0000 !\"#$%&\'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\]^_`abcdefghijklmnopqrstuvwxyz{|}~\u0000\u00c7\u00fc\u00e9\u00e2\u00e4\u00e0\u00e5\u00e7\u00ea\u00eb\u00e8\u00ef\u00ee\u00ec\u00c4\u00c5\u00c9\u00e6\u00c6\u00f4\u00f6\u00f2\u00fb\u00f9\u00ff\u00d6\u00dc\u00f8\u00a3\u00d8\u00d7\u0192\u00e1\u00ed\u00f3\u00fa\u00f1\u00d1\u00aa\u00ba\u00bf\u00ae\u00ac\u00bd\u00bc\u00a1\u00ab\u00bb\u2591\u2592\u2593\u2502\u2524\u2561\u2562\u2556\u2555\u2563\u2551\u2557\u255d\u255c\u255b\u2510\u2514\u2534\u252c\u251c\u2500\u253c\u255e\u255f\u255a\u2554\u2569\u2566\u2560\u2550\u256c\u2567\u2568\u2564\u2565\u2559\u2558\u2552\u2553\u256b\u256a\u2518\u250c\u2588\u2584\u258c\u2590\u2580\u03b1\u03b2\u0393\u03c0\u03a3\u03c3\u03bc\u03c4\u03a6\u0398\u03a9\u03b4\u221e\u2205\u2208\u2229\u2261\u00b1\u2265\u2264\u2320\u2321\u00f7\u2248\u00b0\u2219\u00b7\u221a\u207f\u00b2\u25a0\u0000";
|
|
||||||
|
|
||||||
char c1;
|
char c1;
|
||||||
while (true) {
|
while (true) {
|
||||||
|
@ -134,20 +135,31 @@ public class EaglerFontRenderer extends FontRenderer {
|
||||||
|
|
||||||
if (this.strikethroughStyle) {
|
if (this.strikethroughStyle) {
|
||||||
hasStrike = true;
|
hasStrike = true;
|
||||||
worldrenderer.pos((double) this.posX, (double) (this.posY + (float) (this.FONT_HEIGHT / 2)), 0.0D).endVertex();
|
worldrenderer.pos((double) this.posX, (double) (this.posY + (float) (this.FONT_HEIGHT / 2)), 0.0D)
|
||||||
worldrenderer.pos((double) (this.posX + f), (double) (this.posY + (float) (this.FONT_HEIGHT / 2)), 0.0D).endVertex();
|
.endVertex();
|
||||||
worldrenderer.pos((double) (this.posX + f), (double) (this.posY + (float) (this.FONT_HEIGHT / 2) - 1.0F), 0.0D).endVertex();
|
worldrenderer
|
||||||
worldrenderer.pos((double) this.posX, (double) (this.posY + (float) (this.FONT_HEIGHT / 2) - 1.0F), 0.0D).endVertex();
|
.pos((double) (this.posX + f), (double) (this.posY + (float) (this.FONT_HEIGHT / 2)), 0.0D)
|
||||||
|
.endVertex();
|
||||||
|
worldrenderer.pos((double) (this.posX + f),
|
||||||
|
(double) (this.posY + (float) (this.FONT_HEIGHT / 2) - 1.0F), 0.0D).endVertex();
|
||||||
|
worldrenderer
|
||||||
|
.pos((double) this.posX, (double) (this.posY + (float) (this.FONT_HEIGHT / 2) - 1.0F), 0.0D)
|
||||||
|
.endVertex();
|
||||||
worldrenderer.putColor4(this.textColor);
|
worldrenderer.putColor4(this.textColor);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (this.underlineStyle) {
|
if (this.underlineStyle) {
|
||||||
hasStrike = true;
|
hasStrike = true;
|
||||||
int l = this.underlineStyle ? -1 : 0;
|
int l = this.underlineStyle ? -1 : 0;
|
||||||
worldrenderer.pos((double) (this.posX + (float) l), (double) (this.posY + (float) this.FONT_HEIGHT), 0.0D).endVertex();
|
worldrenderer.pos((double) (this.posX + (float) l),
|
||||||
worldrenderer.pos((double) (this.posX + f), (double) (this.posY + (float) this.FONT_HEIGHT), 0.0D).endVertex();
|
(double) (this.posY + (float) this.FONT_HEIGHT), 0.0D).endVertex();
|
||||||
worldrenderer.pos((double) (this.posX + f), (double) (this.posY + (float) this.FONT_HEIGHT - 1.0F), 0.0D).endVertex();
|
worldrenderer.pos((double) (this.posX + f), (double) (this.posY + (float) this.FONT_HEIGHT), 0.0D)
|
||||||
worldrenderer.pos((double) (this.posX + (float) l), (double) (this.posY + (float) this.FONT_HEIGHT - 1.0F), 0.0D).endVertex();
|
.endVertex();
|
||||||
|
worldrenderer
|
||||||
|
.pos((double) (this.posX + f), (double) (this.posY + (float) this.FONT_HEIGHT - 1.0F), 0.0D)
|
||||||
|
.endVertex();
|
||||||
|
worldrenderer.pos((double) (this.posX + (float) l),
|
||||||
|
(double) (this.posY + (float) this.FONT_HEIGHT - 1.0F), 0.0D).endVertex();
|
||||||
worldrenderer.putColor4(this.textColor);
|
worldrenderer.putColor4(this.textColor);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -157,12 +169,12 @@ public class EaglerFontRenderer extends FontRenderer {
|
||||||
|
|
||||||
float texScale = 0.0625f;
|
float texScale = 0.0625f;
|
||||||
|
|
||||||
if (!hasStrike) {
|
if(!hasStrike) {
|
||||||
worldrenderer.finishDrawing();
|
worldrenderer.finishDrawing();
|
||||||
}
|
}
|
||||||
|
|
||||||
if (parFlag) {
|
if(parFlag) {
|
||||||
if (hasStrike) {
|
if(hasStrike) {
|
||||||
GlStateManager.color(0.25f, 0.25f, 0.25f, 1.0f);
|
GlStateManager.color(0.25f, 0.25f, 0.25f, 1.0f);
|
||||||
GlStateManager.translate(1.0f, 1.0f, 0.0f);
|
GlStateManager.translate(1.0f, 1.0f, 0.0f);
|
||||||
tessellator.draw();
|
tessellator.draw();
|
||||||
|
@ -170,19 +182,19 @@ public class EaglerFontRenderer extends FontRenderer {
|
||||||
GlStateManager.color(1.0f, 1.0f, 1.0f, 1.0f);
|
GlStateManager.color(1.0f, 1.0f, 1.0f, 1.0f);
|
||||||
InstancedFontRenderer.render(8, 8, texScale, texScale, true);
|
InstancedFontRenderer.render(8, 8, texScale, texScale, true);
|
||||||
EaglercraftGPU.renderAgain();
|
EaglercraftGPU.renderAgain();
|
||||||
} else {
|
}else {
|
||||||
GlStateManager.color(1.0f, 1.0f, 1.0f, 1.0f);
|
GlStateManager.color(1.0f, 1.0f, 1.0f, 1.0f);
|
||||||
InstancedFontRenderer.render(8, 8, texScale, texScale, true);
|
InstancedFontRenderer.render(8, 8, texScale, texScale, true);
|
||||||
}
|
}
|
||||||
} else {
|
}else {
|
||||||
GlStateManager.color(1.0f, 1.0f, 1.0f, 1.0f);
|
GlStateManager.color(1.0f, 1.0f, 1.0f, 1.0f);
|
||||||
if (hasStrike) {
|
if(hasStrike) {
|
||||||
tessellator.draw();
|
tessellator.draw();
|
||||||
}
|
}
|
||||||
InstancedFontRenderer.render(8, 8, texScale, texScale, false);
|
InstancedFontRenderer.render(8, 8, texScale, texScale, false);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (parFlag) {
|
if(parFlag) {
|
||||||
this.posX += 1.0f;
|
this.posX += 1.0f;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -190,29 +202,27 @@ public class EaglerFontRenderer extends FontRenderer {
|
||||||
private float appendCharToBuffer(int parInt1, int color, boolean boldStyle, boolean italicStyle) {
|
private float appendCharToBuffer(int parInt1, int color, boolean boldStyle, boolean italicStyle) {
|
||||||
if (parInt1 == 32) {
|
if (parInt1 == 32) {
|
||||||
return 4.0f;
|
return 4.0f;
|
||||||
} else {
|
}else {
|
||||||
int i = parInt1 % 16;
|
int i = parInt1 % 16;
|
||||||
int j = parInt1 / 16;
|
int j = parInt1 / 16;
|
||||||
float w = this.charWidth[parInt1];
|
float w = this.charWidth[parInt1];
|
||||||
if (boldStyle) {
|
if(boldStyle) {
|
||||||
InstancedFontRenderer.appendBoldQuad((int) this.posX, (int) this.posY, i, j, color, italicStyle);
|
InstancedFontRenderer.appendBoldQuad((int)this.posX, (int)this.posY, i, j, color, italicStyle);
|
||||||
++w;
|
++w;
|
||||||
} else {
|
}else {
|
||||||
InstancedFontRenderer.appendQuad((int) this.posX, (int) this.posY, i, j, color, italicStyle);
|
InstancedFontRenderer.appendQuad((int)this.posX, (int)this.posY, i, j, color, italicStyle);
|
||||||
}
|
}
|
||||||
return w;
|
return w;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private boolean decodeASCIICodepointsAndValidate(String str) {
|
private boolean decodeASCIICodepointsAndValidate(String str) {
|
||||||
for (int i = 0, l = str.length(); i < l; ++i) {
|
for(int i = 0, l = str.length(); i < l; ++i) {
|
||||||
int j =
|
int j = "\u00c0\u00c1\u00c2\u00c8\u00ca\u00cb\u00cd\u00d3\u00d4\u00d5\u00da\u00df\u00e3\u00f5\u011f\u0130\u0131\u0152\u0153\u015e\u015f\u0174\u0175\u017e\u0207\u0000\u0000\u0000\u0000\u0000\u0000\u0000 !\"#$%&\'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\]^_`abcdefghijklmnopqrstuvwxyz{|}~\u0000\u00c7\u00fc\u00e9\u00e2\u00e4\u00e0\u00e5\u00e7\u00ea\u00eb\u00e8\u00ef\u00ee\u00ec\u00c4\u00c5\u00c9\u00e6\u00c6\u00f4\u00f6\u00f2\u00fb\u00f9\u00ff\u00d6\u00dc\u00f8\u00a3\u00d8\u00d7\u0192\u00e1\u00ed\u00f3\u00fa\u00f1\u00d1\u00aa\u00ba\u00bf\u00ae\u00ac\u00bd\u00bc\u00a1\u00ab\u00bb\u2591\u2592\u2593\u2502\u2524\u2561\u2562\u2556\u2555\u2563\u2551\u2557\u255d\u255c\u255b\u2510\u2514\u2534\u252c\u251c\u2500\u253c\u255e\u255f\u255a\u2554\u2569\u2566\u2560\u2550\u256c\u2567\u2568\u2564\u2565\u2559\u2558\u2552\u2553\u256b\u256a\u2518\u250c\u2588\u2584\u258c\u2590\u2580\u03b1\u03b2\u0393\u03c0\u03a3\u03c3\u03bc\u03c4\u03a6\u0398\u03a9\u03b4\u221e\u2205\u2208\u2229\u2261\u00b1\u2265\u2264\u2320\u2321\u00f7\u2248\u00b0\u2219\u00b7\u221a\u207f\u00b2\u25a0\u0000\u00a7"
|
||||||
"\u00c0\u00c1\u00c2\u00c8\u00ca\u00cb\u00cd\u00d3\u00d4\u00d5\u00da\u00df\u00e3\u00f5\u011f\u0130\u0131\u0152\u0153\u015e\u015f\u0174\u0175\u017e\u0207\u0000\u0000\u0000\u0000\u0000\u0000\u0000 !\"#$%&\'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\]^_`abcdefghijklmnopqrstuvwxyz{|}~\u0000\u00c7\u00fc\u00e9\u00e2\u00e4\u00e0\u00e5\u00e7\u00ea\u00eb\u00e8\u00ef\u00ee\u00ec\u00c4\u00c5\u00c9\u00e6\u00c6\u00f4\u00f6\u00f2\u00fb\u00f9\u00ff\u00d6\u00dc\u00f8\u00a3\u00d8\u00d7\u0192\u00e1\u00ed\u00f3\u00fa\u00f1\u00d1\u00aa\u00ba\u00bf\u00ae\u00ac\u00bd\u00bc\u00a1\u00ab\u00bb\u2591\u2592\u2593\u2502\u2524\u2561\u2562\u2556\u2555\u2563\u2551\u2557\u255d\u255c\u255b\u2510\u2514\u2534\u252c\u251c\u2500\u253c\u255e\u255f\u255a\u2554\u2569\u2566\u2560\u2550\u256c\u2567\u2568\u2564\u2565\u2559\u2558\u2552\u2553\u256b\u256a\u2518\u250c\u2588\u2584\u258c\u2590\u2580\u03b1\u03b2\u0393\u03c0\u03a3\u03c3\u03bc\u03c4\u03a6\u0398\u03a9\u03b4\u221e\u2205\u2208\u2229\u2261\u00b1\u2265\u2264\u2320\u2321\u00f7\u2248\u00b0\u2219\u00b7\u221a\u207f\u00b2\u25a0\u0000\u00a7".indexOf(
|
.indexOf(str.charAt(i));
|
||||||
str.charAt(i)
|
if(j != -1) {
|
||||||
);
|
|
||||||
if (j != -1) {
|
|
||||||
temporaryCodepointArray[i] = j;
|
temporaryCodepointArray[i] = j;
|
||||||
} else {
|
}else {
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue
Block a user