Fix MC-105406 (OpenGL leak in View Frustum) (#3308)
This commit is contained in:
parent
b0558c63de
commit
9ecb005e98
1 changed files with 21 additions and 13 deletions
|
@ -1,6 +1,14 @@
|
|||
--- ../src-base/minecraft/net/minecraft/client/renderer/RenderGlobal.java
|
||||
+++ ../src-work/minecraft/net/minecraft/client/renderer/RenderGlobal.java
|
||||
@@ -548,8 +548,10 @@
|
||||
@@ -456,6 +456,7 @@
|
||||
{
|
||||
this.field_175009_l.clear();
|
||||
this.field_72755_R.clear();
|
||||
+ if (field_175008_n != null) field_175008_n.func_178160_a(); // Forge: Fix MC-105406
|
||||
this.field_175008_n = null;
|
||||
|
||||
if (this.field_174995_M != null)
|
||||
@@ -548,8 +549,10 @@
|
||||
|
||||
public void func_180446_a(Entity p_180446_1_, ICamera p_180446_2_, float p_180446_3_)
|
||||
{
|
||||
|
@ -11,7 +19,7 @@
|
|||
--this.field_72740_G;
|
||||
}
|
||||
else
|
||||
@@ -560,9 +562,12 @@
|
||||
@@ -560,9 +563,12 @@
|
||||
this.field_72769_h.field_72984_F.func_76320_a("prepare");
|
||||
TileEntityRendererDispatcher.field_147556_a.func_190056_a(this.field_72769_h, this.field_72777_q.func_110434_K(), this.field_72777_q.field_71466_p, this.field_72777_q.func_175606_aa(), this.field_72777_q.field_71476_x, p_180446_3_);
|
||||
this.field_175010_j.func_180597_a(this.field_72769_h, this.field_72777_q.field_71466_p, this.field_72777_q.func_175606_aa(), this.field_72777_q.field_147125_j, this.field_72777_q.field_71474_y, p_180446_3_);
|
||||
|
@ -24,7 +32,7 @@
|
|||
Entity entity = this.field_72777_q.func_175606_aa();
|
||||
double d3 = entity.field_70142_S + (entity.field_70165_t - entity.field_70142_S) * (double)p_180446_3_;
|
||||
double d4 = entity.field_70137_T + (entity.field_70163_u - entity.field_70137_T) * (double)p_180446_3_;
|
||||
@@ -574,11 +579,15 @@
|
||||
@@ -574,11 +580,15 @@
|
||||
this.field_72777_q.field_71460_t.func_180436_i();
|
||||
this.field_72769_h.field_72984_F.func_76318_c("global");
|
||||
List<Entity> list = this.field_72769_h.func_72910_y();
|
||||
|
@ -40,7 +48,7 @@
|
|||
++this.field_72749_I;
|
||||
|
||||
if (entity1.func_145770_h(d0, d1, d2))
|
||||
@@ -601,6 +610,7 @@
|
||||
@@ -601,6 +611,7 @@
|
||||
{
|
||||
for (Entity entity2 : classinheritancemultimap)
|
||||
{
|
||||
|
@ -48,7 +56,7 @@
|
|||
boolean flag = this.field_175010_j.func_178635_a(entity2, p_180446_2_, d0, d1, d2) || entity2.func_184215_y(this.field_72777_q.field_71439_g);
|
||||
|
||||
if (flag)
|
||||
@@ -637,6 +647,7 @@
|
||||
@@ -637,6 +648,7 @@
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -56,7 +64,7 @@
|
|||
if (this.func_174985_d() && (!list1.isEmpty() || this.field_184386_ad))
|
||||
{
|
||||
this.field_72769_h.field_72984_F.func_76318_c("entityOutlines");
|
||||
@@ -676,6 +687,7 @@
|
||||
@@ -676,6 +688,7 @@
|
||||
this.field_72769_h.field_72984_F.func_76318_c("blockentities");
|
||||
RenderHelper.func_74519_b();
|
||||
|
||||
|
@ -64,7 +72,7 @@
|
|||
for (RenderGlobal.ContainerLocalRenderInformation renderglobal$containerlocalrenderinformation1 : this.field_72755_R)
|
||||
{
|
||||
List<TileEntity> list3 = renderglobal$containerlocalrenderinformation1.field_178036_a.func_178571_g().func_178485_b();
|
||||
@@ -684,6 +696,7 @@
|
||||
@@ -684,6 +697,7 @@
|
||||
{
|
||||
for (TileEntity tileentity2 : list3)
|
||||
{
|
||||
|
@ -72,7 +80,7 @@
|
|||
TileEntityRendererDispatcher.field_147556_a.func_180546_a(tileentity2, p_180446_3_, -1);
|
||||
}
|
||||
}
|
||||
@@ -693,9 +706,11 @@
|
||||
@@ -693,9 +707,11 @@
|
||||
{
|
||||
for (TileEntity tileentity : this.field_181024_n)
|
||||
{
|
||||
|
@ -84,7 +92,7 @@
|
|||
|
||||
this.func_180443_s();
|
||||
|
||||
@@ -722,7 +737,7 @@
|
||||
@@ -722,7 +738,7 @@
|
||||
|
||||
Block block = this.field_72769_h.func_180495_p(blockpos).func_177230_c();
|
||||
|
||||
|
@ -93,7 +101,7 @@
|
|||
{
|
||||
TileEntityRendererDispatcher.field_147556_a.func_180546_a(tileentity1, p_180446_3_, destroyblockprogress.func_73106_e());
|
||||
}
|
||||
@@ -1213,6 +1228,13 @@
|
||||
@@ -1213,6 +1229,13 @@
|
||||
|
||||
public void func_174976_a(float p_174976_1_, int p_174976_2_)
|
||||
{
|
||||
|
@ -107,7 +115,7 @@
|
|||
if (this.field_72777_q.field_71441_e.field_73011_w.func_186058_p().func_186068_a() == 1)
|
||||
{
|
||||
this.func_180448_r();
|
||||
@@ -1430,6 +1452,12 @@
|
||||
@@ -1430,6 +1453,12 @@
|
||||
|
||||
public void func_180447_b(float p_180447_1_, int p_180447_2_)
|
||||
{
|
||||
|
@ -120,7 +128,7 @@
|
|||
if (this.field_72777_q.field_71441_e.field_73011_w.func_76569_d())
|
||||
{
|
||||
if (this.field_72777_q.field_71474_y.func_181147_e() == 2)
|
||||
@@ -1857,8 +1885,11 @@
|
||||
@@ -1857,8 +1886,11 @@
|
||||
double d4 = (double)blockpos.func_177956_o() - d1;
|
||||
double d5 = (double)blockpos.func_177952_p() - d2;
|
||||
Block block = this.field_72769_h.func_180495_p(blockpos).func_177230_c();
|
||||
|
@ -133,7 +141,7 @@
|
|||
{
|
||||
if (d3 * d3 + d4 * d4 + d5 * d5 > 1024.0D)
|
||||
{
|
||||
@@ -2304,7 +2335,7 @@
|
||||
@@ -2304,7 +2336,7 @@
|
||||
|
||||
if (block.func_176223_P().func_185904_a() != Material.field_151579_a)
|
||||
{
|
||||
|
|
Loading…
Reference in a new issue