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) } }