Explorar el Código

Fix compilation for GL

TothBenoit hace 4 meses
padre
commit
2b2c09d577
Se han modificado 1 ficheros con 11 adiciones y 2 borrados
  1. 11 2
      h3d/impl/GlDriver.hx

+ 11 - 2
h3d/impl/GlDriver.hx

@@ -1620,12 +1620,21 @@ class GlDriver extends Driver {
 			size = 2;
 		}
 		#if !js
+		inline function unsafeCastTo<T,R>( v : T, c : Class<R> ) : R {
+			#if (haxe_ver < 5)
+			var arr = new hl.NativeArray<T>(1);
+			arr[0] = v;
+			return (cast arr : hl.NativeArray<R>)[0];
+			#else
+			return hl.Api.unsafeCast(v);
+			#end
+		}
 		if( hasMultiIndirect && commands.data != null ) {
-			var commandOffset : hl.Bytes = hl.Api.unsafeCast(commands.offset * InstanceBuffer.ELEMENT_SIZE);
+			var commandOffset = unsafeCastTo(commands.offset * InstanceBuffer.ELEMENT_SIZE, hl.Bytes);
 			gl.bindBuffer(GL.DRAW_INDIRECT_BUFFER, commands.data);
 			#if (hlsdl >= version("1.15.0"))
 			if ( commands.countBuffer != null && hasMultiIndirectCount ) {
-				var countOffset : hl.Bytes = hl.Api.unsafeCast(commands.countOffset * 4);
+				var countOffset = unsafeCastTo(commands.countOffset * 4, hl.Bytes);
 				gl.bindBuffer(GL.PARAMETER_BUFFER, commands.countBuffer);
 				gl.multiDrawElementsIndirectCount(drawMode, kind, commandOffset, countOffset, commands.commandCount, 0);
 			} else