fix(renderer): adjust text rendering dimensions for alignment in G2DDrawFont
This commit is contained in:
@@ -22,6 +22,7 @@ import de.extio.game_engine.spatial2.SpatialUtils2;
|
|||||||
import de.extio.game_engine.spatial2.model.Area2;
|
import de.extio.game_engine.spatial2.model.Area2;
|
||||||
import de.extio.game_engine.spatial2.model.CoordI2;
|
import de.extio.game_engine.spatial2.model.CoordI2;
|
||||||
import de.extio.game_engine.spatial2.model.ImmutableCoordI2;
|
import de.extio.game_engine.spatial2.model.ImmutableCoordI2;
|
||||||
|
import de.extio.game_engine.spatial2.model.MutableCoordD2;
|
||||||
import de.extio.game_engine.spatial2.model.MutableCoordI2;
|
import de.extio.game_engine.spatial2.model.MutableCoordI2;
|
||||||
|
|
||||||
@Conditional(G2DRendererCondition.class)
|
@Conditional(G2DRendererCondition.class)
|
||||||
@@ -122,20 +123,20 @@ public class G2DDrawFont extends G2DAbstractRenderingBo implements DrawFontRende
|
|||||||
final var line = lines[i];
|
final var line = lines[i];
|
||||||
final var yOffset = this.y + i * lineHeight;
|
final var yOffset = this.y + i * lineHeight;
|
||||||
|
|
||||||
|
final var textDimScaled = ImmutableCoordI2.create((int)(lineDims[i].getX() * scaleFactor), (int)(lineDims[i].getY() * scaleFactor));
|
||||||
switch (this.alignment) {
|
switch (this.alignment) {
|
||||||
case LEFT:
|
case LEFT: {
|
||||||
renderSingleLine(graphics, null, scaleFactor, this.x, yOffset, this.size, line);
|
renderSingleLine(graphics, textDimScaled, scaleFactor, this.x, yOffset, this.size, line);
|
||||||
break;
|
break;
|
||||||
|
}
|
||||||
|
|
||||||
case CENTER: {
|
case CENTER: {
|
||||||
final var textDim = lineDims[i];
|
renderSingleLine(graphics, textDimScaled, scaleFactor, (this.width - lineDims[i].getX()) / 2 + this.x, yOffset, this.size, line);
|
||||||
renderSingleLine(graphics, textDim, scaleFactor, (this.width - textDim.getX()) / 2 + this.x, yOffset, this.size, line);
|
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
case RIGHT: {
|
case RIGHT: {
|
||||||
final var textDim = lineDims[i];
|
renderSingleLine(graphics, textDimScaled, scaleFactor, this.width - lineDims[i].getX() + this.x, yOffset, this.size, line);
|
||||||
renderSingleLine(graphics, textDim, scaleFactor, this.width - textDim.getX() + this.x, yOffset, this.size, line);
|
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -490,14 +490,14 @@ public class DemoModule extends AbstractClientModule {
|
|||||||
.setCustomData2(HorizontalAlignment.LEFT)
|
.setCustomData2(HorizontalAlignment.LEFT)
|
||||||
.setVisible(true)
|
.setVisible(true)
|
||||||
.setEnabled(true)
|
.setEnabled(true)
|
||||||
.withDimensionAbsolute(150, 60)
|
.withDimensionAbsolute(100, 60)
|
||||||
.withPositionRelative(1, y + 2);
|
.withPositionRelative(1, y + 2);
|
||||||
this.scrollArea.putRenderingBo(bo);
|
this.scrollArea.putRenderingBo(bo);
|
||||||
|
|
||||||
bo = this.renderingBoPool.acquire("DemoModule_ScrollAreaWindow_Text_" + i, DrawFontRenderingBo.class)
|
bo = this.renderingBoPool.acquire("DemoModule_ScrollAreaWindow_Text_" + i, DrawFontRenderingBo.class)
|
||||||
.setText(String.valueOf(i))
|
.setText(String.valueOf(i))
|
||||||
.setSize(28)
|
.setSize(28)
|
||||||
.setAlignment(HorizontalAlignment.CENTER)
|
.setAlignment(HorizontalAlignment.RIGHT)
|
||||||
.withDimensionAbsolute(50, 60)
|
.withDimensionAbsolute(50, 60)
|
||||||
.setLayer(RenderingBoLayer.UI0)
|
.setLayer(RenderingBoLayer.UI0)
|
||||||
.withPositionRelative(100, y + 22);
|
.withPositionRelative(100, y + 22);
|
||||||
|
|||||||
Reference in New Issue
Block a user