49 lines
1.2 KiB
Kotlin
49 lines
1.2 KiB
Kotlin
package net.shadowfacts.cacao.util
|
|
|
|
import com.mojang.blaze3d.platform.GlStateManager
|
|
import net.minecraft.client.gui.DrawableHelper
|
|
import net.shadowfacts.cacao.geometry.Rect
|
|
|
|
/**
|
|
* Helper methods for rendering using Minecraft's utilities from Cacao views.
|
|
* For unit testing, all drawing and OpenGL interaction can be disabled by setting the `cacao.drawing.disabled` JVM property to `true`.
|
|
*
|
|
* @author shadowfacts
|
|
*/
|
|
object RenderHelper {
|
|
|
|
private val disabled = (System.getProperty("cacao.drawing.disabled") ?: "false").toBoolean()
|
|
|
|
/**
|
|
* Draws a solid [rect] filled with the given [color].
|
|
*/
|
|
fun fill(rect: Rect, color: Color) {
|
|
if (disabled) return
|
|
DrawableHelper.fill(rect.left.toInt(), rect.top.toInt(), rect.right.toInt(), rect.bottom.toInt(), color.argb)
|
|
}
|
|
|
|
/**
|
|
* @see org.lwjgl.opengl.GL11.glPushMatrix
|
|
*/
|
|
fun pushMatrix() {
|
|
if (disabled) return
|
|
GlStateManager.pushMatrix()
|
|
}
|
|
|
|
/**
|
|
* @see org.lwjgl.opengl.GL11.glPopMatrix
|
|
*/
|
|
fun popMatrix() {
|
|
if (disabled) return
|
|
GlStateManager.popMatrix()
|
|
}
|
|
|
|
/**
|
|
* @see org.lwjgl.opengl.GL11.glTranslated
|
|
*/
|
|
fun translate(x: Double, y: Double, z: Double = 0.0) {
|
|
if (disabled) return
|
|
GlStateManager.translated(x, y, z)
|
|
}
|
|
|
|
} |