Class GuiRender

java.lang.Object
top.untold.frostlumen.core.render.GuiRender
All Implemented Interfaces:
ResourceManager
Direct Known Subclasses:
OpenGLGuiRender

public abstract class GuiRender extends Object implements ResourceManager
  • Nested Class Summary

    Nested Classes
    Modifier and Type
    Class
    Description
    protected static final record 
     
  • Field Summary

    Fields
    Modifier and Type
    Field
    Description
    protected final Map<Font,it.unimi.dsi.fastutil.ints.Int2FloatMap>
     
    protected int
     
    protected long
     
    protected final it.unimi.dsi.fastutil.ints.Int2LongMap
     
    protected final Map<String,Font>
     
    protected long
     
    protected final Map<Double,org.lwjgl.util.freetype.FT_Matrix>
     
    protected final Deque<GuiRender.ScissorState>
     
    protected static final ThreadLocal<org.lwjgl.util.freetype.FT_Vector>
     
    protected final long
     

    Fields inherited from interface top.untold.frostlumen.core.render.ResourceManager

    THREAD_LOCAL
  • Constructor Summary

    Constructors
    Constructor
    Description
    GuiRender(long windowHandle)
     
  • Method Summary

    Modifier and Type
    Method
    Description
    protected abstract void
     
    void
     
    protected abstract void
    blurFramebufferRegion(int x, int y, int width, int height, float angle, int radius)
     
    void
    blurRegion(int x, int y, int width, int height, float angle, double strength)
     
    void
     
    protected abstract void
     
    abstract float
    drawGlyph(Font font, int glyphIndex, int fontSize, double italicDegrees, int boldStrength, org.lwjgl.util.freetype.FT_Matrix italicMatrix, float x, float y, int centerX, int centerY, float angle, int aRed, int aGreen, int aBlue, int aAlpha, int bRed, int bGreen, int bBlue, int bAlpha, int cRed, int cGreen, int cBlue, int cAlpha, int dRed, int dGreen, int dBlue, int dAlpha)
     
    void
    drawNiceSliceTexture(NiceSliceType type, int textureId, int textureWidth, int textureHeight, int borderLeft, int borderRight, int borderTop, int borderBottom, int targetMinX, int targetMinY, int targetMaxX, int targetMaxY, float angle, float textureU0, float textureV0, float textureU3, float textureV3, int aRed, int aGreen, int aBlue, int aAlpha, int bRed, int bGreen, int bBlue, int bAlpha, int cRed, int cGreen, int cBlue, int cAlpha, int dRed, int dGreen, int dBlue, int dAlpha, boolean stretchInner)
     
    void
    drawRectangle(int minX, int minY, int maxX, int maxY, float angle, int red, int green, int blue, int alpha)
     
    void
    drawRectangle(int minX, int minY, int maxX, int maxY, float angle, int aRed, int aGreen, int aBlue, int aAlpha, int bRed, int bGreen, int bBlue, int bAlpha, int cRed, int cGreen, int cBlue, int cAlpha, int dRed, int dGreen, int dBlue, int dAlpha)
     
    abstract void
    drawShape(int minX, int minY, int maxX, int maxY, float angle, int aRed, int aGreen, int aBlue, int aAlpha, int bRed, int bGreen, int bBlue, int bAlpha, int cRed, int cGreen, int cBlue, int cAlpha, int dRed, int dGreen, int dBlue, int dAlpha, int aCornerRadii, int bCornerRadii, int cCornerRadii, int dCornerRadii, int aBorderThickness, int bBorderThickness, int cBorderThickness, int dBorderThickness, int borderRed, int borderGreen, int borderBlue, int borderAlpha, ThicknessPosition position)
     
    void
    drawShape(int minX, int minY, int maxX, int maxY, float angle, int red, int green, int blue, int alpha, int aCornerRadii, int bCornerRadii, int cCornerRadii, int dCornerRadii, int aBorderThickness, int bBorderThickness, int cBorderThickness, int dBorderThickness, int borderRed, int borderGreen, int borderBlue, int borderAlpha, ThicknessPosition thicknessPosition)
     
    void
    drawString(String text, Font font, int startDrawX, int startDrawY, float angle, int fontSize, double italicDegrees, int boldStrength, int red, int green, int blue, int alpha)
     
    void
    drawString(String text, Font font, int startDrawX, int startDrawY, float angle, int fontSize, double italicDegrees, int boldStrength, int aRed, int aGreen, int aBlue, int aAlpha, int bRed, int bGreen, int bBlue, int bAlpha, int cRed, int cGreen, int cBlue, int cAlpha, int dRed, int dGreen, int dBlue, int dAlpha)
     
    abstract void
    drawTexture(int textureId, int minX, int minY, int maxX, int maxY, int centerX, int centerY, float angle, float u0, float v0, float u1, float v1, int aRed, int aGreen, int aBlue, int aAlpha, int bRed, int bGreen, int bBlue, int bAlpha, int cRed, int cGreen, int cBlue, int cAlpha, int dRed, int dGreen, int dBlue, int dAlpha)
     
    void
    drawTexture(Texture texture, int minX, int minY, int maxX, int maxY, float angle, float u0, float v0, float u1, float v1, int aRed, int aGreen, int aBlue, int aAlpha, int bRed, int bGreen, int bBlue, int bAlpha, int cRed, int cGreen, int cBlue, int cAlpha, int dRed, int dGreen, int dBlue, int dAlpha)
     
    void
    drawTexture(Texture texture, int minX, int minY, int maxX, int maxY, float angle, int red, int green, int blue, int alpha)
     
    void
    drawTriangle(int ax, int ay, int bx, int by, int cx, int cy, float angle, int aRed, int aGreen, int aBlue, int aAlpha, int bRed, int bGreen, int bBlue, int bAlpha, int cRed, int cGreen, int cBlue, int cAlpha)
     
    abstract void
    drawTriangle(int ax, int ay, int bx, int by, int cx, int cy, int centerX, int centerY, float angle, int aRed, int aGreen, int aBlue, int aAlpha, int bRed, int bGreen, int bBlue, int bAlpha, int cRed, int cGreen, int cBlue, int cAlpha)
     
    void
    enableScissor(int x, int y, int width, int height, float angle, int aCornerRadii, int bCornerRadii, int cCornerRadii, int dCornerRadii)
     
    protected abstract void
     
    protected abstract void
    end()
     
    void
     
     
    protected abstract void
     
    void
     
     
    loadNiceSliceTexture(byte[] data, NiceSliceType type, boolean stretchInner, boolean isLinear, int left, int right, int top, int bottom)
     
    loadNiceSliceTexture(byte[] data, NiceSliceType type, boolean stretchInner, int left, int right, int top, int bottom)
     
    loadNiceSliceTexture(String path, NiceSliceType type, boolean stretchInner, boolean isLinear, int left, int right, int top, int bottom)
     
    loadNiceSliceTexture(String path, NiceSliceType type, boolean stretchInner, int left, int right, int top, int bottom)
     
    loadTexture(byte[] data)
     
    loadTexture(byte[] data, boolean isLinear)
     
     
    loadTexture(String path, boolean isLinear)
     
    protected abstract int
    loadTexture(ByteBuffer data, int width, int height, boolean isLinear)
     
    abstract void
    onFrameBufferSizeChange(int width, int height)
     
    abstract void
     
    abstract void
     
    void
    setCursorMode(int cursorModeInThisFrame)
     
    void
    setCursorMode(CursorMode cursorModeInThisFrame)
     
    void
    setCursorShape(long cursorShapeInThisFrame)
     
    void
    setCursorShape(CursorShape cursorShapeInThisFrame)
     
    abstract void
     

    Methods inherited from class java.lang.Object

    clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
  • Field Details

    • vector

      protected static final ThreadLocal<org.lwjgl.util.freetype.FT_Vector> vector
    • ascenderCache

      protected final Map<Font,it.unimi.dsi.fastutil.ints.Int2FloatMap> ascenderCache
    • italicDegreesCache

      protected final Map<Double,org.lwjgl.util.freetype.FT_Matrix> italicDegreesCache
    • windowHandle

      protected final long windowHandle
    • fontMap

      protected final Map<String,Font> fontMap
    • ftLibrary

      protected long ftLibrary
    • cursorShapeInThisFrame

      protected long cursorShapeInThisFrame
    • cursorModeInThisFrame

      protected int cursorModeInThisFrame
    • cursorShapeMap

      protected final it.unimi.dsi.fastutil.ints.Int2LongMap cursorShapeMap
    • scissorStateDeque

      protected final Deque<GuiRender.ScissorState> scissorStateDeque
  • Constructor Details

    • GuiRender

      public GuiRender(long windowHandle)
  • Method Details

    • drawRectangle

      public void drawRectangle(int minX, int minY, int maxX, int maxY, float angle, int red, int green, int blue, int alpha)
    • drawRectangle

      public void drawRectangle(int minX, int minY, int maxX, int maxY, float angle, int aRed, int aGreen, int aBlue, int aAlpha, int bRed, int bGreen, int bBlue, int bAlpha, int cRed, int cGreen, int cBlue, int cAlpha, int dRed, int dGreen, int dBlue, int dAlpha)
    • drawShape

      public void drawShape(int minX, int minY, int maxX, int maxY, float angle, int red, int green, int blue, int alpha, int aCornerRadii, int bCornerRadii, int cCornerRadii, int dCornerRadii, int aBorderThickness, int bBorderThickness, int cBorderThickness, int dBorderThickness, int borderRed, int borderGreen, int borderBlue, int borderAlpha, ThicknessPosition thicknessPosition)
    • drawTriangle

      public void drawTriangle(int ax, int ay, int bx, int by, int cx, int cy, float angle, int aRed, int aGreen, int aBlue, int aAlpha, int bRed, int bGreen, int bBlue, int bAlpha, int cRed, int cGreen, int cBlue, int cAlpha)
    • drawTriangle

      public abstract void drawTriangle(int ax, int ay, int bx, int by, int cx, int cy, int centerX, int centerY, float angle, int aRed, int aGreen, int aBlue, int aAlpha, int bRed, int bGreen, int bBlue, int bAlpha, int cRed, int cGreen, int cBlue, int cAlpha)
    • drawShape

      public abstract void drawShape(int minX, int minY, int maxX, int maxY, float angle, int aRed, int aGreen, int aBlue, int aAlpha, int bRed, int bGreen, int bBlue, int bAlpha, int cRed, int cGreen, int cBlue, int cAlpha, int dRed, int dGreen, int dBlue, int dAlpha, int aCornerRadii, int bCornerRadii, int cCornerRadii, int dCornerRadii, int aBorderThickness, int bBorderThickness, int cBorderThickness, int dBorderThickness, int borderRed, int borderGreen, int borderBlue, int borderAlpha, ThicknessPosition position)
    • drawTexture

      public abstract void drawTexture(int textureId, int minX, int minY, int maxX, int maxY, int centerX, int centerY, float angle, float u0, float v0, float u1, float v1, int aRed, int aGreen, int aBlue, int aAlpha, int bRed, int bGreen, int bBlue, int bAlpha, int cRed, int cGreen, int cBlue, int cAlpha, int dRed, int dGreen, int dBlue, int dAlpha)
    • drawNiceSliceTexture

      public void drawNiceSliceTexture(NiceSliceType type, int textureId, int textureWidth, int textureHeight, int borderLeft, int borderRight, int borderTop, int borderBottom, int targetMinX, int targetMinY, int targetMaxX, int targetMaxY, float angle, float textureU0, float textureV0, float textureU3, float textureV3, int aRed, int aGreen, int aBlue, int aAlpha, int bRed, int bGreen, int bBlue, int bAlpha, int cRed, int cGreen, int cBlue, int cAlpha, int dRed, int dGreen, int dBlue, int dAlpha, boolean stretchInner)
    • drawTexture

      public void drawTexture(Texture texture, int minX, int minY, int maxX, int maxY, float angle, int red, int green, int blue, int alpha)
    • drawTexture

      public void drawTexture(Texture texture, int minX, int minY, int maxX, int maxY, float angle, float u0, float v0, float u1, float v1, int aRed, int aGreen, int aBlue, int aAlpha, int bRed, int bGreen, int bBlue, int bAlpha, int cRed, int cGreen, int cBlue, int cAlpha, int dRed, int dGreen, int dBlue, int dAlpha)
    • submitBuffer

      public abstract void submitBuffer()
    • beginFrame

      public void beginFrame()
    • endFrame

      public void endFrame()
    • enableScissor

      public void enableScissor(int x, int y, int width, int height, float angle, int aCornerRadii, int bCornerRadii, int cCornerRadii, int dCornerRadii)
    • disableScissor

      public void disableScissor()
    • enableScissorTest

      protected abstract void enableScissorTest(GuiRender.ScissorState[] scissorStates)
    • disableScissorTest

      protected abstract void disableScissorTest()
    • initRender

      public void initRender()
    • init

      protected abstract void init()
    • begin

      protected abstract void begin()
    • saveContext

      public abstract void saveContext()
    • end

      protected abstract void end()
    • restoreContext

      public abstract void restoreContext()
    • loadFont

      public Font loadFont(String path)
      Specified by:
      loadFont in interface ResourceManager
    • drawString

      public void drawString(String text, Font font, int startDrawX, int startDrawY, float angle, int fontSize, double italicDegrees, int boldStrength, int red, int green, int blue, int alpha)
    • drawString

      public void drawString(String text, Font font, int startDrawX, int startDrawY, float angle, int fontSize, double italicDegrees, int boldStrength, int aRed, int aGreen, int aBlue, int aAlpha, int bRed, int bGreen, int bBlue, int bAlpha, int cRed, int cGreen, int cBlue, int cAlpha, int dRed, int dGreen, int dBlue, int dAlpha)
    • drawGlyph

      public abstract float drawGlyph(Font font, int glyphIndex, int fontSize, double italicDegrees, int boldStrength, org.lwjgl.util.freetype.FT_Matrix italicMatrix, float x, float y, int centerX, int centerY, float angle, int aRed, int aGreen, int aBlue, int aAlpha, int bRed, int bGreen, int bBlue, int bAlpha, int cRed, int cGreen, int cBlue, int cAlpha, int dRed, int dGreen, int dBlue, int dAlpha)
    • loadTexture

      public Texture loadTexture(byte[] data)
      Specified by:
      loadTexture in interface ResourceManager
    • loadTexture

      public Texture loadTexture(byte[] data, boolean isLinear)
      Specified by:
      loadTexture in interface ResourceManager
    • loadTexture

      public Texture loadTexture(String path)
      Specified by:
      loadTexture in interface ResourceManager
    • loadTexture

      public Texture loadTexture(String path, boolean isLinear)
      Specified by:
      loadTexture in interface ResourceManager
    • loadNiceSliceTexture

      public Texture loadNiceSliceTexture(byte[] data, NiceSliceType type, boolean stretchInner, int left, int right, int top, int bottom)
      Specified by:
      loadNiceSliceTexture in interface ResourceManager
    • loadNiceSliceTexture

      public Texture loadNiceSliceTexture(byte[] data, NiceSliceType type, boolean stretchInner, boolean isLinear, int left, int right, int top, int bottom)
      Specified by:
      loadNiceSliceTexture in interface ResourceManager
    • loadNiceSliceTexture

      public Texture loadNiceSliceTexture(String path, NiceSliceType type, boolean stretchInner, int left, int right, int top, int bottom)
      Specified by:
      loadNiceSliceTexture in interface ResourceManager
    • loadNiceSliceTexture

      public Texture loadNiceSliceTexture(String path, NiceSliceType type, boolean stretchInner, boolean isLinear, int left, int right, int top, int bottom)
      Specified by:
      loadNiceSliceTexture in interface ResourceManager
    • setCursorShape

      public void setCursorShape(CursorShape cursorShapeInThisFrame)
    • setCursorMode

      public void setCursorMode(int cursorModeInThisFrame)
    • setCursorMode

      public void setCursorMode(CursorMode cursorModeInThisFrame)
    • setCursorShape

      public void setCursorShape(long cursorShapeInThisFrame)
    • loadTexture

      protected abstract int loadTexture(ByteBuffer data, int width, int height, boolean isLinear)
    • onFrameBufferSizeChange

      public abstract void onFrameBufferSizeChange(int width, int height)
    • getProviderType

      public abstract RenderProviderType getProviderType()
    • blurRegion

      public void blurRegion(int x, int y, int width, int height, float angle, double strength)
    • blurFramebufferRegion

      protected abstract void blurFramebufferRegion(int x, int y, int width, int height, float angle, int radius)