aboutsummaryrefslogtreecommitdiff
path: root/src/main/kotlin/util/render/FirmamentShaders.kt
diff options
context:
space:
mode:
Diffstat (limited to 'src/main/kotlin/util/render/FirmamentShaders.kt')
-rw-r--r--src/main/kotlin/util/render/FirmamentShaders.kt31
1 files changed, 19 insertions, 12 deletions
diff --git a/src/main/kotlin/util/render/FirmamentShaders.kt b/src/main/kotlin/util/render/FirmamentShaders.kt
index 1094bc2..ba67dbb 100644
--- a/src/main/kotlin/util/render/FirmamentShaders.kt
+++ b/src/main/kotlin/util/render/FirmamentShaders.kt
@@ -1,23 +1,30 @@
package moe.nea.firmament.util.render
-import net.minecraft.client.gl.ShaderProgram
+import net.minecraft.client.gl.Defines
+import net.minecraft.client.gl.ShaderProgramKey
import net.minecraft.client.render.RenderPhase
+import net.minecraft.client.render.VertexFormat
import net.minecraft.client.render.VertexFormats
+import moe.nea.firmament.Firmament
import moe.nea.firmament.annotations.Subscribe
-import moe.nea.firmament.events.RegisterCustomShadersEvent
+import moe.nea.firmament.events.DebugInstantiateEvent
+import moe.nea.firmament.util.MC
object FirmamentShaders {
+ val shaders = mutableListOf<ShaderProgramKey>()
+ private fun shader(name: String, format: VertexFormat, defines: Defines): ShaderProgramKey {
+ val key = ShaderProgramKey(Firmament.identifier(name), format, defines)
+ shaders.add(key)
+ return key
+ }
- private lateinit var _LINES: ShaderProgram
- val LINES = RenderPhase.ShaderProgram({ _LINES })
+ val LINES = RenderPhase.ShaderProgram(shader("core/rendertype_lines", VertexFormats.LINES, Defines.EMPTY))
- @Subscribe
- fun registerCustomShaders(event: RegisterCustomShadersEvent) {
- event.register(
- "firmament_rendertype_lines",
- VertexFormats.LINES,
- { _LINES = it },
- )
- }
+ @Subscribe
+ fun debugLoad(event: DebugInstantiateEvent) {
+ shaders.forEach {
+ MC.instance.shaderLoader.getOrCreateProgram(it)
+ }
+ }
}