/* Class158 - Decompiled by JODE
 * Visit http://jode.sourceforge.net/
 */
import jaclib.memory.Buffer;

import jaggl.OpenGL;

public abstract class Class158
{
    static final int anInt1779 = 34962;
    Class87_Sub1 aClass87_Sub1_1780;
    static final int anInt1781 = 34963;
    int anInt1782;
    int anInt1783;
    int anInt1784;
    boolean aBool1785;
    boolean aBool1786 = false;
    static int[] anIntArray1787 = new int[1];
    
    Class158(Class87_Sub1 class87_sub1, int i, Buffer buffer, int i_0_,
	     boolean bool) {
	((Class158) this).aClass87_Sub1_1780 = class87_sub1;
	((Class158) this).anInt1782 = i;
	((Class158) this).anInt1784 = i_0_;
	((Class158) this).aBool1785 = bool;
	OpenGL.glGenBuffersARB(1, anIntArray1787, 0);
	((Class158) this).anInt1783 = anIntArray1787[0];
	method3698();
	OpenGL.glBufferDataARBa(i, ((Class158) this).anInt1784,
				buffer.method61(),
				((Class158) this).aBool1785 ? 35040 : 35044);
	((Class87_Sub1) ((Class158) this).aClass87_Sub1_1780).anInt8878
	    += ((Class158) this).anInt1784;
    }
    
    abstract void method3697();
    
    abstract void method3698();
    
    void method3699(byte[] is, int i) {
	method3698();
	if (i > ((Class158) this).anInt1784) {
	    OpenGL.glBufferDataARBub(((Class158) this).anInt1782, i, is, 0,
				     (((Class158) this).aBool1785 ? 35040
				      : 35044));
	    ((Class87_Sub1) ((Class158) this).aClass87_Sub1_1780).anInt8878
		+= i - ((Class158) this).anInt1784;
	    ((Class158) this).anInt1784 = i;
	} else
	    OpenGL.glBufferSubDataARBub(((Class158) this).anInt1782, 0, i, is,
					0);
    }
    
    public void finalize() throws Throwable {
	if (!((Class158) this).aBool1786) {
	    ((Class158) this).aClass87_Sub1_1780.method15042((((Class158) this)
							      .anInt1783),
							     (((Class158) this)
							      .anInt1784));
	    ((Class158) this).aBool1786 = true;
	}
	super.finalize();
    }
    
    void method3700() throws Throwable {
	if (!((Class158) this).aBool1786) {
	    ((Class158) this).aClass87_Sub1_1780.method15042((((Class158) this)
							      .anInt1783),
							     (((Class158) this)
							      .anInt1784));
	    ((Class158) this).aBool1786 = true;
	}
	super.finalize();
    }
    
    void method3701(byte[] is, int i) {
	method3698();
	if (i > ((Class158) this).anInt1784) {
	    OpenGL.glBufferDataARBub(((Class158) this).anInt1782, i, is, 0,
				     (((Class158) this).aBool1785 ? 35040
				      : 35044));
	    ((Class87_Sub1) ((Class158) this).aClass87_Sub1_1780).anInt8878
		+= i - ((Class158) this).anInt1784;
	    ((Class158) this).anInt1784 = i;
	} else
	    OpenGL.glBufferSubDataARBub(((Class158) this).anInt1782, 0, i, is,
					0);
    }
    
    abstract void method3702();
    
    Class158(Class87_Sub1 class87_sub1, int i, byte[] is, int i_1_,
	     boolean bool) {
	((Class158) this).aClass87_Sub1_1780 = class87_sub1;
	((Class158) this).anInt1782 = i;
	((Class158) this).anInt1784 = i_1_;
	((Class158) this).aBool1785 = bool;
	OpenGL.glGenBuffersARB(1, anIntArray1787, 0);
	((Class158) this).anInt1783 = anIntArray1787[0];
	method3698();
	OpenGL.glBufferDataARBub(i, ((Class158) this).anInt1784, is, 0,
				 ((Class158) this).aBool1785 ? 35040 : 35044);
	((Class87_Sub1) ((Class158) this).aClass87_Sub1_1780).anInt8878
	    += ((Class158) this).anInt1784;
    }
    
    void method3703(byte[] is, int i) {
	method3698();
	if (i > ((Class158) this).anInt1784) {
	    OpenGL.glBufferDataARBub(((Class158) this).anInt1782, i, is, 0,
				     (((Class158) this).aBool1785 ? 35040
				      : 35044));
	    ((Class87_Sub1) ((Class158) this).aClass87_Sub1_1780).anInt8878
		+= i - ((Class158) this).anInt1784;
	    ((Class158) this).anInt1784 = i;
	} else
	    OpenGL.glBufferSubDataARBub(((Class158) this).anInt1782, 0, i, is,
					0);
    }
    
    void method3704(byte[] is, int i) {
	method3698();
	if (i > ((Class158) this).anInt1784) {
	    OpenGL.glBufferDataARBub(((Class158) this).anInt1782, i, is, 0,
				     (((Class158) this).aBool1785 ? 35040
				      : 35044));
	    ((Class87_Sub1) ((Class158) this).aClass87_Sub1_1780).anInt8878
		+= i - ((Class158) this).anInt1784;
	    ((Class158) this).anInt1784 = i;
	} else
	    OpenGL.glBufferSubDataARBub(((Class158) this).anInt1782, 0, i, is,
					0);
    }
}
