Finish LWJGL fixes

This commit is contained in:
catfoolyou 2025-02-06 15:46:31 -05:00
parent 36c3f15017
commit 56e30eaef1
23 changed files with 103 additions and 184 deletions

View File

@ -1,6 +1,6 @@
<?xml version="1.0" encoding="UTF-8"?> <?xml version="1.0" encoding="UTF-8"?>
<project version="4"> <project version="4">
<component name="CompilerConfiguration"> <component name="CompilerConfiguration">
<bytecodeTargetLevel target="17" /> <bytecodeTargetLevel target="18" />
</component> </component>
</project> </project>

View File

@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8"?> <?xml version="1.0" encoding="UTF-8"?>
<project version="4"> <project version="4">
<component name="ExternalStorageConfigurationManager" enabled="true" /> <component name="ExternalStorageConfigurationManager" enabled="true" />
<component name="ProjectRootManager" version="2" languageLevel="JDK_17" default="true" project-jdk-name="corretto-18" project-jdk-type="JavaSDK" /> <component name="ProjectRootManager" version="2" languageLevel="JDK_18" default="true" project-jdk-name="corretto-18" project-jdk-type="JavaSDK" />
</project> </project>

View File

@ -9,7 +9,7 @@ sourceSets {
main { main {
java { java {
srcDir 'src/main/java' srcDir 'src/main/java'
srcDir 'src/teavm/java' srcDir 'src/lwjgl/java'
} }
} }
} }
@ -24,7 +24,7 @@ tasks.withType(JavaCompile) {
} }
dependencies { dependencies {
//implementation fileTree(dir: './lwjgl-rundir/', include: '*.jar') implementation fileTree(dir: './lwjgl-rundir/', include: '*.jar')
teavm(teavm.libs.jso) teavm(teavm.libs.jso)
teavm(teavm.libs.jsoApis) teavm(teavm.libs.jsoApis)

Binary file not shown.

View File

@ -1,9 +1,7 @@
package net.minecraft.src; package net.minecraft.src;
import java.nio.FloatBuffer; import java.nio.FloatBuffer;
import java.nio.IntBuffer;
import net.lax1dude.eaglercraft.EaglerAdapter; import net.lax1dude.eaglercraft.EaglerAdapter;
import org.lwjgl.util.glu.GLU;
public class ActiveRenderInfo public class ActiveRenderInfo
{ {

View File

@ -2,7 +2,6 @@ package net.minecraft.src;
import net.lax1dude.eaglercraft.TextureLocation; import net.lax1dude.eaglercraft.TextureLocation;
import net.lax1dude.eaglercraft.EaglerAdapter; import net.lax1dude.eaglercraft.EaglerAdapter;
import org.lwjgl.opengl.EaglerAdapter;
public class GuiAchievement extends Gui public class GuiAchievement extends Gui
{ {

View File

@ -1,7 +1,6 @@
package net.minecraft.src; package net.minecraft.src;
import net.lax1dude.eaglercraft.EaglerAdapter; import net.lax1dude.eaglercraft.EaglerAdapter;
import org.lwjgl.opengl.EaglerAdapter;
import net.lax1dude.eaglercraft.adapter.Tessellator; import net.lax1dude.eaglercraft.adapter.Tessellator;
class GuiCreateFlatWorldListSlot extends GuiSlot class GuiCreateFlatWorldListSlot extends GuiSlot

View File

@ -1,7 +1,6 @@
package net.minecraft.src; package net.minecraft.src;
import net.lax1dude.eaglercraft.EaglerAdapter; import net.lax1dude.eaglercraft.EaglerAdapter;
import org.lwjgl.opengl.EaglerAdapter;
import net.lax1dude.eaglercraft.adapter.Tessellator; import net.lax1dude.eaglercraft.adapter.Tessellator;
class GuiFlatPresetsListSlot extends GuiSlot class GuiFlatPresetsListSlot extends GuiSlot

View File

@ -9,7 +9,6 @@ import net.lax1dude.eaglercraft.EaglercraftRandom;
import net.lax1dude.eaglercraft.TextureLocation; import net.lax1dude.eaglercraft.TextureLocation;
import net.lax1dude.eaglercraft.adapter.Tessellator; import net.lax1dude.eaglercraft.adapter.Tessellator;
import net.lax1dude.eaglercraft.EaglerAdapter; import net.lax1dude.eaglercraft.EaglerAdapter;
import org.lwjgl.opengl.EaglerAdapter;
public class GuiIngame extends Gui public class GuiIngame extends Gui
{ {

View File

@ -5,7 +5,6 @@ import java.io.DataOutputStream;
import net.lax1dude.eaglercraft.TextureLocation; import net.lax1dude.eaglercraft.TextureLocation;
import net.lax1dude.eaglercraft.EaglerAdapter; import net.lax1dude.eaglercraft.EaglerAdapter;
import org.lwjgl.opengl.EaglerAdapter;
public class GuiMerchant extends GuiContainer public class GuiMerchant extends GuiContainer
{ {

View File

@ -2,7 +2,6 @@ package net.minecraft.src;
import net.lax1dude.eaglercraft.adapter.Tessellator; import net.lax1dude.eaglercraft.adapter.Tessellator;
import net.lax1dude.eaglercraft.EaglerAdapter; import net.lax1dude.eaglercraft.EaglerAdapter;
import org.lwjgl.opengl.EaglerAdapter;
public class GuiStats extends GuiScreen public class GuiStats extends GuiScreen
{ {

View File

@ -3,8 +3,6 @@ package net.minecraft.src;
import net.lax1dude.eaglercraft.EaglerAdapter; import net.lax1dude.eaglercraft.EaglerAdapter;
import net.lax1dude.eaglercraft.TextureLocation; import net.lax1dude.eaglercraft.TextureLocation;
import net.lax1dude.eaglercraft.adapter.Tessellator; import net.lax1dude.eaglercraft.adapter.Tessellator;
import net.lax1dude.eaglercraft.EaglerAdapter;
import org.lwjgl.opengl.EaglerAdapter;
public class ItemRenderer public class ItemRenderer
{ {

View File

@ -136,7 +136,6 @@ public class Minecraft
private ReloadableResourceManager mcResourceManager; private ReloadableResourceManager mcResourceManager;
private List defaultResourcePacks = new ArrayList<>(); private List defaultResourcePacks = new ArrayList<>();
private DefaultResourcePack mcDefaultResourcePack; private DefaultResourcePack mcDefaultResourcePack;
private ResourcePackRepository mcResourcePackRepository;
/** /**
* Set to true to keep the game loop running. Set to false by shutdown() to allow the game loop to exit cleanly. * Set to true to keep the game loop running. Set to false by shutdown() to allow the game loop to exit cleanly.
@ -2020,11 +2019,6 @@ public class Minecraft
return this.mcResourceManager; return this.mcResourceManager;
} }
public ResourcePackRepository getResourcePackRepository()
{
return this.mcResourcePackRepository;
}
static String getLaunchedVersion(Minecraft par0Minecraft) static String getLaunchedVersion(Minecraft par0Minecraft)
{ {
return "1.6.4"; return "1.6.4";

View File

@ -2,7 +2,6 @@ package net.minecraft.src;
import net.lax1dude.eaglercraft.adapter.Tessellator; import net.lax1dude.eaglercraft.adapter.Tessellator;
import net.lax1dude.eaglercraft.EaglerAdapter; import net.lax1dude.eaglercraft.EaglerAdapter;
import org.lwjgl.opengl.EaglerAdapter;
public class RenderBlocks public class RenderBlocks
{ {

View File

@ -1,6 +1,5 @@
package net.minecraft.src; package net.minecraft.src;
import java.nio.IntBuffer;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.Arrays; import java.util.Arrays;
import java.util.Collections; import java.util.Collections;
@ -13,7 +12,6 @@ import net.lax1dude.eaglercraft.EaglercraftRandom;
import net.lax1dude.eaglercraft.TextureLocation; import net.lax1dude.eaglercraft.TextureLocation;
import net.lax1dude.eaglercraft.adapter.Tessellator; import net.lax1dude.eaglercraft.adapter.Tessellator;
import net.lax1dude.eaglercraft.EaglerAdapter; import net.lax1dude.eaglercraft.EaglerAdapter;
import org.lwjgl.opengl.ARBOcclusionQuery;
public class RenderGlobal implements IWorldAccess public class RenderGlobal implements IWorldAccess
{ {
@ -35,6 +33,7 @@ public class RenderGlobal implements IWorldAccess
/** OpenGL render lists base */ /** OpenGL render lists base */
private int glRenderListBase; private int glRenderListBase;
private int[] glOcclusionQuery;
/** A reference to the Minecraft object. */ /** A reference to the Minecraft object. */
private Minecraft mc; private Minecraft mc;
@ -42,9 +41,6 @@ public class RenderGlobal implements IWorldAccess
/** Global render blocks */ /** Global render blocks */
private RenderBlocks globalRenderBlocks; private RenderBlocks globalRenderBlocks;
/** OpenGL occlusion query base */
private IntBuffer glOcclusionQueryBase;
/** Is occlusion testing enabled */ /** Is occlusion testing enabled */
private boolean occlusionEnabled; private boolean occlusionEnabled;
@ -100,9 +96,6 @@ public class RenderGlobal implements IWorldAccess
/** Count entities hidden */ /** Count entities hidden */
private int countEntitiesHidden; private int countEntitiesHidden;
/** Occlusion query result */
IntBuffer occlusionResult = GLAllocation.createDirectIntBuffer(64);
/** How many renderers are loaded this frame that try to be rendered */ /** How many renderers are loaded this frame that try to be rendered */
private int renderersLoaded; private int renderersLoaded;
@ -155,25 +148,20 @@ public class RenderGlobal implements IWorldAccess
*/ */
int frustumCheckOffset; int frustumCheckOffset;
private int occlusionForcedIndexShift = 0;
public RenderGlobal(Minecraft par1Minecraft, RenderEngine renderEngine) public RenderGlobal(Minecraft par1Minecraft, RenderEngine renderEngine)
{ {
this.mc = par1Minecraft; this.mc = par1Minecraft;
this.renderEngine = renderEngine; this.renderEngine = renderEngine;
byte var2 = 34; byte var2 = 34;
byte var3 = 32; byte var3 = 32;
byte var1 = 16;
this.glRenderListBase = GLAllocation.generateDisplayLists(var2 * var2 * var3 * 3); this.glRenderListBase = GLAllocation.generateDisplayLists(var2 * var2 * var3 * 3);
this.occlusionEnabled = OpenGlCapsChecker.checkARBOcclusion(); this.glOcclusionQuery = new int[var2 * var2 * var1] ;
for(int i = 0; i < glOcclusionQuery.length; ++i) {
if (this.occlusionEnabled) this.glOcclusionQuery[i] = -1;
{
this.occlusionResult.clear();
this.glOcclusionQueryBase = GLAllocation.createDirectIntBuffer(var2 * var2 * var3);
this.glOcclusionQueryBase.clear();
this.glOcclusionQueryBase.position(0);
this.glOcclusionQueryBase.limit(var2 * var2 * var3);
ARBOcclusionQuery.glGenQueriesARB(this.glOcclusionQueryBase);
} }
this.starGLCallList = GLAllocation.generateDisplayLists(3); this.starGLCallList = GLAllocation.generateDisplayLists(3);
EaglerAdapter.glPushMatrix(); EaglerAdapter.glPushMatrix();
EaglerAdapter.glNewList(this.starGLCallList, EaglerAdapter.GL_COMPILE); EaglerAdapter.glNewList(this.starGLCallList, EaglerAdapter.GL_COMPILE);
@ -355,12 +343,6 @@ public class RenderGlobal implements IWorldAccess
for (int var6 = 0; var6 < this.renderChunksDeep; ++var6) for (int var6 = 0; var6 < this.renderChunksDeep; ++var6)
{ {
this.worldRenderers[(var6 * this.renderChunksTall + var5) * this.renderChunksWide + var4] = new WorldRenderer(this.theWorld, this.tileEntities, var4 * 16, var5 * 16, var6 * 16, this.glRenderListBase + var2); this.worldRenderers[(var6 * this.renderChunksTall + var5) * this.renderChunksWide + var4] = new WorldRenderer(this.theWorld, this.tileEntities, var4 * 16, var5 * 16, var6 * 16, this.glRenderListBase + var2);
if (this.occlusionEnabled)
{
this.worldRenderers[(var6 * this.renderChunksTall + var5) * this.renderChunksWide + var4].glOcclusionQuery = this.glOcclusionQueryBase.get(var3);
}
this.worldRenderers[(var6 * this.renderChunksTall + var5) * this.renderChunksWide + var4].isWaitingOnOcclusionQuery = false; this.worldRenderers[(var6 * this.renderChunksTall + var5) * this.renderChunksWide + var4].isWaitingOnOcclusionQuery = false;
this.worldRenderers[(var6 * this.renderChunksTall + var5) * this.renderChunksWide + var4].isVisible = true; this.worldRenderers[(var6 * this.renderChunksTall + var5) * this.renderChunksWide + var4].isVisible = true;
this.worldRenderers[(var6 * this.renderChunksTall + var5) * this.renderChunksWide + var4].isInFrustum = true; this.worldRenderers[(var6 * this.renderChunksTall + var5) * this.renderChunksWide + var4].isInFrustum = true;
@ -569,6 +551,8 @@ public class RenderGlobal implements IWorldAccess
} }
} }
private long lastOcclusionQuery = 0l;
/** /**
* Sorts all renderers based on the passed in entity. Args: entityLiving, renderPass, partialTickTime * Sorts all renderers based on the passed in entity. Args: entityLiving, renderPass, partialTickTime
*/ */
@ -607,6 +591,10 @@ public class RenderGlobal implements IWorldAccess
double var13 = par1EntityLivingBase.posY - this.prevSortY; double var13 = par1EntityLivingBase.posY - this.prevSortY;
double var15 = par1EntityLivingBase.posZ - this.prevSortZ; double var15 = par1EntityLivingBase.posZ - this.prevSortZ;
int fx = MathHelper.floor_double(var33);
int fy = MathHelper.floor_double(var7);
int fz = MathHelper.floor_double(var9);
if (var11 * var11 + var13 * var13 + var15 * var15 > 16.0D) if (var11 * var11 + var13 * var13 + var15 * var15 > 16.0D)
{ {
this.prevSortX = par1EntityLivingBase.posX; this.prevSortX = par1EntityLivingBase.posX;
@ -616,144 +604,104 @@ public class RenderGlobal implements IWorldAccess
Arrays.sort(this.sortedWorldRenderers, new EntitySorter(par1EntityLivingBase)); Arrays.sort(this.sortedWorldRenderers, new EntitySorter(par1EntityLivingBase));
} }
fx = fx >> 4;
fy = MathHelper.floor_double(var7 + par1EntityLivingBase.getEyeHeight()) >> 4;
fz = fz >> 4;
RenderHelper.disableStandardItemLighting(); RenderHelper.disableStandardItemLighting();
byte var17 = 0; byte var17 = 0;
int var34; int var34;
if (this.occlusionEnabled && this.mc.gameSettings.advancedOpengl && !this.mc.gameSettings.anaglyph && par2 == 0) long queryRate = 50l;
{
byte var18 = 0;
int var19 = 16;
this.checkOcclusionQueryResult(var18, var19);
for (int var20 = var18; var20 < var19; ++var20) long ct = EaglerAdapter.steadyTimeMillis();
{
this.sortedWorldRenderers[var20].isVisible = true; if(par2 == 0) {
for (int i = 0; i < this.sortedWorldRenderers.length; ++i) {
WorldRenderer c = this.sortedWorldRenderers[i];
int ccx = c.posXPlus - fx;
int ccy = c.posYPlus - fy;
int ccz = c.posZPlus - fz;
boolean forced = ccx < 2 && ccx > -2 && ccy < 2 && ccy > -2 && ccz < 2 && ccz > -2;
if(forced || c.chunkIndex == -1) {
c.isVisible = true;
}else if(c.isWaitingOnOcclusionQuery) {
int j = glOcclusionQuery[c.chunkIndex];
if(EaglerAdapter.glGetQueryResultAvailable(j)) {
c.isVisible = EaglerAdapter.glGetQueryResult(j);
c.isWaitingOnOcclusionQuery = false;
}
}
} }
var34 = var17 + this.renderSortedRenderers(var18, var19, par2, par3);
do
{
int var35 = var19;
var19 *= 2;
if (var19 > this.sortedWorldRenderers.length)
{
var19 = this.sortedWorldRenderers.length;
}
EaglerAdapter.glDisable(EaglerAdapter.GL_TEXTURE_2D);
EaglerAdapter.glDisable(EaglerAdapter.GL_LIGHTING);
EaglerAdapter.glDisable(EaglerAdapter.GL_ALPHA_TEST);
EaglerAdapter.glDisable(EaglerAdapter.GL_FOG);
EaglerAdapter.glColorMask(false, false, false, false);
EaglerAdapter.glDepthMask(false);
this.checkOcclusionQueryResult(var35, var19);
EaglerAdapter.glPushMatrix();
float var36 = 0.0F;
float var21 = 0.0F;
float var22 = 0.0F;
for (int var23 = var35; var23 < var19; ++var23)
{
if (this.sortedWorldRenderers[var23].skipAllRenderPasses())
{
this.sortedWorldRenderers[var23].isInFrustum = false;
}
else
{
if (!this.sortedWorldRenderers[var23].isInFrustum)
{
this.sortedWorldRenderers[var23].isVisible = true;
}
if (this.sortedWorldRenderers[var23].isInFrustum && !this.sortedWorldRenderers[var23].isWaitingOnOcclusionQuery)
{
float var24 = MathHelper.sqrt_float(this.sortedWorldRenderers[var23].distanceToEntitySquared(par1EntityLivingBase));
int var25 = (int)(1.0F + var24 / 128.0F);
if (this.cloudTickCounter % var25 == var23 % var25)
{
WorldRenderer var26 = this.sortedWorldRenderers[var23];
float var27 = (float)((double)var26.posXMinus - var33);
float var28 = (float)((double)var26.posYMinus - var7);
float var29 = (float)((double)var26.posZMinus - var9);
float var30 = var27 - var36;
float var31 = var28 - var21;
float var32 = var29 - var22;
if (var30 != 0.0F || var31 != 0.0F || var32 != 0.0F)
{
EaglerAdapter.glTranslatef(var30, var31, var32);
var36 += var30;
var21 += var31;
var22 += var32;
}
ARBOcclusionQuery.glBeginQueryARB(ARBOcclusionQuery.GL_SAMPLES_PASSED_ARB, this.sortedWorldRenderers[var23].glOcclusionQuery);
this.sortedWorldRenderers[var23].callOcclusionQueryList();
ARBOcclusionQuery.glEndQueryARB(ARBOcclusionQuery.GL_SAMPLES_PASSED_ARB);
this.sortedWorldRenderers[var23].isWaitingOnOcclusionQuery = true;
}
}
}
}
EaglerAdapter.glPopMatrix();
if (this.mc.gameSettings.anaglyph)
{
if (EntityRenderer.anaglyphField == 0)
{
EaglerAdapter.glColorMask(false, true, true, true);
}
else
{
EaglerAdapter.glColorMask(true, false, false, true);
}
}
else
{
EaglerAdapter.glColorMask(true, true, true, true);
}
EaglerAdapter.glDepthMask(true);
EaglerAdapter.glEnable(EaglerAdapter.GL_TEXTURE_2D);
EaglerAdapter.glEnable(EaglerAdapter.GL_ALPHA_TEST);
EaglerAdapter.glEnable(EaglerAdapter.GL_FOG);
var34 += this.renderSortedRenderers(var35, var19, par2, par3);
}
while (var19 < this.sortedWorldRenderers.length);
} }
else
{ var34 = var17 + this.renderSortedRenderers(0, this.sortedWorldRenderers.length, par2, par3);
var34 = var17 + this.renderSortedRenderers(0, this.sortedWorldRenderers.length, par2, par3);
var7 -= par1EntityLivingBase.getEyeHeight();
ct = EaglerAdapter.steadyTimeMillis();
if(par2 == 0 && ct - lastOcclusionQuery > queryRate) {
int totalRenderers = this.sortedWorldRenderers.length;
int inFrustumCount = 0;
for (int i = 0; i < totalRenderers; ++i) {
WorldRenderer c = this.sortedWorldRenderers[i];
if(c.isInFrustum) {
++inFrustumCount;
}
}
int occlusionForceCount = (int)(500l / queryRate);
int occlusionForceStep = MathHelper.floor_float(inFrustumCount / (float)occlusionForceCount) + 1;
int forceStartIndex = occlusionForcedIndexShift * occlusionForceStep;
int forceEndIndex = forceStartIndex + occlusionForceStep;
++occlusionForcedIndexShift;
if(forceEndIndex + (occlusionForceStep >> 1) > inFrustumCount) {
forceEndIndex = inFrustumCount;
occlusionForcedIndexShift = 0;
}
inFrustumCount = 0;
lastOcclusionQuery = ct;
EaglerAdapter.glEnable(EaglerAdapter.GL_CULL_FACE);
EaglerAdapter.glDisable(EaglerAdapter.GL_BLEND);
EaglerAdapter.glColorMask(false, false, false, false);
EaglerAdapter.glDepthMask(false);
EaglerAdapter.glBindOcclusionBB();
for (int i = 0; i < this.sortedWorldRenderers.length; ++i) {
WorldRenderer c = this.sortedWorldRenderers[i];
int ccx = c.posXPlus - fx;
int ccy = c.posYPlus - fy;
int ccz = c.posZPlus - fz;
boolean shouldTry = c.isInFrustum;
if(c.isInFrustum) {
++inFrustumCount;
if(!shouldTry && inFrustumCount >= forceStartIndex && inFrustumCount < forceEndIndex) {
shouldTry = true;
}
}
if(shouldTry && !(ccx < 2 && ccx > -2 && ccy < 2 && ccy > -2 && ccz < 2 && ccz > -2)) {
if(!c.isWaitingOnOcclusionQuery) {
c.isWaitingOnOcclusionQuery = true;
int q = glOcclusionQuery[c.chunkIndex];
if(q == -1) {
q = glOcclusionQuery[c.chunkIndex] = EaglerAdapter.glCreateQuery();
}
EaglerAdapter.glBeginQuery(q);
EaglerAdapter.glDrawOcclusionBB((float)(c.posX - var33), (float)(c.posY - var7), (float)(c.posZ - var9), 16, 16, 16);
EaglerAdapter.glEndQuery();
}
}
}
EaglerAdapter.glEndOcclusionBB();
EaglerAdapter.glColorMask(true, true, true, true);
EaglerAdapter.glDepthMask(true);
EaglerAdapter.glEnable(EaglerAdapter.GL_CULL_FACE);
} }
return var34; return var34;
} }
private void checkOcclusionQueryResult(int par1, int par2)
{
for (int var3 = par1; var3 < par2; ++var3)
{
if (this.sortedWorldRenderers[var3].isWaitingOnOcclusionQuery)
{
this.occlusionResult.clear();
ARBOcclusionQuery.glGetQueryObjectuARB(this.sortedWorldRenderers[var3].glOcclusionQuery, ARBOcclusionQuery.GL_QUERY_RESULT_AVAILABLE_ARB, this.occlusionResult);
if (this.occlusionResult.get(0) != 0)
{
this.sortedWorldRenderers[var3].isWaitingOnOcclusionQuery = false;
this.occlusionResult.clear();
ARBOcclusionQuery.glGetQueryObjectuARB(this.sortedWorldRenderers[var3].glOcclusionQuery, ARBOcclusionQuery.GL_QUERY_RESULT_ARB, this.occlusionResult);
this.sortedWorldRenderers[var3].isVisible = this.occlusionResult.get(0) != 0;
}
}
}
}
/** /**
* Renders the sorted renders for the specified render pass. Args: startRenderer, numRenderers, renderPass, * Renders the sorted renders for the specified render pass. Args: startRenderer, numRenderers, renderPass,
* partialTickTime * partialTickTime

View File

@ -5,7 +5,6 @@ import net.lax1dude.eaglercraft.EaglercraftRandom;
import net.lax1dude.eaglercraft.TextureLocation; import net.lax1dude.eaglercraft.TextureLocation;
import net.lax1dude.eaglercraft.adapter.Tessellator; import net.lax1dude.eaglercraft.adapter.Tessellator;
import net.lax1dude.eaglercraft.EaglerAdapter; import net.lax1dude.eaglercraft.EaglerAdapter;
import org.lwjgl.opengl.EaglerAdapter;
public class RenderItem extends Render public class RenderItem extends Render
{ {

View File

@ -3,7 +3,6 @@ package net.minecraft.src;
import net.lax1dude.eaglercraft.TextureLocation; import net.lax1dude.eaglercraft.TextureLocation;
import net.lax1dude.eaglercraft.adapter.Tessellator; import net.lax1dude.eaglercraft.adapter.Tessellator;
import net.lax1dude.eaglercraft.EaglerAdapter; import net.lax1dude.eaglercraft.EaglerAdapter;
import org.lwjgl.opengl.EaglerAdapter;
public class RenderSnowball extends Render public class RenderSnowball extends Render
{ {

View File

@ -3,7 +3,6 @@ package net.minecraft.src;
import net.lax1dude.eaglercraft.TextureLocation; import net.lax1dude.eaglercraft.TextureLocation;
import net.lax1dude.eaglercraft.adapter.Tessellator; import net.lax1dude.eaglercraft.adapter.Tessellator;
import net.lax1dude.eaglercraft.EaglerAdapter; import net.lax1dude.eaglercraft.EaglerAdapter;
import org.lwjgl.opengl.EaglerAdapter;
public class RenderXPOrb extends Render public class RenderXPOrb extends Render
{ {

View File

@ -5,7 +5,6 @@ import net.lax1dude.eaglercraft.EaglercraftRandom;
import net.lax1dude.eaglercraft.TextureLocation; import net.lax1dude.eaglercraft.TextureLocation;
import net.lax1dude.eaglercraft.adapter.Tessellator; import net.lax1dude.eaglercraft.adapter.Tessellator;
import net.lax1dude.eaglercraft.EaglerAdapter; import net.lax1dude.eaglercraft.EaglerAdapter;
import org.lwjgl.opengl.EaglerAdapter;
public abstract class RendererLivingEntity extends Render public abstract class RendererLivingEntity extends Render
{ {

View File

@ -1,15 +1,10 @@
package net.minecraft.src; package net.minecraft.src;
import java.awt.image.BufferedImage;
import java.io.File; import java.io.File;
import java.nio.IntBuffer; import java.nio.IntBuffer;
import java.text.DateFormat; import java.text.DateFormat;
import java.text.SimpleDateFormat; import java.text.SimpleDateFormat;
import java.util.Date; import java.util.Date;
import javax.imageio.ImageIO;
import org.lwjgl.BufferUtils;
import net.lax1dude.eaglercraft.EaglerAdapter;
import org.lwjgl.opengl.EaglerAdapter;
public class ScreenShotHelper public class ScreenShotHelper
{ {

View File

@ -7,7 +7,6 @@ import javax.imageio.ImageIO;
import net.lax1dude.eaglercraft.TextureLocation; import net.lax1dude.eaglercraft.TextureLocation;
import net.lax1dude.eaglercraft.EaglerAdapter; import net.lax1dude.eaglercraft.EaglerAdapter;
import org.lwjgl.opengl.EaglerAdapter;
public class TextureUtil public class TextureUtil
{ {

View File

@ -2,7 +2,6 @@ package net.minecraft.src;
import net.lax1dude.eaglercraft.TextureLocation; import net.lax1dude.eaglercraft.TextureLocation;
import net.lax1dude.eaglercraft.EaglerAdapter; import net.lax1dude.eaglercraft.EaglerAdapter;
import org.lwjgl.opengl.EaglerAdapter;
public class TileEntityEnderChestRenderer extends TileEntitySpecialRenderer public class TileEntityEnderChestRenderer extends TileEntitySpecialRenderer
{ {

View File

@ -2,7 +2,6 @@ package net.minecraft.src;
import net.lax1dude.eaglercraft.TextureLocation; import net.lax1dude.eaglercraft.TextureLocation;
import net.lax1dude.eaglercraft.EaglerAdapter; import net.lax1dude.eaglercraft.EaglerAdapter;
import org.lwjgl.opengl.EaglerAdapter;
public class TileEntitySkullRenderer extends TileEntitySpecialRenderer public class TileEntitySkullRenderer extends TileEntitySpecialRenderer
{ {