Compatibility
Minecraft: Java Edition
Platforms
Supported environments
Creators
Details
AxolotlClient Rendering
This library allows for shader-based rendering of some rounded shapes (e.g. rectangles), static SVGs and TrueType fonts.
For SVGs the Apache Batik library is included, for fonts Freetype¹ is used.
For Players
This is a library, you should not need to install it manually. (Unless someone declared their dependencies wrong or forgot to include it)
For Mod Developers
Inclusion in your project
This library is published at https://maven.axolotlclient.com.
dependencies {
modImplementation(include("io.github.axolotlclient.rendering:AxolotlClient-rendering:VERSION+MINECRAFT_VERSION"))
}
Note: you may omit the include statement if you do not want to embed this library into your mod. Make sure to declare your dependencies correctly for launchers to download the library in that case.
Tip: replace
modImplementationwithmodApiif you're writing a library that uses this one!
General Usage
Most methods of this library are accessible using Minecraft's GuiGraphics class via the injected GuiGraphicsExtension interface.
On 1.8.9, since there is no GuiGraphics class you should obtain a GuiGraphicsExtension using DrawUtil.get().
All methods exposed via this way are prefixed with axolotlclient_rendering.
Fonts can be loaded using Font.read(...). If you're using a variant font
this will automatically read the variants and make use of them appropriately,
however the font features supported by FreeType directly are rather limited.
If a specific feature is provided by a separate font file (for example an italic or
bold variant) they can be added using Font#addSubFont, specifying in which conditions it should be used
(some tags and values can be found as static definitions in the Font class).
Projects that use this library
Your project makes use of this library and you would like it to appear here? Let us know!
FAQ
-
I'm using this library on 1.20.1 and the font looks bad
A: Because Minecraft 1.20.1 uses lwjgl 3.3.1 which did not have Freetype bindings yet this library uses STB_Truetype, which does not support hinting (there may also be other bugs we don't know about).
-
But doesn't 1.8.9 use lwjgl2 which is also below 3.3.2?
A: Indeed, however with legacy-lwjgl3 we can run it on lwjgl 3.3.6 where we do have bindings to Freetype.
-
Wouldn't it be possible to use a newer lwjgl on 1.20.1 as well?
A: Yes, but this is more difficult, increases the jar size even further and will produce incompatibilities with mods like sodium which check for which lwjgl version they're running on.
¹See FAQ, answer #1



