You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
79 lines
2.5 KiB
Java
79 lines
2.5 KiB
Java
package net.minecraft.client.renderer;
|
|
|
|
import cpw.mods.fml.relauncher.Side;
|
|
import cpw.mods.fml.relauncher.SideOnly;
|
|
import java.nio.ByteBuffer;
|
|
import java.nio.ByteOrder;
|
|
import java.nio.FloatBuffer;
|
|
import java.nio.IntBuffer;
|
|
import java.util.ArrayList;
|
|
import java.util.HashMap;
|
|
import java.util.Iterator;
|
|
import java.util.List;
|
|
import java.util.Map;
|
|
import java.util.Map.Entry;
|
|
import org.lwjgl.opengl.GL11;
|
|
|
|
@SideOnly(Side.CLIENT)
|
|
public class GLAllocation
|
|
{
|
|
private static final Map mapDisplayLists = new HashMap();
|
|
private static final List listDummy = new ArrayList();
|
|
private static final String __OBFID = "CL_00000630";
|
|
|
|
/**
|
|
* Generates the specified number of display lists and returns the first index.
|
|
*/
|
|
public static synchronized int generateDisplayLists(int p_74526_0_)
|
|
{
|
|
int j = GL11.glGenLists(p_74526_0_);
|
|
mapDisplayLists.put(Integer.valueOf(j), Integer.valueOf(p_74526_0_));
|
|
return j;
|
|
}
|
|
|
|
public static synchronized void deleteDisplayLists(int p_74523_0_)
|
|
{
|
|
GL11.glDeleteLists(p_74523_0_, ((Integer)mapDisplayLists.remove(Integer.valueOf(p_74523_0_))).intValue());
|
|
}
|
|
|
|
/**
|
|
* Deletes all textures and display lists. Called when Minecraft is shutdown to free up resources.
|
|
*/
|
|
public static synchronized void deleteTexturesAndDisplayLists()
|
|
{
|
|
Iterator iterator = mapDisplayLists.entrySet().iterator();
|
|
|
|
while (iterator.hasNext())
|
|
{
|
|
Entry entry = (Entry)iterator.next();
|
|
GL11.glDeleteLists(((Integer)entry.getKey()).intValue(), ((Integer)entry.getValue()).intValue());
|
|
}
|
|
|
|
mapDisplayLists.clear();
|
|
}
|
|
|
|
/**
|
|
* Creates and returns a direct byte buffer with the specified capacity. Applies native ordering to speed up access.
|
|
*/
|
|
public static synchronized ByteBuffer createDirectByteBuffer(int p_74524_0_)
|
|
{
|
|
return ByteBuffer.allocateDirect(p_74524_0_).order(ByteOrder.nativeOrder());
|
|
}
|
|
|
|
/**
|
|
* Creates and returns a direct int buffer with the specified capacity. Applies native ordering to speed up access.
|
|
*/
|
|
public static IntBuffer createDirectIntBuffer(int p_74527_0_)
|
|
{
|
|
return createDirectByteBuffer(p_74527_0_ << 2).asIntBuffer();
|
|
}
|
|
|
|
/**
|
|
* Creates and returns a direct float buffer with the specified capacity. Applies native ordering to speed up
|
|
* access.
|
|
*/
|
|
public static FloatBuffer createDirectFloatBuffer(int p_74529_0_)
|
|
{
|
|
return createDirectByteBuffer(p_74529_0_ << 2).asFloatBuffer();
|
|
}
|
|
} |