Browse Source

ensure 8 bytes alignment on streaming data (fix for some low end android devices)

Nicolas Cannasse 7 years ago
parent
commit
59eccd6eeb
1 changed files with 3 additions and 2 deletions
  1. 3 2
      h3d/impl/GlDriver.hx

+ 3 - 2
h3d/impl/GlDriver.hx

@@ -881,10 +881,11 @@ class GlDriver extends Driver {
 	inline function streamData(data, pos:Int, length:Int) {
 	inline function streamData(data, pos:Int, length:Int) {
 		#if hl
 		#if hl
 		var needed = streamPos + length;
 		var needed = streamPos + length;
-		if( needed > streamLen ) expandStream(needed);
+		var total = (needed + 7) & ~7; // align on 8 bytes
+		if( total > streamLen ) expandStream(total);
 		streamBytes.blit(streamPos, data, pos, length);
 		streamBytes.blit(streamPos, data, pos, length);
 		data = streamBytes.offset(streamPos);
 		data = streamBytes.offset(streamPos);
-		streamPos += length;
+		streamPos = total;
 		#end
 		#end
 		return data;
 		return data;
 	}
 	}