Skip to content

Commit f655340

Browse files
committed
Use UniformStorage in LegacyLightmapRenderer
1 parent a9f3b5d commit f655340

2 files changed

Lines changed: 32 additions & 40 deletions

File tree

src/main/kotlin/org/visuals/legacy/animatium/handler/rendering/LegacySkyRenderer.kt

Lines changed: 4 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -37,7 +37,6 @@ import org.visuals.legacy.animatium.renderer.DynamicTransforms
3737
import org.visuals.legacy.animatium.renderer.buffer.IndexedGeometry
3838
import org.visuals.legacy.animatium.renderer.vertex.VertexLayouts
3939
import org.visuals.legacy.animatium.util.compatibility.IrisPipeline
40-
import org.visuals.legacy.animatium.util.compatibility.IrisUtil
4140

4241
object LegacySkyRenderer {
4342
private val GET_VOID_BOX_GEOMETRY = { offset: Float ->
@@ -97,14 +96,6 @@ object LegacySkyRenderer {
9796
)
9897
}
9998

100-
init {
101-
IrisUtil.assignPipeline(
102-
IrisPipeline.SKY_BASIC,
103-
AnimatiumPipelines.LEGACY_SKY,
104-
AnimatiumPipelines.LEGACY_SKY_PLANAR_FOG
105-
)
106-
}
107-
10899
@JvmStatic
109100
fun renderBlueVoid(skyColor: Int, depth: Double) {
110101
Renderer.of { "Blue void sky disc" }.use { renderer ->
@@ -121,7 +112,10 @@ object LegacySkyRenderer {
121112
1.0F
122113
)
123114

124-
renderer.setPipeline(AnimatiumPipelines.getSkyPipeline(AnimatiumConfig.instance().other.planarSkyFog))
115+
renderer.setPipeline(
116+
AnimatiumPipelines.getSkyPipeline(AnimatiumConfig.instance().other.planarSkyFog),
117+
IrisPipeline.SKY_BASIC
118+
)
125119
renderer.setUniform(
126120
DynamicTransforms.KEY,
127121
DynamicTransforms.builder()

src/main/kotlin/org/visuals/legacy/animatium/handler/rendering/lighting/lightmap/LegacyLightmapRenderer.kt

Lines changed: 28 additions & 30 deletions
Original file line numberDiff line numberDiff line change
@@ -26,59 +26,57 @@
2626
package org.visuals.legacy.animatium.handler.rendering.lighting.lightmap
2727

2828
import btw.lowercase.renderer.Renderer
29-
import com.mojang.blaze3d.buffers.GpuBuffer
30-
import com.mojang.blaze3d.buffers.Std140Builder
31-
import com.mojang.blaze3d.buffers.Std140SizeCalculator
3229
import com.mojang.blaze3d.textures.GpuTextureView
33-
import net.minecraft.client.renderer.MappableRingBuffer
3430
import net.minecraft.util.profiling.Profiler
3531
import org.visuals.legacy.animatium.handler.rendering.AnimatiumPipelines
3632
import org.visuals.legacy.animatium.renderer.buffer.BasicGeometry
33+
import org.visuals.legacy.animatium.renderer.uniform.UniformKey
34+
import org.visuals.legacy.animatium.renderer.uniform.UniformStorage
3735

3836
class LegacyLightmapRenderer : AutoCloseable {
3937
companion object {
4038
private val BASE_GEOMETRY = BasicGeometry(0, 3)
41-
private val LIGHTMAP_UBO_SIZE = Std140SizeCalculator()
42-
.putFloat() // SkyDarken
43-
.putFloat() // SkyDarkness
44-
.putFloat() // BlockLightRed
45-
.putFloat() // NightVisionScale
46-
.putFloat() // Gamma
47-
.putInt() // UseBrightLightmap
48-
.get()
39+
private val SkyDarken = UniformKey.Float("SkyDarken")
40+
private val SkyDarkness = UniformKey.Float("SkyDarkness")
41+
private val BlockLightRed = UniformKey.Float("BlockLightRed")
42+
private val NightVisionScale = UniformKey.Float("NightVisionScale")
43+
private val Gamma = UniformKey.Float("Gamma")
44+
private val UseBrightLightmap = UniformKey.Integer("UseBrightLightmap")
4945
}
5046

51-
private val ubo = MappableRingBuffer(
52-
{ "Legacy Lightmap UBO" },
53-
GpuBuffer.USAGE_UNIFORM or GpuBuffer.USAGE_MAP_WRITE,
54-
LIGHTMAP_UBO_SIZE
55-
)
47+
private val lightmapInfoUniform = UniformStorage.builder("Legacy Lightmap UBO")
48+
.with(SkyDarken)
49+
.with(SkyDarkness)
50+
.with(BlockLightRed)
51+
.with(NightVisionScale)
52+
.with(Gamma)
53+
.with(UseBrightLightmap)
54+
.build()
5655

5756
fun render(state: LegacyLightmapState, textureView: GpuTextureView) {
5857
if (state.needsUpdate) {
5958
val profiler = Profiler.get()
6059
profiler.push("lightmap")
6160

62-
this.ubo.currentBuffer().map(false, true).use { mappedView ->
63-
Std140Builder.intoBuffer(mappedView.data())
64-
.putFloat(state.skyDarken)
65-
.putFloat(state.skyDarkness)
66-
.putFloat(state.blockLightRed)
67-
.putFloat(state.nightVisionScale)
68-
.putFloat(state.gamma)
69-
.putInt(if (state.useBrightLightmap) 1 else 0)
70-
}
71-
7261
Renderer.of({ "Legacy Lightmap Update" }, textureView).use { renderer ->
7362
renderer.setPipeline(AnimatiumPipelines.LEGACY_LIGHTMAP)
74-
renderer.setUniform("LightmapInfo", this.ubo.currentBuffer())
63+
renderer.setUniform(
64+
"LightmapInfo",
65+
this.lightmapInfoUniform
66+
.set(SkyDarken, state.skyDarken)
67+
.set(SkyDarkness, state.skyDarkness)
68+
.set(BlockLightRed, state.blockLightRed)
69+
.set(NightVisionScale, state.nightVisionScale)
70+
.set(Gamma, state.gamma)
71+
.set(UseBrightLightmap, if (state.useBrightLightmap) 1 else 0)
72+
.upload()
73+
)
7574
renderer.draw(BASE_GEOMETRY)
7675
}
7776

78-
this.ubo.rotate()
7977
profiler.pop()
8078
}
8179
}
8280

83-
override fun close() = this.ubo.close()
81+
override fun close() = this.lightmapInfoUniform.close()
8482
}

0 commit comments

Comments
 (0)