Class TextFieldObject

java.lang.Object
org.boxutil.units.standard.misc.TextFieldObject

public class TextFieldObject extends Object
Easy way for rendering text anywhere.

The compatibility simple rendering object in lower version, a substitute for TextFieldEntity.

Vanilla supported.

One of the ways for how to change the text content in existed TextData:

 
 TextFieldObject text;
 final var data = text.getTextDataList().get(0); // if the text content was in the index 0
 data.setText("another text");
 // and then call submit
 
 
  • Field Details

    • _DEFAULT_PAD

      protected static final byte _DEFAULT_PAD
      See Also:
    • fontMap

      protected FontMapData fontMap
    • textDataRefreshState

      protected final int[] textDataRefreshState
    • textStateAfterSubmit

      protected final float[] textStateAfterSubmit
    • state

      protected final float[] state
    • _sync_lock

      protected final SpinLock _sync_lock
    • isRefreshRenderingLengthWhenSubmit

      protected boolean isRefreshRenderingLengthWhenSubmit
    • vertexBuffer

      protected FloatBuffer vertexBuffer
    • uvBuffer

      protected FloatBuffer uvBuffer
    • colorBuffer

      protected ByteBuffer colorBuffer
    • _lastTextDataList

      protected List<TextFieldEntity.TextData> _lastTextDataList
    • _lastTextDataState

      protected List<org.lwjgl.util.vector.Vector3f> _lastTextDataState
    • _submitFeedback

      protected TextSubmitFeedbackAPI _submitFeedback
    • alignment

      protected TextFieldEntity.Alignment alignment
  • Constructor Details

    • TextFieldObject

      public TextFieldObject()
    • TextFieldObject

      public TextFieldObject(@NotNull FontMapData map)
    • TextFieldObject

      public TextFieldObject(@NotNull String fontPath)
  • Method Details

    • getFontMap

      public FontMapData getFontMap()
    • setFontMap

      public void setFontMap(@NotNull FontMapData map)
    • setFontMap

      public void setFontMap(@NotNull String fontPath)
    • reset

      public void reset()
    • resetText

      public void resetText()
    • render

      public void render(org.lwjgl.util.vector.Vector2f location, float facing, boolean isAdditiveBlend, @Nullable Color globalColor)
      General rendering method.

      Anchor at top-left.

    • glDraw

      public void glDraw(boolean useVertexColor)
    • createTextData

      protected TextFieldEntity.TextData createTextData(String text, float padding, Color color, boolean italic)
    • addText

      public TextFieldEntity.TextData addText(String text, float padding, Color color, boolean italic)
    • addText

      public TextFieldEntity.TextData addText(String text, float padding, Color color)
    • addText

      public TextFieldEntity.TextData addText(String text, float padding)
    • addText

      public TextFieldEntity.TextData addText(String text)
    • addText

      public TextFieldEntity.TextData addText(String text, Color color)
    • addText

      public TextFieldEntity.TextData addText(String text, boolean italic)
    • replaceTextAtParagraph

      public TextFieldEntity.TextData replaceTextAtParagraph(@NotNull String text, float padding, Color color, boolean italic, int paragraphIndex)
      Parameters:
      padding - offset when line feed.
      Returns:
      the text data previously at the specified position.
    • replaceTextAtParagraph

      public TextFieldEntity.TextData replaceTextAtParagraph(@NotNull String text, float padding, int paragraphIndex)
      Parameters:
      padding - offset when line feed.
      Returns:
      the text data previously at the specified position.
    • replaceTextAtParagraph

      public TextFieldEntity.TextData replaceTextAtParagraph(@NotNull String text, int paragraphIndex)
      Returns:
      the text data previously at the specified position.
    • reallocateBuffer

      protected void reallocateBuffer(int num)
    • submitText

      public byte submitText()
      If insufficient space exists on allocated buffer space, will lose data what the text data is not include in current submit.
      Returns:
      return BoxEnum.STATE_SUCCESS when success.

      return BoxEnum.STATE_FAILED when an empty text data list or refresh count is zero.

      return BoxEnum.STATE_FAILED_OTHER when happened another error.

    • mallocTextData

      public byte mallocTextData(int charNum)
      Optional.

      Just malloc() without any submit call.

      Parameters:
      charNum - must be positive integer.
      Returns:
      return BoxEnum.STATE_SUCCESS when success.

      return BoxEnum.STATE_FAILED when parameter error.

      return BoxEnum.STATE_FAILED_OTHER when happened another error.

    • getSubmitFeedback

      public TextSubmitFeedbackAPI getSubmitFeedback()
    • setSubmitFeedback

      public void setSubmitFeedback(TextSubmitFeedbackAPI plugin)
    • isRefreshRenderingLengthWhenSubmit

      public boolean isRefreshRenderingLengthWhenSubmit()
    • setRefreshRenderingLengthWhenSubmit

      public void setRefreshRenderingLengthWhenSubmit(boolean refresh)
    • getTextDataRefreshIndex

      public int getTextDataRefreshIndex()
    • setTextDataRefreshIndex

      public void setTextDataRefreshIndex(int index)
      Parameters:
      index - Will refresh text data start from the index.
    • setTextDataRefreshSize

      public void setTextDataRefreshSize(int size)
      Parameters:
      size - Will refresh text data count.
    • setTextDataRefreshAllFromCurrentIndex

      public void setTextDataRefreshAllFromCurrentIndex()
    • getTextDataList

      public List<TextFieldEntity.TextData> getTextDataList()
    • getAllocatedValidCharLength

      public int getAllocatedValidCharLength()
    • haveAllocatedValidCharLength

      public boolean haveAllocatedValidCharLength()
    • getValidCharLength

      public int getValidCharLength()
    • isValidRenderingTextField

      public boolean isValidRenderingTextField()
    • setShouldRenderingCharCount

      public void setShouldRenderingCharCount(int charNum)
    • getAlignment

      public TextFieldEntity.Alignment getAlignment()
    • setAlignment

      public void setAlignment(TextFieldEntity.Alignment alignment)
    • getFontWidthSpace

      public float getFontWidthSpace()
    • getFontHeightSpace

      public float getFontHeightSpace()
    • getTextFieldWidth

      public float getTextFieldWidth()
    • getTextFieldHeight

      public float getTextFieldHeight()
    • setFontWidthSpace

      public void setFontWidthSpace(float space)
      Parameters:
      space - interval to previous font.
    • setFontHeightSpace

      public void setFontHeightSpace(float space)
      Parameters:
      space - line interval to previous line of same(only) text data.
    • setFontSpace

      public void setFontSpace(float width, float height)
    • setFieldWidth

      public void setFieldWidth(float width)
    • setFieldHeight

      public void setFieldHeight(float height)
    • setFieldSize

      public void setFieldSize(float width, float height)
    • getCurrentVisualWidth

      public float getCurrentVisualWidth()
      After called submitText().

      But only counts for last submit call, not for the entity.

    • getCurrentVisualHeight

      public float getCurrentVisualHeight()
      After called submitText().
    • getCurrentItalicFactor

      public float getCurrentItalicFactor()
    • setItalicFactor

      public void setItalicFactor(float angle)
      Parameters:
      angle - range at [-90, 90].
    • setItalicFactorDirect

      public void setItalicFactorDirect(float value)
      Parameters:
      value - value of sin, and angle range at [-90, 90].
    • setDefaultItalicFactor

      public void setDefaultItalicFactor()