9
9
import io .karma .pda .api .client .render .shader .uniform .UniformBuffer ;
10
10
import io .karma .pda .api .client .render .shader .uniform .UniformCache ;
11
11
import io .karma .pda .api .dispose .Disposable ;
12
- import io .karma .pda .api .util .HashUtils ;
13
12
import io .karma .pda .api .util .LogMarkers ;
14
13
import io .karma .pda .mod .PDAMod ;
15
14
import it .unimi .dsi .fastutil .objects .Object2IntOpenHashMap ;
@@ -30,18 +29,17 @@ public final class DefaultUniformBuffer implements UniformBuffer, Disposable {
30
29
private final BiConsumer <ShaderProgram , UniformBuffer > bindCallback ;
31
30
private final BiConsumer <ShaderProgram , UniformBuffer > unbindCallback ;
32
31
private final int size ;
33
- private final int bindingPoint ;
34
32
private final Object2IntOpenHashMap <String > fieldOffsets = new Object2IntOpenHashMap <>();
35
- private int id = -1 ;
33
+ private final int id ;
34
+ private int bufferId = -1 ;
36
35
37
36
public DefaultUniformBuffer (final LinkedHashMap <String , Uniform > uniforms ,
38
37
final BiConsumer <ShaderProgram , UniformBuffer > bindCallback ,
39
38
final BiConsumer <ShaderProgram , UniformBuffer > unbindCallback ,
40
- final int bindingPoint ) {
39
+ final int id ) {
41
40
this .bindCallback = bindCallback ;
42
41
this .unbindCallback = unbindCallback ;
43
- this .bindingPoint = bindingPoint ;
44
-
42
+ this .id = id ;
45
43
cache = new DefaultUniformCache (uniforms );
46
44
size = cache .getAll ().values ().stream ().mapToInt (u -> u .getType ().getAlignedSize ()).sum ();
47
45
@@ -61,26 +59,29 @@ public int getId() {
61
59
}
62
60
63
61
@ Override
64
- public int getBindingPoint () {
65
- return bindingPoint ;
62
+ public int getBufferId () {
63
+ return bufferId ;
66
64
}
67
65
68
66
@ Override
69
67
public void setup (final String name , final ShaderProgram program ) {
70
- if (id == -1 ) {
71
- id = GL15 .glGenBuffers ();
72
- GL15 .glBindBuffer (GL33 .GL_UNIFORM_BUFFER , id );
68
+ if (bufferId == -1 ) {
69
+ bufferId = GL15 .glGenBuffers ();
70
+ GL15 .glBindBuffer (GL33 .GL_UNIFORM_BUFFER , bufferId );
73
71
GL15 .glBufferData (GL33 .GL_UNIFORM_BUFFER , size , GL20 .GL_STATIC_DRAW );
74
72
GL15 .glBindBuffer (GL33 .GL_UNIFORM_BUFFER , 0 );
75
- PDAMod .LOGGER .debug (LogMarkers .RENDERER , "Created new uniform buffer object {} with {} bytes" , id , size );
73
+ PDAMod .LOGGER .debug (LogMarkers .RENDERER ,
74
+ "Created new uniform buffer object {} with {} bytes" ,
75
+ bufferId ,
76
+ size );
76
77
}
77
78
final var blockIndex = program .getUniformBlockIndex (name );
78
- GL31 .glUniformBlockBinding (program .getId (), blockIndex , bindingPoint );
79
+ GL31 .glUniformBlockBinding (program .getId (), blockIndex , id );
79
80
PDAMod .LOGGER .debug (LogMarkers .RENDERER ,
80
81
"Associated uniform block index {} with binding point {}" ,
81
82
blockIndex ,
82
- bindingPoint );
83
- GL30 .glBindBufferBase (GL33 .GL_UNIFORM_BUFFER , bindingPoint , id );
83
+ id );
84
+ GL30 .glBindBufferBase (GL33 .GL_UNIFORM_BUFFER , id , bufferId );
84
85
}
85
86
86
87
@ Override
@@ -111,16 +112,16 @@ public int getFieldOffset(final String name) {
111
112
112
113
@ Override
113
114
public void dispose () {
114
- GL15 .glDeleteBuffers (id );
115
+ GL15 .glDeleteBuffers (bufferId );
115
116
}
116
117
117
118
@ Override
118
119
public int hashCode () {
119
- return HashUtils . combine ( bindingPoint , cache .hashCode () );
120
+ return cache .hashCode ();
120
121
}
121
122
122
123
@ Override
123
124
public String toString () {
124
- return String .format ("DefaultUniformBuffer[id=%d,size=%d]" , id , size );
125
+ return String .format ("DefaultUniformBuffer[id=%d,size=%d]" , bufferId , size );
125
126
}
126
127
}
0 commit comments