aboutsummaryrefslogtreecommitdiff
path: root/src/main/kotlin/util/render/DrawContextExt.kt
blob: fc38aa6aa26b2e424cfcc40f09e75463df820694 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
package moe.nea.firmament.util.render

import com.mojang.blaze3d.systems.RenderSystem
import me.shedaniel.math.Color
import org.joml.Matrix4f
import net.minecraft.client.gui.DrawContext
import moe.nea.firmament.util.MC

fun DrawContext.isUntranslatedGuiDrawContext(): Boolean {
	return (matrices.peek().positionMatrix.properties() and Matrix4f.PROPERTY_IDENTITY.toInt()) != 0
}

fun DrawContext.drawLine(fromX: Int, fromY: Int, toX: Int, toY: Int, color: Color) {
	// TODO: push scissors
	// TODO: use matrix translations and a different render layer
	if (toY < fromY) {
		drawLine(toX, toY, fromX, fromY, color)
		return
	}
	RenderSystem.lineWidth(MC.window.scaleFactor.toFloat())
	val buf = this.vertexConsumers.getBuffer(RenderInWorldContext.RenderLayers.LINES)
	buf.vertex(fromX.toFloat(), fromY.toFloat(), 0F).color(color.color)
		.normal(toX - fromX.toFloat(), toY - fromY.toFloat(), 0F)
	buf.vertex(toX.toFloat(), toY.toFloat(), 0F).color(color.color)
		.normal(toX - fromX.toFloat(), toY - fromY.toFloat(), 0F)
	this.draw()
}