Attempt a AIOOB error fix in tesselator when there are alot of transparent blocks in the rendering range.
This commit is contained in:
parent
0d84da021f
commit
51b008c391
1 changed files with 17 additions and 2 deletions
|
@ -96,7 +96,22 @@
|
||||||
int i = this.field_147569_p * 4;
|
int i = this.field_147569_p * 4;
|
||||||
this.reset();
|
this.reset();
|
||||||
return i;
|
return i;
|
||||||
@@ -326,6 +346,19 @@
|
@@ -182,6 +202,14 @@
|
||||||
|
|
||||||
|
public void func_147565_a(TesselatorVertexState p_147565_1_)
|
||||||
|
{
|
||||||
|
+ while (p_147565_1_.func_147572_a().length > rawBufferSize && rawBufferSize > 0)
|
||||||
|
+ {
|
||||||
|
+ rawBufferSize <<= 1;
|
||||||
|
+ }
|
||||||
|
+ if (rawBufferSize > rawBuffer.length)
|
||||||
|
+ {
|
||||||
|
+ rawBuffer = new int[rawBufferSize];
|
||||||
|
+ }
|
||||||
|
System.arraycopy(p_147565_1_.func_147572_a(), 0, this.rawBuffer, 0, p_147565_1_.func_147572_a().length);
|
||||||
|
this.field_147569_p = p_147565_1_.func_147576_b();
|
||||||
|
this.vertexCount = p_147565_1_.func_147575_c();
|
||||||
|
@@ -326,6 +354,19 @@
|
||||||
// JAVADOC METHOD $$ func_78377_a
|
// JAVADOC METHOD $$ func_78377_a
|
||||||
public void addVertex(double par1, double par3, double par5)
|
public void addVertex(double par1, double par3, double par5)
|
||||||
{
|
{
|
||||||
|
@ -116,7 +131,7 @@
|
||||||
++this.addedVertices;
|
++this.addedVertices;
|
||||||
|
|
||||||
if (this.hasTexture)
|
if (this.hasTexture)
|
||||||
@@ -354,12 +387,6 @@
|
@@ -354,12 +395,6 @@
|
||||||
this.rawBuffer[this.field_147569_p + 2] = Float.floatToRawIntBits((float)(par5 + this.zOffset));
|
this.rawBuffer[this.field_147569_p + 2] = Float.floatToRawIntBits((float)(par5 + this.zOffset));
|
||||||
this.field_147569_p += 8;
|
this.field_147569_p += 8;
|
||||||
++this.vertexCount;
|
++this.vertexCount;
|
||||||
|
|
Loading…
Reference in a new issue