瀏覽代碼

prevent clash between buffers in both vertex and fragment shader

Nicolas Cannasse 4 年之前
父節點
當前提交
b986d58343
共有 2 個文件被更改,包括 2 次插入2 次删除
  1. 1 1
      h3d/impl/GlDriver.hx
  2. 1 1
      hxsl/GlslOut.hx

+ 1 - 1
h3d/impl/GlDriver.hx

@@ -379,7 +379,7 @@ class GlDriver extends Driver {
 			t = t.next;
 			t = t.next;
 		}
 		}
 		if( shader.bufferCount > 0 ) {
 		if( shader.bufferCount > 0 ) {
-			s.buffers = [for( i in 0...shader.bufferCount ) gl.getUniformBlockIndex(p.p,"uniform_buffer"+i)];
+			s.buffers = [for( i in 0...shader.bufferCount ) gl.getUniformBlockIndex(p.p,(shader.vertex?"vertex_":"")+"uniform_buffer"+i)];
 			for( i in 0...shader.bufferCount )
 			for( i in 0...shader.bufferCount )
 				gl.uniformBlockBinding(p.p,s.buffers[i],i);
 				gl.uniformBlockBinding(p.p,s.buffers[i],i);
 		}
 		}

+ 1 - 1
hxsl/GlslOut.hx

@@ -176,7 +176,7 @@ class GlslOut {
 			}
 			}
 			add("]");
 			add("]");
 		case TBuffer(t, size):
 		case TBuffer(t, size):
-			add("uniform_buffer"+(uniformBuffer++));
+			add((isVertex ? "vertex_" : "") + "uniform_buffer"+(uniformBuffer++));
 			add(" { ");
 			add(" { ");
 			v.type = TArray(t,size);
 			v.type = TArray(t,size);
 			addVar(v);
 			addVar(v);