Skip to content

Commit 00ba24b

Browse files
committed
Added progreso_quads_2d layer and shader pipeline, moved drawPicker to Render2D.kt
1 parent 8167c98 commit 00ba24b

File tree

6 files changed

+93
-72
lines changed

6 files changed

+93
-72
lines changed

progreso-client/src/main/kotlin/org/progreso/client/gui/clickgui/element/elements/ColorElement.kt

Lines changed: 12 additions & 63 deletions
Original file line numberDiff line numberDiff line change
@@ -1,20 +1,16 @@
11
package org.progreso.client.gui.clickgui.element.elements
22

3-
import com.mojang.blaze3d.vertex.VertexFormat
43
import net.minecraft.client.gui.DrawContext
5-
import net.minecraft.client.render.RenderLayer
6-
import net.minecraft.client.render.Tessellator
7-
import net.minecraft.client.render.VertexFormats
84
import org.progreso.api.setting.settings.ColorSetting
95
import org.progreso.api.setting.settings.NumberSetting
106
import org.progreso.client.gui.clickgui.element.AbstractChildElement
117
import org.progreso.client.gui.clickgui.element.AbstractChildListElement
128
import org.progreso.client.gui.clickgui.element.ParentElement
139
import org.progreso.client.gui.drawRect
1410
import org.progreso.client.gui.drawTextRelatively
15-
import org.progreso.client.gui.glColors
1611
import org.progreso.client.gui.invoke
1712
import org.progreso.client.util.render.drawCircle
13+
import org.progreso.client.util.render.drawPicker
1814
import org.progreso.client.util.render.render2D
1915
import java.awt.Color
2016
import kotlin.math.max
@@ -78,7 +74,17 @@ class ColorElement(
7874
pickerY = mouseY - y
7975
}
8076

81-
drawPicker(context, x.toFloat(), y.toFloat(), width.toFloat(), this.height.toFloat(), setting.value)
77+
val headerHeight = this.height
78+
79+
render2D(context) {
80+
drawPicker(
81+
x.toFloat(),
82+
y.toFloat(),
83+
width.toFloat(),
84+
headerHeight.toFloat(),
85+
setting.value
86+
)
87+
}
8288

8389
context {
8490
if (pickerX != -1 && pickerY != -1) {
@@ -98,63 +104,6 @@ class ColorElement(
98104

99105
picking = false
100106
}
101-
102-
@Suppress("SameParameterValue")
103-
private fun drawPicker(
104-
context: DrawContext,
105-
x: Float,
106-
y: Float,
107-
width: Float,
108-
height: Float,
109-
color: Color
110-
) {
111-
val (red, green, blue, alpha) = color.glColors
112-
val matrix = context.matrices.peek().positionMatrix
113-
114-
context.matrices.push()
115-
116-
var buffer = Tessellator.getInstance().begin(VertexFormat.DrawMode.QUADS, VertexFormats.POSITION_COLOR)
117-
118-
buffer
119-
.vertex(matrix, x, y, 0f)
120-
.color(1f, 1f, 1f, 1f)
121-
122-
buffer
123-
.vertex(matrix, x, y + height, 0f)
124-
.color(1f, 1f, 1f, 1f)
125-
126-
buffer
127-
.vertex(matrix, x + width, y + height, 0f)
128-
.color(red, green, blue, alpha)
129-
130-
buffer
131-
.vertex(matrix, x + width, y, 0f)
132-
.color(red, green, blue, alpha)
133-
134-
RenderLayer.getGui().draw(buffer.end())
135-
136-
buffer = Tessellator.getInstance().begin(VertexFormat.DrawMode.QUADS, VertexFormats.POSITION_COLOR)
137-
138-
buffer
139-
.vertex(matrix, x, y, 0f)
140-
.color(0f, 0f, 0f, 0f)
141-
142-
buffer
143-
.vertex(matrix, x, y + height, 0f)
144-
.color(0f, 0f, 0f, 1f)
145-
146-
buffer
147-
.vertex(matrix, x + width, y + height, 0f)
148-
.color(0f, 0f, 0f, 1f)
149-
150-
buffer
151-
.vertex(matrix, x + width, y, 0f)
152-
.color(0f, 0f, 0f, 0f)
153-
154-
RenderLayer.getGui().draw(buffer.end())
155-
156-
context.matrices.pop()
157-
}
158107
})
159108

160109
listElements.add(SliderElement(hueSetting, height, this))

progreso-client/src/main/kotlin/org/progreso/client/util/render/Render2D.kt

Lines changed: 53 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -51,6 +51,59 @@ fun Render2DContext.drawCircle(
5151
context.vertexConsumers.draw(layer)
5252
}
5353

54+
fun Render2DContext.drawPicker(
55+
x: Float,
56+
y: Float,
57+
width: Float,
58+
height: Float,
59+
color: Color
60+
) {
61+
val (red, green, blue, alpha) = color.glColors
62+
val matrix = context.matrices.peek().positionMatrix
63+
64+
var layer = Render2DLayers.getQuads()
65+
var buffer = context.vertexConsumers.getBuffer(layer)
66+
67+
buffer
68+
.vertex(matrix, x, y, 0f)
69+
.color(1f, 1f, 1f, 1f)
70+
71+
buffer
72+
.vertex(matrix, x, y + height, 0f)
73+
.color(1f, 1f, 1f, 1f)
74+
75+
buffer
76+
.vertex(matrix, x + width, y + height, 0f)
77+
.color(red, green, blue, alpha)
78+
79+
buffer
80+
.vertex(matrix, x + width, y, 0f)
81+
.color(red, green, blue, alpha)
82+
83+
context.vertexConsumers.draw(layer)
84+
85+
layer = Render2DLayers.getQuads()
86+
buffer = context.vertexConsumers.getBuffer(layer)
87+
88+
buffer
89+
.vertex(matrix, x, y, 0f)
90+
.color(0f, 0f, 0f, 0f)
91+
92+
buffer
93+
.vertex(matrix, x, y + height, 0f)
94+
.color(0f, 0f, 0f, 1f)
95+
96+
buffer
97+
.vertex(matrix, x + width, y + height, 0f)
98+
.color(0f, 0f, 0f, 1f)
99+
100+
buffer
101+
.vertex(matrix, x + width, y, 0f)
102+
.color(0f, 0f, 0f, 0f)
103+
104+
context.vertexConsumers.draw(layer)
105+
}
106+
54107
fun createTextRenderer(
55108
fontName: String,
56109
size: Float,

progreso-client/src/main/kotlin/org/progreso/client/util/render/Render2DLayers.kt

Lines changed: 11 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,13 +4,23 @@ import net.minecraft.client.render.RenderLayer
44

55
object Render2DLayers {
66
private val TRIANGLES: RenderLayer.MultiPhase = RenderLayer.of(
7-
"progreso:triangles",
7+
"progreso:triangles_2d",
88
1536,
99
false,
1010
true,
1111
Render2DShaderPipelines.TRIANGLES,
1212
RenderLayer.MultiPhaseParameters.builder().build(false)
1313
)
1414

15+
private val QUADS: RenderLayer.MultiPhase = RenderLayer.of(
16+
"progreso:quads_2d",
17+
1536,
18+
false,
19+
true,
20+
Render2DShaderPipelines.QUADS,
21+
RenderLayer.MultiPhaseParameters.builder().build(false)
22+
)
23+
1524
fun getTriangles() = TRIANGLES
25+
fun getQuads() = QUADS
1626
}

progreso-client/src/main/kotlin/org/progreso/client/util/render/Render2DShaderPipelines.kt

Lines changed: 10 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,9 +10,18 @@ object Render2DShaderPipelines {
1010
val TRIANGLES: RenderPipeline = RenderPipelines
1111
.register(
1212
RenderPipeline.builder(RenderPipelines.POSITION_COLOR_SNIPPET)
13-
.withLocation("pipeline/progreso_triangles")
13+
.withLocation("pipeline/progreso_triangles_2d")
1414
.withVertexFormat(VertexFormats.POSITION_COLOR, VertexFormat.DrawMode.TRIANGLE_FAN)
1515
.withDepthTestFunction(DepthTestFunction.LEQUAL_DEPTH_TEST)
1616
.build()
1717
)
18+
19+
val QUADS: RenderPipeline = RenderPipelines
20+
.register(
21+
RenderPipeline.builder(RenderPipelines.POSITION_COLOR_SNIPPET)
22+
.withLocation("pipeline/progreso_quads_2d")
23+
.withVertexFormat(VertexFormats.POSITION_COLOR, VertexFormat.DrawMode.QUADS)
24+
.withDepthTestFunction(DepthTestFunction.LEQUAL_DEPTH_TEST)
25+
.build()
26+
)
1827
}

progreso-client/src/main/kotlin/org/progreso/client/util/render/Render3DLayers.kt

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -11,23 +11,23 @@ val vertexConsumerProvider: VertexConsumerProvider.Immediate = mc.bufferBuilders
1111

1212
object RenderLayers {
1313
private val LINES: RenderLayer.MultiPhase = RenderLayer.of(
14-
"progreso:lines", 1536, RenderPipelines.LINES,
14+
"progreso:lines_3d", 1536, RenderPipelines.LINES,
1515
RenderLayer.MultiPhaseParameters.builder()
1616
.lineWidth(LineWidth(OptionalDouble.of(2.0)))
1717
.layering(RenderLayer.VIEW_OFFSET_Z_LAYERING)
1818
.target(RenderLayer.ITEM_ENTITY_TARGET).build(false)
1919
)
2020

2121
private val ESP_LINES: RenderLayer.MultiPhase = RenderLayer.of(
22-
"progreso:esp_lines", 1536, Render3DShaderPipelines.ESP_LINES,
22+
"progreso:esp_lines_3d", 1536, Render3DShaderPipelines.ESP_LINES,
2323
RenderLayer.MultiPhaseParameters.builder()
2424
.lineWidth(LineWidth(OptionalDouble.of(2.0)))
2525
.layering(RenderLayer.VIEW_OFFSET_Z_LAYERING)
2626
.target(RenderLayer.ITEM_ENTITY_TARGET).build(false)
2727
)
2828

2929
private val QUADS: RenderLayer.MultiPhase = RenderLayer.of(
30-
"progreso:quads",
30+
"progreso:quads_3d",
3131
1536,
3232
false,
3333
true,
@@ -36,7 +36,7 @@ object RenderLayers {
3636
)
3737

3838
private val ESP_QUADS: RenderLayer.MultiPhase = RenderLayer.of(
39-
"progreso:esp_quads",
39+
"progreso:esp_quads_3d",
4040
1536,
4141
false,
4242
true,

progreso-client/src/main/kotlin/org/progreso/client/util/render/Render3DShaderPipelines.kt

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -7,22 +7,22 @@ import net.minecraft.client.gl.RenderPipelines
77
object Render3DShaderPipelines {
88
val ESP_LINES: RenderPipeline = RenderPipelines.register(
99
RenderPipeline.builder(RenderPipelines.RENDERTYPE_LINES_SNIPPET)
10-
.withLocation("pipeline/progreso_esp_lines")
10+
.withLocation("pipeline/progreso_esp_lines_3d")
1111
.withDepthTestFunction(DepthTestFunction.NO_DEPTH_TEST).build()
1212
)
1313

1414
val QUADS: RenderPipeline = RenderPipelines
1515
.register(
1616
RenderPipeline.builder(RenderPipelines.POSITION_COLOR_SNIPPET)
17-
.withLocation("pipeline/progreso_quads")
17+
.withLocation("pipeline/progreso_quads_3d")
1818
.withDepthTestFunction(DepthTestFunction.LEQUAL_DEPTH_TEST)
1919
.build()
2020
)
2121

2222
val ESP_QUADS: RenderPipeline = RenderPipelines
2323
.register(
2424
RenderPipeline.builder(RenderPipelines.POSITION_COLOR_SNIPPET)
25-
.withLocation("pipeline/progreso_esp_quads")
25+
.withLocation("pipeline/progreso_esp_quads_3d")
2626
.withDepthTestFunction(DepthTestFunction.NO_DEPTH_TEST).build()
2727
)
2828
}

0 commit comments

Comments
 (0)