forked from 2009Scape/Server
147 lines
4.4 KiB
Java
147 lines
4.4 KiB
Java
package org.runite.client;
|
|
|
|
|
|
|
|
|
|
import org.rs09.client.rendering.opengl.enums.GLBeginMode;
|
|
|
|
import javax.media.opengl.GL;
|
|
import java.nio.ByteBuffer;
|
|
|
|
|
|
public final class HDIndexedSprite extends AbstractIndexedSprite {
|
|
|
|
private int anInt2675 = -1;
|
|
private int anInt2676 = -1;
|
|
private int anInt2677 = 0;
|
|
private int anInt2678 = 0;
|
|
private int anInt2679;
|
|
private int anInt2680;
|
|
private int anInt2681;
|
|
|
|
|
|
private void method1678(byte[] var1, int[] var2) {
|
|
this.anInt2681 = Class95.method1585((byte)62, this.width);
|
|
this.anInt2680 = Class95.method1585((byte)99, this.height);
|
|
byte[] var3 = new byte[this.anInt2681 * this.anInt2680 * 4];
|
|
int var4 = 0;
|
|
int var5 = 0;
|
|
|
|
for(int var6 = 0; var6 < this.height; ++var6) {
|
|
for(int var7 = 0; var7 < this.width; ++var7) {
|
|
// Hd Fix
|
|
if (var1[var5] < 0) {
|
|
return;
|
|
}
|
|
byte var8 = var1[var5++];
|
|
if(var8 == 0) {
|
|
var4 += 4;
|
|
} else {
|
|
int var9 = var2[var8];
|
|
var3[var4++] = (byte)(var9 >> 16);
|
|
var3[var4++] = (byte)(var9 >> 8);
|
|
var3[var4++] = (byte)var9;
|
|
var3[var4++] = -1;
|
|
}
|
|
}
|
|
var4 += (this.anInt2681 - this.width) * 4;
|
|
}
|
|
ByteBuffer byteBuffer = ByteBuffer.wrap(var3);
|
|
GL gl = HDToolKit.gl;
|
|
if(this.anInt2675 == -1) {
|
|
int[] var12 = new int[1];
|
|
gl.glGenTextures(1, var12, 0);
|
|
this.anInt2675 = var12[0];
|
|
this.anInt2679 = Class31.anInt582;
|
|
}
|
|
|
|
HDToolKit.bindTexture2D(this.anInt2675);
|
|
gl.glTexImage2D(3553, 0, 6408, this.anInt2681, this.anInt2680, 0, 6408, 5121, byteBuffer);
|
|
Class31.memory2D += byteBuffer.limit() - this.anInt2678;
|
|
this.anInt2678 = byteBuffer.limit();
|
|
}
|
|
|
|
final void method1666(int var1, int var2, int var3) {
|
|
HDToolKit.method1828();
|
|
var1 += this.anInt1470;
|
|
var2 += this.anInt1464;
|
|
GL var4 = HDToolKit.gl;
|
|
HDToolKit.bindTexture2D(this.anInt2675);
|
|
this.method1679();
|
|
var4.glColor4f(1.0F, 1.0F, 1.0F, (float)var3 / 256.0F);
|
|
var4.glTranslatef((float)var1, (float)(HDToolKit.viewHeight - var2), 0.0F);
|
|
var4.glCallList(this.anInt2676);
|
|
var4.glLoadIdentity();
|
|
}
|
|
|
|
private void method1679() {
|
|
if(this.anInt2677 != 1) {
|
|
this.anInt2677 = 1;
|
|
GL var2 = HDToolKit.gl;
|
|
var2.glTexParameteri(3553, 10241, 9728);
|
|
var2.glTexParameteri(3553, 10240, 9728);
|
|
|
|
}
|
|
}
|
|
|
|
public final void method1667(int var1, int var2) {
|
|
HDToolKit.method1822();
|
|
var1 += this.anInt1470;
|
|
var2 += this.anInt1464;
|
|
GL var3 = HDToolKit.gl;
|
|
HDToolKit.bindTexture2D(this.anInt2675);
|
|
this.method1679();
|
|
var3.glTranslatef((float)var1, (float)(HDToolKit.viewHeight - var2), 0.0F);
|
|
var3.glCallList(this.anInt2676);
|
|
var3.glLoadIdentity();
|
|
}
|
|
|
|
protected final void finalize() throws Throwable {
|
|
if(this.anInt2675 != -1) {
|
|
Class31.method991(this.anInt2675, this.anInt2678, this.anInt2679);
|
|
this.anInt2675 = -1;
|
|
this.anInt2678 = 0;
|
|
}
|
|
|
|
if(this.anInt2676 != -1) {
|
|
Class31.method986(this.anInt2676, this.anInt2679);
|
|
this.anInt2676 = -1;
|
|
}
|
|
|
|
super.finalize();
|
|
}
|
|
|
|
private void method1680() {
|
|
float var1 = (float)this.width / (float)this.anInt2681;
|
|
float var2 = (float)this.height / (float)this.anInt2680;
|
|
GL var3 = HDToolKit.gl;
|
|
if(this.anInt2676 == -1) {
|
|
this.anInt2676 = var3.glGenLists(1);
|
|
this.anInt2679 = Class31.anInt582;
|
|
}
|
|
|
|
var3.glNewList(this.anInt2676, 4864);
|
|
var3.glBegin(GLBeginMode.TRIANGLE_FAN);
|
|
var3.glTexCoord2f(var1, 0.0F);
|
|
var3.glVertex2f((float)this.width, 0.0F);
|
|
var3.glTexCoord2f(0.0F, 0.0F);
|
|
var3.glVertex2f(0.0F, 0.0F);
|
|
var3.glTexCoord2f(0.0F, var2);
|
|
var3.glVertex2f(0.0F, (float)(-this.height));
|
|
var3.glTexCoord2f(var1, var2);
|
|
var3.glVertex2f((float)this.width, (float)(-this.height));
|
|
var3.glEnd();
|
|
var3.glEndList();
|
|
}
|
|
|
|
HDIndexedSprite(int var1, int var2, int var3, int var4, int var5, int var6, byte[] var7, int[] var8) {
|
|
this.anInt1469 = var1;
|
|
this.anInt1467 = var2;
|
|
this.anInt1470 = var3;
|
|
this.anInt1464 = var4;
|
|
this.width = var5;
|
|
this.height = var6;
|
|
this.method1678(var7, var8);
|
|
this.method1680();
|
|
}
|
|
}
|