1
0
Fork 0

experimental new rendering

This commit is contained in:
Sen 2025-08-30 21:00:34 +02:00
parent d4c7c5bbea
commit 2006e31a71
Signed by: sen
GPG key ID: 3AC50A6F47D1B722
96 changed files with 1658 additions and 3104 deletions

View file

@ -30,7 +30,7 @@ import javax.imageio.ImageIO;
import javax.swing.JFileChooser; import javax.swing.JFileChooser;
import org.lwjgl.opengl.GL; import org.lwjgl.opengl.GL;
import org.lwjgl.opengl.GL46; import org.lwjgl.opengl.GL46C;
import client.audio.AudioInterface; import client.audio.AudioInterface;
import client.audio.MidiBank; import client.audio.MidiBank;
@ -428,8 +428,8 @@ public class Client implements IThreadListener {
Client.this.renderer.checkBlockLight(pos); Client.this.renderer.checkBlockLight(pos);
} }
public int getCombinedLight(BlockPos pos) { public int getWorldLight(BlockPos pos) {
return Client.this.renderer.getCombinedLight(pos); return Client.this.renderer.getWorldLight(pos);
} }
} }
@ -889,20 +889,21 @@ public class Client implements IThreadListener {
this.textureManager = new TextureManager(); this.textureManager = new TextureManager();
this.textureManager.onReload(); this.textureManager.onReload();
this.soundManager = new SoundManager(this); this.soundManager = new SoundManager(this);
Log.RENDER.debug("Maximale Anisotropie: %.1f", this.anisotropyMax = GL46.glGetFloat(GL46.GL_MAX_TEXTURE_MAX_ANISOTROPY)); Log.RENDER.debug("Maximale Anisotropie: %.1f", this.anisotropyMax = GL46C.glGetFloat(GL46C.GL_MAX_TEXTURE_MAX_ANISOTROPY));
Log.RENDER.debug("Maximale Texturgröße: %d", GL46.glGetInteger(GL46.GL_MAX_TEXTURE_SIZE)); Log.RENDER.debug("Maximale Texturgröße: %d", GL46C.glGetInteger(GL46C.GL_MAX_TEXTURE_SIZE));
GlState.enableTexture2D(); // GlState.enableTexture2D();
GlState.shadeModel(GL46.GL_SMOOTH); // GlState.shadeModel(GL46C.GL_SMOOTH);
GL46.glClearDepth(1.0D); GL46C.glActiveTexture(GL46C.GL_TEXTURE0);
GlState.enableDepth(); GL46C.glClearDepth(1.0D);
GlState.depthFunc(GL46.GL_LEQUAL); // GlState.enableDepth();
GlState.enableAlpha(); GlState.depthFunc(GL46C.GL_LEQUAL);
GlState.alphaFunc(GL46.GL_GREATER, 0.1F); // GlState.enableAlpha();
GlState.cullFace(GL46.GL_BACK); // GlState.alphaFunc(GL46C.GL_GREATER, 0.1F);
GlState.enableCull(); GlState.cullFace(GL46C.GL_BACK);
GL46.glMatrixMode(GL46.GL_PROJECTION); // GlState.enableCull();
GL46.glLoadIdentity(); // GL46C.glMatrixMode(GL46C.GL_PROJECTION);
GL46.glMatrixMode(GL46.GL_MODELVIEW); // GL46C.glLoadIdentity();
// GL46C.glMatrixMode(GL46C.GL_MODELVIEW);
this.textureMap = new TextureMap(); this.textureMap = new TextureMap();
this.textureManager.loadTexture(TextureMap.BLOCKS, this.textureMap); this.textureManager.loadTexture(TextureMap.BLOCKS, this.textureMap);
this.updateTexture(); this.updateTexture();
@ -1131,13 +1132,13 @@ public class Client implements IThreadListener {
} }
public void render() { public void render() {
GlState.tryBlendFuncSeparate(GL46.GL_SRC_ALPHA, GL46.GL_ONE_MINUS_SRC_ALPHA, GL46.GL_SRC_ALPHA, GL46.GL_ONE_MINUS_SRC_ALPHA); GlState.tryBlendFuncSeparate(GL46C.GL_SRC_ALPHA, GL46C.GL_ONE_MINUS_SRC_ALPHA, GL46C.GL_SRC_ALPHA, GL46C.GL_ONE_MINUS_SRC_ALPHA);
GlState.enableDepth(); GlState.enableDepth();
GlState.clearColor(0.0f, 0.0f, 0.0f, 1.0f); GlState.clearColor(0.0f, 0.0f, 0.0f, 1.0f);
GL46.glClear(GL46.GL_COLOR_BUFFER_BIT | GL46.GL_DEPTH_BUFFER_BIT); GL46C.glClear(GL46C.GL_COLOR_BUFFER_BIT | GL46C.GL_DEPTH_BUFFER_BIT);
if(this.wireframe) { if(this.wireframe) {
GL46.glLineWidth(1.0f); GL46C.glLineWidth(1.0f);
GL46.glPolygonMode(GL46.GL_FRONT_AND_BACK, GL46.GL_LINE); GL46C.glPolygonMode(GL46C.GL_FRONT_AND_BACK, GL46C.GL_LINE);
} }
if(this.open == null) { if(this.open == null) {
if(this.player != null && this.viewEntity == this.player) if(this.player != null && this.viewEntity == this.player)
@ -1150,18 +1151,18 @@ public class Client implements IThreadListener {
this.soundManager.setListener(this.player, (float)this.tickFraction); this.soundManager.setListener(this.player, (float)this.tickFraction);
if(this.player != null && (this.player.isEntityInsideOpaqueBlock() || this.viewEntity != this.player)) if(this.player != null && (this.player.isEntityInsideOpaqueBlock() || this.viewEntity != this.player))
this.thirdPersonView = 0; this.thirdPersonView = 0;
GL46.glPushMatrix(); // GL46C.glPushMatrix();
GL46.glClear(16640); GL46C.glClear(GL46C.GL_COLOR_BUFFER_BIT | GL46C.GL_DEPTH_BUFFER_BIT);
GlState.enableTexture2D(); // GlState.enableTexture2D();
if(this.world != null) if(this.world != null)
this.renderer.renderWorld((float)this.tickFraction, System.nanoTime() - this.tickStart); this.renderer.renderWorld((float)this.tickFraction, System.nanoTime() - this.tickStart);
GL46.glPopMatrix(); // GL46C.glPopMatrix();
//
GlState.disableTexture2D(); // GlState.disableTexture2D();
GlState.disableCull(); GlState.disableCull();
GlState.enableBlend(); GlState.enableBlend();
if(this.wireframe) if(this.wireframe)
GL46.glPolygonMode(GL46.GL_FRONT_AND_BACK, GL46.GL_FILL); GL46C.glPolygonMode(GL46C.GL_FRONT_AND_BACK, GL46C.GL_FILL);
} }
private int drawStat(int x, int y, String name, int value, int max, int color) { private int drawStat(int x, int y, String name, int value, int max, int color) {
@ -1179,6 +1180,23 @@ public class Client implements IThreadListener {
Drawing.drawGradient(x + 2, y + 20 + 2, (int)(246.0f * fill), 6, color | 0xff000000, Util.mixColor(color | 0xff000000, 0xff000000)); Drawing.drawGradient(x + 2, y + 20 + 2, (int)(246.0f * fill), 6, color | 0xff000000, Util.mixColor(color | 0xff000000, 0xff000000));
return y + 40; return y + 40;
} }
private boolean isVisionObscured() {
if(this.player.isEntityInsideOpaqueBlock()) {
State state = this.world.getState(new BlockPos(this.player));
for(int i = 0; i < 8; ++i) {
double d0 = this.player.posX + (double)(((float)((i >> 0) % 2) - 0.5F) * this.player.width * 0.8F);
double d1 = this.player.posY + (double)(((float)((i >> 1) % 2) - 0.5F) * 0.1F);
double d2 = this.player.posZ + (double)(((float)((i >> 2) % 2) - 0.5F) * this.player.width * 0.8F);
BlockPos blockpos = new BlockPos(d0, d1 + (double)this.player.getEyeHeight(), d2);
State bstate = this.world.getState(blockpos);
if(bstate.getBlock().isVisuallyOpaque())
state = bstate;
}
return state.getBlock() != Blocks.air;
}
return false;
}
public void renderHud() { public void renderHud() {
final int selected = this.world != null && this.player != null && this.viewEntity == this.player ? this.player.getSelectedIndex() : -1; final int selected = this.world != null && this.player != null && this.viewEntity == this.player ? this.player.getSelectedIndex() : -1;
@ -1189,11 +1207,13 @@ public class Client implements IThreadListener {
final int by = this.fbY - 20 * scale; final int by = this.fbY - 20 * scale;
final int xoff = (this.fbX / scale - (width < 20 ? ((size - 2) * width + 40 + width / 2) : (size * 20 - 2))) / 2 + (width < 20 && selected == 0 ? 20 - width : 0) - 2; final int xoff = (this.fbX / scale - (width < 20 ? ((size - 2) * width + 40 + width / 2) : (size * 20 - 2))) / 2 + (width < 20 && selected == 0 ? 20 - width : 0) - 2;
this.setupOverlay(); this.setupOverlay();
if(this.world != null && this.player != null && this.viewEntity == this.player && this.isVisionObscured())
Drawing.drawGradient(0, 0, this.fbX, this.fbY, 0xff2f2f2f, 0xff000000);
if(this.world != null && !(this.open instanceof GuiConsole) && this.player != null && this.viewEntity == this.player) { if(this.world != null && !(this.open instanceof GuiConsole) && this.player != null && this.viewEntity == this.player) {
if(this.open == null) { if(this.open == null) {
if(this.thirdPersonView == 0) { if(this.thirdPersonView == 0) {
if(this.drawDebug) { if(this.drawDebug) {
this.renderWorldDirections((float)this.tickFraction); // this.renderWorldDirections((float)this.tickFraction);
} }
else if(this.crosshairSize > 0) { else if(this.crosshairSize > 0) {
final int color = this.pointed != null && this.pointed.type != ObjectType.MISS ? this.crosshairColorTarget : this.crosshairColorBase; final int color = this.pointed != null && this.pointed.type != ObjectType.MISS ? this.crosshairColorTarget : this.crosshairColorBase;
@ -1202,8 +1222,8 @@ public class Client implements IThreadListener {
Drawing.drawRect(this.fbX / 2 - this.crosshairSize, this.fbY / 2 - 1, this.crosshairSize * 2, 2, color); Drawing.drawRect(this.fbX / 2 - this.crosshairSize, this.fbY / 2 - 1, this.crosshairSize * 2, 2, color);
} }
else { else {
GlState.color(color); // GlState.color(color);
Drawing.drawTexturedRect(this, "textures/crosshair.png", 32, 32, this.fbX / 2 - 16, this.fbY / 2 - 16, 0, 0, 32, 32); // Drawing.drawTexturedRect(this, "textures/crosshair.png", 32, 32, this.fbX / 2 - 16, this.fbY / 2 - 16, 0, 0, 32, 32);
} }
} }
} }
@ -1357,61 +1377,61 @@ public class Client implements IThreadListener {
} }
} }
GlState.bindTexture(0); // GlState.bindTexture(0);
GlState.setActiveTexture(GL46.GL_TEXTURE0); // GlState.setActiveTexture(GL46C.GL_TEXTURE0);
GlState.enableTexture2D(); // GlState.enableTexture2D();
if(this.world != null && this.open == null && this.player != null && this.viewEntity == this.player) { // if(this.world != null && this.open == null && this.player != null && this.viewEntity == this.player) {
GlState.enableRescaleNormal(); // GlState.enableRescaleNormal();
GlState.enableBlend(); // GlState.enableBlend();
GlState.color(1.0F, 1.0F, 1.0F, 1.0F); // GlState.color(1.0F, 1.0F, 1.0F, 1.0F);
ItemRenderer.enableGUIStandardItemLighting(); // ItemRenderer.enableGUIStandardItemLighting();
GL46.glPushMatrix(); // GL46C.glPushMatrix();
GL46.glTranslatef(0.0f, (float)by, 0.0f); // GL46C.glTranslatef(0.0f, (float)by, 0.0f);
if(this.scaleHotbar) // if(this.scaleHotbar)
GL46.glScalef(2.0f, 2.0f, 2.0f); // GL46C.glScalef(2.0f, 2.0f, 2.0f);
//
int xPos = xoff; // int xPos = xoff;
for(int index = 0; index < size; ++index) { // for(int index = 0; index < size; ++index) {
ItemStack itemstack = this.player.getStackInSlot(index); // ItemStack itemstack = this.player.getStackInSlot(index);
if(itemstack != null) { // if(itemstack != null) {
if(width < 20 && selected != index && selected != index + 1 && index != size - 1) { // if(width < 20 && selected != index && selected != index + 1 && index != size - 1) {
this.scissor(xPos * scale, this.fbY - (by + 16 * scale), (width - 1) * scale, 16 * scale); // this.scissor(xPos * scale, this.fbY - (by + 16 * scale), (width - 1) * scale, 16 * scale);
GL46.glEnable(GL46.GL_SCISSOR_TEST); // GL46C.glEnable(GL46C.GL_SCISSOR_TEST);
} // }
GlState.enableDepth(); // GlState.enableDepth();
this.renderItem.renderItemAndEffectIntoGUI(itemstack, xPos, 0); // this.renderItem.renderItemAndEffectIntoGUI(itemstack, xPos, 0);
if(width < 20 && selected != index && selected != index + 1 && index != size - 1) // if(width < 20 && selected != index && selected != index + 1 && index != size - 1)
GL46.glDisable(GL46.GL_SCISSOR_TEST); // GL46C.glDisable(GL46C.GL_SCISSOR_TEST);
} // }
xPos += width >= 20 || selected == index || selected == index + 1 ? 20 : width; // xPos += width >= 20 || selected == index || selected == index + 1 ? 20 : width;
} // }
//
if(this.infoOverlay) { // if(this.infoOverlay) {
Item item = null; // Item item = null;
if((this.pointed != null && this.pointed.type == ObjectType.BLOCK && this.pointed.block != null) || this.pointedLiquid != null) // if((this.pointed != null && this.pointed.type == ObjectType.BLOCK && this.pointed.block != null) || this.pointedLiquid != null)
item = this.pointedLiquid != null ? (this.world.getState(this.pointedLiquid).getBlock() instanceof BlockLiquid liquid ? ItemBucket.getByFluid(liquid) : null) : this.world.getState(this.pointed.block).getBlock().getItem(); // item = this.pointedLiquid != null ? (this.world.getState(this.pointedLiquid).getBlock() instanceof BlockLiquid liquid ? ItemBucket.getByFluid(liquid) : null) : this.world.getState(this.pointed.block).getBlock().getItem();
else if(this.pointed != null && this.pointed.type == ObjectType.ENTITY && this.pointed.entity != null) // else if(this.pointed != null && this.pointed.type == ObjectType.ENTITY && this.pointed.entity != null)
item = this.pointed.entity.getItem(); // item = this.pointed.entity.getItem();
if(item != null) { // if(item != null) {
GL46.glPopMatrix(); // GL46C.glPopMatrix();
GL46.glPushMatrix(); // GL46C.glPushMatrix();
GL46.glTranslatef((float)(this.fbX / 2 - 180 + 4 + 1), (float)(this.hudMargin + 20 + 1), 0.0f); // GL46C.glTranslatef((float)(this.fbX / 2 - 180 + 4 + 1), (float)(this.hudMargin + 20 + 1), 0.0f);
GL46.glScalef(2.0f, 2.0f, 2.0f); // GL46C.glScalef(2.0f, 2.0f, 2.0f);
GlState.enableDepth(); // GlState.enableDepth();
this.renderItem.renderItemAndEffectIntoGUI(new ItemStack(item), 0, 0); // this.renderItem.renderItemAndEffectIntoGUI(new ItemStack(item), 0, 0);
} // }
} // }
//
GL46.glPopMatrix(); // GL46C.glPopMatrix();
ItemRenderer.disableStandardItemLighting(); // ItemRenderer.disableStandardItemLighting();
GlState.disableRescaleNormal(); // GlState.disableRescaleNormal();
GlState.disableBlend(); // GlState.disableBlend();
} // }
//
GlState.disableTexture2D(); // GlState.disableTexture2D();
GlState.disableCull(); // GlState.disableCull();
GlState.enableBlend(); // GlState.enableBlend();
GlState.disableDepth(); // GlState.disableDepth();
if(this.world != null && this.open == null && this.player != null && this.viewEntity == this.player) { if(this.world != null && this.open == null && this.player != null && this.viewEntity == this.player) {
int xPos = xoff * scale; int xPos = xoff * scale;
for(int index = 0; index < size; ++index) { for(int index = 0; index < size; ++index) {
@ -1471,8 +1491,8 @@ public class Client implements IThreadListener {
"Tickrate: %s%.2f" + Color.RESET + " %s [" + Color.GREEN + "%.1f" + Color.RESET + "], %.3f ms, E %d ms" + "Tickrate: %s%.2f" + Color.RESET + " %s [" + Color.GREEN + "%.1f" + Color.RESET + "], %.3f ms, E %d ms" +
"%s%s" "%s%s"
, ,
GL46.glGetString(GL46.GL_VERSION), GL46C.glGetString(GL46C.GL_VERSION),
GL46.glGetString(GL46.GL_RENDERER), GL46.glGetString(GL46.GL_VENDOR), GL46C.glGetString(GL46C.GL_RENDERER), GL46C.glGetString(GL46C.GL_VENDOR),
this.framecode(), this.framerate < 1.0f ? 1.0f / this.framerate : this.framerate, this.framerate < 1.0f ? "SPF" : "FPS", this.framecode(), this.framerate < 1.0f ? 1.0f / this.framerate : this.framerate, this.framerate < 1.0f ? "SPF" : "FPS",
this.vsync ? Color.DARK_GRAY + "VSYNC" : (this.syncLimited ? Color.GREEN + "" + this.syncLimit : Color.RED + "UNL"), this.vsync ? Color.DARK_GRAY + "VSYNC" : (this.syncLimited ? Color.GREEN + "" + this.syncLimit : Color.RED + "UNL"),
(float)PerfSection.getTotal(false) / 1000.0f, this.fbRawX, this.fbRawY, (float)PerfSection.getTotal(false) / 1000.0f, this.fbRawX, this.fbRawY,
@ -2158,7 +2178,7 @@ public class Client implements IThreadListener {
} }
private void fbsize(int x, int y) { private void fbsize(int x, int y) {
GL46.glViewport(0, 0, x, y); GL46C.glViewport(0, 0, x, y);
this.fbRawX = x; this.fbRawX = x;
this.fbRawY = y; this.fbRawY = y;
this.rescale(); this.rescale();
@ -2340,23 +2360,19 @@ public class Client implements IThreadListener {
} }
public void setupOverlay() { public void setupOverlay() {
GlState.disableDepth(); // GlState.disableCull();
GlState.tryBlendFuncSeparate(GL46.GL_SRC_ALPHA, GL46.GL_ONE_MINUS_SRC_ALPHA, GL46.GL_ONE, GL46.GL_ONE_MINUS_SRC_ALPHA); // GlState.disableDepth();
GlState.setActiveTexture(GL46.GL_TEXTURE0); // GlState.enableBlend();
GlState.color(1.0f, 1.0f, 1.0f, 1.0f); // GlState.tryBlendFuncSeparate(GL46C.GL_SRC_ALPHA, GL46C.GL_ONE_MINUS_SRC_ALPHA, GL46C.GL_ONE, GL46C.GL_ONE_MINUS_SRC_ALPHA);
GL46.glClear(256); GL46C.glClear(GL46C.GL_DEPTH_BUFFER_BIT);
GL46.glMatrixMode(GL46.GL_PROJECTION); // GL46C.glOrtho(0.0D, (double)this.fbRawX, (double)this.fbRawY, 0.0D, 1000.0D, 3000.0D);
GL46.glLoadIdentity(); // GL46C.glTranslatef(0.0F, 0.0F, -2000.0F);
GL46.glOrtho(0.0D, (double)this.fbRawX, (double)this.fbRawY, 0.0D, 1000.0D, 3000.0D); // if(this.scale != 1)
GL46.glMatrixMode(GL46.GL_MODELVIEW); // GL46C.glScalef((float)this.scale, (float)this.scale, 1.0f);
GL46.glLoadIdentity();
GL46.glTranslatef(0.0F, 0.0F, -2000.0F);
if(this.scale != 1)
GL46.glScalef((float)this.scale, (float)this.scale, 1.0f);
} }
public void scissor(int x, int y, int width, int height) { public void scissor(int x, int y, int width, int height) {
GL46.glScissor(x * this.scale, y * this.scale, width * this.scale, height * this.scale); GL46C.glScissor(x * this.scale, y * this.scale, width * this.scale, height * this.scale);
} }
private void addFrame(long runningTime) private void addFrame(long runningTime)
@ -2400,9 +2416,9 @@ public class Client implements IThreadListener {
Window.destroyWindow(); Window.destroyWindow();
Util.panic("Inkompatible OpenGL-Version", "OpenGL 4.6 oder höher ist erforderlich, um dieses Programm auszuführen."); Util.panic("Inkompatible OpenGL-Version", "OpenGL 4.6 oder höher ist erforderlich, um dieses Programm auszuführen.");
} }
Log.SYSTEM.info("OpenGL %s", GL46.glGetString(GL46.GL_VERSION)); Log.SYSTEM.info("OpenGL %s", GL46C.glGetString(GL46C.GL_VERSION));
Log.SYSTEM.info("GL_VENDOR: %s", GL46.glGetString(GL46.GL_VENDOR)); Log.SYSTEM.info("GL_VENDOR: %s", GL46C.glGetString(GL46C.GL_VENDOR));
Log.SYSTEM.info("GL_RENDERER: %s", GL46.glGetString(GL46.GL_RENDERER)); Log.SYSTEM.info("GL_RENDERER: %s", GL46C.glGetString(GL46C.GL_RENDERER));
Log.SYSTEM.info("Starte ..."); Log.SYSTEM.info("Starte ...");
this.init(); this.init();
@ -2411,8 +2427,8 @@ public class Client implements IThreadListener {
System.gc(); System.gc();
Font.loadFonts(); Font.loadFonts();
Font.select(this.font); Font.select(this.font);
GlState.enableBlend(); // GlState.enableBlend();
GlState.blendFunc(GL46.GL_SRC_ALPHA, GL46.GL_ONE_MINUS_SRC_ALPHA); // GlState.blendFunc(GL46C.GL_SRC_ALPHA, GL46C.GL_ONE_MINUS_SRC_ALPHA);
this.initConsole(); this.initConsole();
Shader.loadShaders(); Shader.loadShaders();
this.startSound(true); this.startSound(true);
@ -2443,7 +2459,6 @@ public class Client implements IThreadListener {
Bind.updateBinds(); Bind.updateBinds();
this.input(); this.input();
Bind.enableInput(); Bind.enableInput();
GlState.setActiveTexture(GL46.GL_TEXTURE0);
GlState.bindTexture(0); GlState.bindTexture(0);
this.inputGui(); this.inputGui();
if(this.open != null) if(this.open != null)
@ -2460,7 +2475,7 @@ public class Client implements IThreadListener {
this.finish(); this.finish();
PerfSection.SWAP.enter(); PerfSection.SWAP.enter();
if(this.glFlush) if(this.glFlush)
GL46.glFlush(); GL46C.glFlush();
Window.swapBuffers(); Window.swapBuffers();
PerfSection.EVENTS.enter(); PerfSection.EVENTS.enter();
Log.flushLog(); Log.flushLog();
@ -2555,7 +2570,7 @@ public class Client implements IThreadListener {
this.saving = true; this.saving = true;
final int stride = ((this.fbRawX * 3) & 3) != 0 ? 4 + ((this.fbRawX * 3) & ~3) : (this.fbRawX * 3); final int stride = ((this.fbRawX * 3) & 3) != 0 ? 4 + ((this.fbRawX * 3) & ~3) : (this.fbRawX * 3);
final ByteBuffer data = ByteBuffer.allocateDirect(stride * this.fbRawY).order(ByteOrder.nativeOrder()); final ByteBuffer data = ByteBuffer.allocateDirect(stride * this.fbRawY).order(ByteOrder.nativeOrder());
GL46.glReadPixels(0, 0, this.fbRawX, this.fbRawY, GL46.GL_RGB, GL46.GL_UNSIGNED_BYTE, data); GL46C.glReadPixels(0, 0, this.fbRawX, this.fbRawY, GL46C.GL_RGB, GL46C.GL_UNSIGNED_BYTE, data);
new Thread(new Runnable() { new Thread(new Runnable() {
public void run() { public void run() {
byte[] pixels = new byte[stride * Client.this.fbRawY]; byte[] pixels = new byte[stride * Client.this.fbRawY];
@ -3293,23 +3308,23 @@ public class Client implements IThreadListener {
} }
} }
private void renderWorldDirections(float partialTicks) { // private void renderWorldDirections(float partialTicks) {
GlState.enableBlend(); // GlState.enableBlend();
GlState.tryBlendFuncSeparate(GL46.GL_SRC_ALPHA, GL46.GL_ONE_MINUS_SRC_ALPHA, GL46.GL_ONE, GL46.GL_ZERO); // GlState.tryBlendFuncSeparate(GL46C.GL_SRC_ALPHA, GL46C.GL_ONE_MINUS_SRC_ALPHA, GL46C.GL_ONE, GL46C.GL_ZERO);
GL46.glLineWidth(1.0F); // GL46C.glLineWidth(1.0F);
GlState.disableTexture2D(); // GlState.disableTexture2D();
GlState.depthMask(false); // GlState.depthMask(false);
GL46.glPushMatrix(); // GL46C.glPushMatrix();
GL46.glTranslatef((float)(this.fbX / 2), (float)(this.fbY / 2), 0.0F); // GL46C.glTranslatef((float)(this.fbX / 2), (float)(this.fbY / 2), 0.0F);
this.renderer.rotateCamera(this.viewEntity, partialTicks, true); // this.renderer.rotateCamera(this.viewEntity, partialTicks, true);
Renderer.drawOutlinedBoundingBox(new BoundingBox(0.0D, 0.0D, 0.0D, 24D, 1D, 1D), 255, 0, 0, 255); // Renderer.drawOutlinedBoundingBox(new BoundingBox(0.0D, 0.0D, 0.0D, 24D, 1D, 1D), 255, 0, 0, 255);
Renderer.drawOutlinedBoundingBox(new BoundingBox(0.0D, 0.0D, 0.0D, 1D, 1D, 24D), 0, 0, 255, 255); // Renderer.drawOutlinedBoundingBox(new BoundingBox(0.0D, 0.0D, 0.0D, 1D, 1D, 24D), 0, 0, 255, 255);
Renderer.drawOutlinedBoundingBox(new BoundingBox(0.0D, 0.0D, 0.0D, 1D, -20D, 1D), 0, 255, 0, 255); // Renderer.drawOutlinedBoundingBox(new BoundingBox(0.0D, 0.0D, 0.0D, 1D, -20D, 1D), 0, 255, 0, 255);
GL46.glPopMatrix(); // GL46C.glPopMatrix();
GlState.depthMask(true); // GlState.depthMask(true);
GlState.enableTexture2D(); // GlState.enableTexture2D();
GlState.disableBlend(); // GlState.disableBlend();
} // }
private int blendColors(int color1, int color2, float value) { private int blendColors(int color1, int color2, float value) {
int i = color1 >> 24 & 255; int i = color1 >> 24 & 255;

View file

@ -4,7 +4,7 @@ import java.awt.image.BufferedImage;
import java.io.FileNotFoundException; import java.io.FileNotFoundException;
import java.io.IOException; import java.io.IOException;
import org.lwjgl.opengl.GL46; import org.lwjgl.opengl.GL46C;
import client.renderer.GlState; import client.renderer.GlState;
import client.renderer.texture.TextureUtil; import client.renderer.texture.TextureUtil;
@ -110,7 +110,7 @@ public enum Font implements Identifyable, Displayable {
int[] data = new int[width * 16 * height * 16]; int[] data = new int[width * 16 * height * 16];
img.getRGB(0, 0, width * 16, height * 16, data, 0, width * 16); img.getRGB(0, 0, width * 16, height * 16, data, 0, width * 16);
calculate(data, font.sizes, width, height, 0); calculate(data, font.sizes, width, height, 0);
font.texture = GL46.glGenTextures(); font.texture = GL46C.glGenTextures();
TextureUtil.uploadImage(font.texture, img); TextureUtil.uploadImage(font.texture, img);
Log.RENDER.debug("Font-Textur wurde mit ID #%d geladen", font.texture); Log.RENDER.debug("Font-Textur wurde mit ID #%d geladen", font.texture);
} }
@ -141,7 +141,7 @@ public enum Font implements Identifyable, Displayable {
public static void unloadFonts() { public static void unloadFonts() {
for(Font font : values()) { for(Font font : values()) {
if(font.texture != 0) { if(font.texture != 0) {
GL46.glDeleteTextures(font.texture); GL46C.glDeleteTextures(font.texture);
Log.RENDER.debug("Font-Textur mit ID #%d wurde gelöscht", font.texture); Log.RENDER.debug("Font-Textur mit ID #%d wurde gelöscht", font.texture);
font.texture = 0; font.texture = 0;
} }

View file

@ -2,7 +2,7 @@ package client.gui;
import java.util.List; import java.util.List;
import org.lwjgl.opengl.GL46; import org.lwjgl.opengl.GL46C;
import client.Client; import client.Client;
import client.gui.element.Dropdown; import client.gui.element.Dropdown;
@ -229,12 +229,12 @@ public abstract class Gui {
this.drawBackground(); this.drawBackground();
if(this.gm.fbX != 0 && this.gm.fbY != 0) if(this.gm.fbX != 0 && this.gm.fbY != 0)
this.draw(); this.draw();
GlState.bindTexture(0); // GlState.bindTexture(0);
GlState.setActiveTexture(GL46.GL_TEXTURE0); // GlState.setActiveTexture(GL46C.GL_TEXTURE0);
GlState.enableTexture2D(); // GlState.enableTexture2D();
GlState.disableDepth(); // GlState.disableDepth();
this.drawPost(); this.drawPost();
GlState.disableDepth(); // GlState.disableDepth();
this.drawOverlays(); this.drawOverlays();
if(Bind.isWindowActive()) if(Bind.isWindowActive())
this.drawOverlay(); this.drawOverlay();

View file

@ -22,12 +22,12 @@ public class GuiMenu extends Gui {
private GuiMenu() { private GuiMenu() {
} }
public void drawMainBackground() { // public void drawMainBackground() {
if(this.gm.world != null) // if(this.gm.world != null)
super.drawMainBackground(); // super.drawMainBackground();
else // else
this.gm.renderer.renderStarField(this.gm.fbX, this.gm.fbY, 0x000000, 0xffffff, (float)this.ticks + this.gm.getTickFraction(), this.rand); // this.gm.renderer.renderStarField(this.gm.fbX, this.gm.fbY, 0x000000, 0xffffff, (float)this.ticks + this.gm.getTickFraction(), this.rand);
} // }
private final Random rand = new Random(); private final Random rand = new Random();

View file

@ -12,7 +12,7 @@ import java.util.List;
import javax.imageio.ImageIO; import javax.imageio.ImageIO;
import org.lwjgl.opengl.GL46; import org.lwjgl.opengl.GL46C;
import client.Client; import client.Client;
import client.Client.FileMode; import client.Client.FileMode;
@ -613,41 +613,41 @@ public class GuiChar extends GuiList<GuiChar.SkinEntry>
GlState.color(1.0F, 1.0F, 1.0F, 1.0F); GlState.color(1.0F, 1.0F, 1.0F, 1.0F);
GlState.enableDepth(); GlState.enableDepth();
GlState.enableColorMaterial(); GlState.enableColorMaterial();
GL46.glPushMatrix(); GL46C.glPushMatrix();
GL46.glTranslatef((float)posX, (float)posY, 200.0F); GL46C.glTranslatef((float)posX, (float)posY, 200.0F);
GL46.glScalef(-scale, scale, scale); GL46C.glScalef(-scale, scale, scale);
GL46.glRotatef(180.0F, 0.0F, 0.0F, 1.0F); GL46C.glRotatef(180.0F, 0.0F, 0.0F, 1.0F);
float f = ent.yawOffset; float f = ent.yawOffset;
float f1 = ent.rotYaw; float f1 = ent.rotYaw;
float f2 = ent.rotPitch; float f2 = ent.rotPitch;
float f3 = ent.prevHeadYaw; float f3 = ent.prevHeadYaw;
float f4 = ent.headYaw; float f4 = ent.headYaw;
GL46.glRotatef(135.0F, 0.0F, 1.0F, 0.0F); GL46C.glRotatef(135.0F, 0.0F, 1.0F, 0.0F);
ItemRenderer.enableStandardItemLighting(); ItemRenderer.enableStandardItemLighting();
GL46.glRotatef(-135.0F, 0.0F, 1.0F, 0.0F); GL46C.glRotatef(-135.0F, 0.0F, 1.0F, 0.0F);
GL46.glTranslatef(0.0F, ent.height / 2, 0.0F); GL46C.glTranslatef(0.0F, ent.height / 2, 0.0F);
GL46.glRotatef(-pitch, 1.0F, 0.0F, 0.0F); GL46C.glRotatef(-pitch, 1.0F, 0.0F, 0.0F);
ent.yawOffset = yaw; ent.yawOffset = yaw;
ent.rotYaw = yaw; ent.rotYaw = yaw;
ent.rotPitch = 0.0f; ent.rotPitch = 0.0f;
ent.headYaw = ent.rotYaw; ent.headYaw = ent.rotYaw;
ent.prevHeadYaw = ent.rotYaw; ent.prevHeadYaw = ent.rotYaw;
GL46.glTranslatef(0.0F, -(ent.height / 2), 0.0F); GL46C.glTranslatef(0.0F, -(ent.height / 2), 0.0F);
RenderManager rendermanager = Client.CLIENT.getRenderManager(); RenderManager rendermanager = Client.CLIENT.getRenderManager();
rendermanager.setPlayerViewY(180.0F); rendermanager.setPlayerViewY(180.0F);
rendermanager.renderEntity(ent, 0.0D, 0.0D, 0.0D, 1.0F); rendermanager.renderEntity(ent, 0.0D, 0.0D, 0.0D, 1.0F);
// GL46.glTranslatef(0.0F, 0.0F, 0.0F); // GL46C.glTranslatef(0.0F, 0.0F, 0.0F);
ent.yawOffset = f; ent.yawOffset = f;
ent.rotYaw = f1; ent.rotYaw = f1;
ent.rotPitch = f2; ent.rotPitch = f2;
ent.prevHeadYaw = f3; ent.prevHeadYaw = f3;
ent.headYaw = f4; ent.headYaw = f4;
GL46.glPopMatrix(); GL46C.glPopMatrix();
ItemRenderer.disableStandardItemLighting(); ItemRenderer.disableStandardItemLighting();
GlState.disableRescaleNormal(); GlState.disableRescaleNormal();
GlState.setActiveTexture(GL46.GL_TEXTURE1); GlState.setActiveTexture(GL46C.GL_TEXTURE1);
GlState.disableTexture2D(); GlState.disableTexture2D();
GlState.setActiveTexture(GL46.GL_TEXTURE0); GlState.setActiveTexture(GL46C.GL_TEXTURE0);
GlState.disableDepth(); GlState.disableDepth();
} }
} }

View file

@ -7,7 +7,7 @@ import java.util.Map;
import java.util.Set; import java.util.Set;
import java.util.Map.Entry; import java.util.Map.Entry;
import org.lwjgl.opengl.GL46; import org.lwjgl.opengl.GL46C;
import client.Client; import client.Client;
import client.gui.Font; import client.gui.Font;
@ -332,10 +332,10 @@ public abstract class GuiContainer extends Gui
} }
if(this.gm.itemCheat) { if(this.gm.itemCheat) {
GL46.glPushMatrix(); GL46C.glPushMatrix();
GL46.glTranslatef(-(float)((this.gm.fbX - this.xSize * this.container_scale) / 2) * (1.0f / (float)this.container_scale), -(float)((this.gm.fbY - this.ySize * this.container_scale) / 2) * (1.0f / (float)this.container_scale), 0.0f); GL46C.glTranslatef(-(float)((this.gm.fbX - this.xSize * this.container_scale) / 2) * (1.0f / (float)this.container_scale), -(float)((this.gm.fbY - this.ySize * this.container_scale) / 2) * (1.0f / (float)this.container_scale), 0.0f);
if(this.container_scale != 1) if(this.container_scale != 1)
GL46.glScalef(1.0f / (float)this.container_scale, 1.0f / (float)this.container_scale, 1.0f / (float)this.container_scale); GL46C.glScalef(1.0f / (float)this.container_scale, 1.0f / (float)this.container_scale, 1.0f / (float)this.container_scale);
int i = (ITEM_LIST.size() + this.cheatWidth - 1) / this.cheatWidth - this.cheatHeight; int i = (ITEM_LIST.size() + this.cheatWidth - 1) / this.cheatWidth - this.cheatHeight;
int j = (int)((double)(this.currentScroll * (float)i) + 0.5D); int j = (int)((double)(this.currentScroll * (float)i) + 0.5D);
@ -366,7 +366,7 @@ public abstract class GuiContainer extends Gui
{ {
this.drawTab(tabs); this.drawTab(tabs);
} }
GL46.glPopMatrix(); GL46C.glPopMatrix();
} }
} }
@ -421,7 +421,7 @@ public abstract class GuiContainer extends Gui
this.theSlot = null; this.theSlot = null;
int k = 240; int k = 240;
int l = 240; int l = 240;
GL46.glMultiTexCoord2f(GL46.GL_TEXTURE1, (float)k / 1.0F, (float)l / 1.0F); GL46C.glMultiTexCoord2f(GL46C.GL_TEXTURE1, (float)k / 1.0F, (float)l / 1.0F);
GlState.color(1.0F, 1.0F, 1.0F, 1.0F); GlState.color(1.0F, 1.0F, 1.0F, 1.0F);
this.drawSlots(mouseX, mouseY); this.drawSlots(mouseX, mouseY);
@ -487,7 +487,7 @@ public abstract class GuiContainer extends Gui
private void drawItemStack(ItemStack stack, int x, int y, String altText) private void drawItemStack(ItemStack stack, int x, int y, String altText)
{ {
GL46.glTranslatef(0.0F, 0.0F, 32.0F); GL46C.glTranslatef(0.0F, 0.0F, 32.0F);
this.itemRender.zLevel = 200.0F; this.itemRender.zLevel = 200.0F;
this.itemRender.renderItemAndEffectIntoGUI(stack, x, y); this.itemRender.renderItemAndEffectIntoGUI(stack, x, y);
this.drawnOverlays.add(new Overlay(stack, x, y, altText)); this.drawnOverlays.add(new Overlay(stack, x, y, altText));
@ -526,12 +526,12 @@ public abstract class GuiContainer extends Gui
} }
public void drawPost() { public void drawPost() {
GL46.glPushMatrix(); GL46C.glPushMatrix();
GL46.glTranslatef((float)((this.gm.fbX - this.xSize * this.container_scale) / 2), (float)((this.gm.fbY - this.ySize * this.container_scale) / 2), 0.0f); GL46C.glTranslatef((float)((this.gm.fbX - this.xSize * this.container_scale) / 2), (float)((this.gm.fbY - this.ySize * this.container_scale) / 2), 0.0f);
if(this.container_scale != 1) if(this.container_scale != 1)
GL46.glScalef((float)this.container_scale, (float)this.container_scale, (float)this.container_scale); GL46C.glScalef((float)this.container_scale, (float)this.container_scale, (float)this.container_scale);
this.drawScreen((this.gm.mouseX - this.container_x) / this.container_scale, (this.gm.mouseY - this.container_y) / this.container_scale); this.drawScreen((this.gm.mouseX - this.container_x) / this.container_scale, (this.gm.mouseY - this.container_y) / this.container_scale);
GL46.glPopMatrix(); GL46C.glPopMatrix();
ItemRenderer.disableStandardItemLighting(); ItemRenderer.disableStandardItemLighting();
} }

View file

@ -1,6 +1,6 @@
package client.gui.container; package client.gui.container;
import org.lwjgl.opengl.GL46; import org.lwjgl.opengl.GL46C;
import client.gui.element.ActButton; import client.gui.element.ActButton;
import client.gui.element.ButtonCallback; import client.gui.element.ButtonCallback;
@ -96,7 +96,7 @@ public class GuiMerchant extends GuiContainer implements ButtonCallback {
ItemStack itemstack = merchantrecipe.first(); ItemStack itemstack = merchantrecipe.first();
ItemStack itemstack1 = merchantrecipe.second(); ItemStack itemstack1 = merchantrecipe.second();
ItemStack itemstack2 = merchantrecipe.result(); ItemStack itemstack2 = merchantrecipe.result();
GL46.glPushMatrix(); GL46C.glPushMatrix();
ItemRenderer.enableGUIStandardItemLighting(); ItemRenderer.enableGUIStandardItemLighting();
GlState.disableLighting(); GlState.disableLighting();
GlState.enableRescaleNormal(); GlState.enableRescaleNormal();
@ -123,7 +123,7 @@ public class GuiMerchant extends GuiContainer implements ButtonCallback {
this.renderToolTip(itemstack2, mouseX, mouseY); this.renderToolTip(itemstack2, mouseX, mouseY);
} }
GL46.glPopMatrix(); GL46C.glPopMatrix();
GlState.enableLighting(); GlState.enableLighting();
GlState.enableDepth(); GlState.enableDepth();
ItemRenderer.enableStandardItemLighting(); ItemRenderer.enableStandardItemLighting();

View file

@ -1,6 +1,6 @@
package client.gui.element; package client.gui.element;
import org.lwjgl.opengl.GL46; import org.lwjgl.opengl.GL46C;
import client.Client; import client.Client;
import client.gui.Formatter; import client.gui.Formatter;
@ -222,7 +222,7 @@ public abstract class Element {
int y2 = this.size_y - (this.margin_y1 + this.margin_y2); int y2 = this.size_y - (this.margin_y1 + this.margin_y2);
// if(elem.type == ElemType.FIELD) { // if(elem.type == ElemType.FIELD) {
this.gm.scissor(x1 < 0 ? 0 : x1, (this.gm.fbY - (y1 + y2)) < 0 ? 0 : (this.gm.fbY - (y1 + y2)), x2 < 0 ? 0 : x2, y2 < 0 ? 0 : y2); this.gm.scissor(x1 < 0 ? 0 : x1, (this.gm.fbY - (y1 + y2)) < 0 ? 0 : (this.gm.fbY - (y1 + y2)), x2 < 0 ? 0 : x2, y2 < 0 ? 0 : y2);
GL46.glEnable(GL46.GL_SCISSOR_TEST); GL46C.glEnable(GL46C.GL_SCISSOR_TEST);
// } // }
// if(this.type == ElemType.CUSTOM) // if(this.type == ElemType.CUSTOM)
// this.func(this, 1); // this.func(this, 1);
@ -230,7 +230,7 @@ public abstract class Element {
this.drawForeground(x1, y1, x2, y2); this.drawForeground(x1, y1, x2, y2);
// logd("DBG", "%d @ %d %d -> %d %d", elem.id, x1, y1, elem.pos_x + x2, elem.pos_y + y2); // logd("DBG", "%d @ %d %d -> %d %d", elem.id, x1, y1, elem.pos_x + x2, elem.pos_y + y2);
// if(elem.type == ElemType.FIELD) { // if(elem.type == ElemType.FIELD) {
GL46.glDisable(GL46.GL_SCISSOR_TEST); GL46C.glDisable(GL46C.GL_SCISSOR_TEST);
// glScissor(0, 0, sys.fb_x, sys.fb_y); // glScissor(0, 0, sys.fb_x, sys.fb_y);
// } // }
} }

View file

@ -1,6 +1,6 @@
package client.gui.element; package client.gui.element;
import org.lwjgl.opengl.GL46; import org.lwjgl.opengl.GL46C;
import client.gui.Font; import client.gui.Font;
import client.renderer.Drawing; import client.renderer.Drawing;
@ -242,9 +242,9 @@ abstract class Textbox extends Element {
int x2 = this.size_x - (this.margin_x1 + this.margin_x2); int x2 = this.size_x - (this.margin_x1 + this.margin_x2);
int y2 = this.size_y - (this.margin_y1 + this.margin_y2); int y2 = this.size_y - (this.margin_y1 + this.margin_y2);
this.gm.scissor(x1 < 0 ? 0 : x1, (this.gm.fbY - (y1 + y2)) < 0 ? 0 : (this.gm.fbY - (y1 + y2)), x2 < 0 ? 0 : x2, y2 < 0 ? 0 : y2); this.gm.scissor(x1 < 0 ? 0 : x1, (this.gm.fbY - (y1 + y2)) < 0 ? 0 : (this.gm.fbY - (y1 + y2)), x2 < 0 ? 0 : x2, y2 < 0 ? 0 : y2);
GL46.glEnable(GL46.GL_SCISSOR_TEST); GL46C.glEnable(GL46C.GL_SCISSOR_TEST);
Drawing.drawRect(this.getCursorX(x1, x2), this.getCursorY(y1, y2), 1, Font.HEIGHT, 0xff000000 | (~Util.mixColor(this.gm.style.field_top, this.gm.style.field_btm))); Drawing.drawRect(this.getCursorX(x1, x2), this.getCursorY(y1, y2), 1, Font.HEIGHT, 0xff000000 | (~Util.mixColor(this.gm.style.field_top, this.gm.style.field_btm)));
GL46.glDisable(GL46.GL_SCISSOR_TEST); GL46C.glDisable(GL46C.GL_SCISSOR_TEST);
} }
} }

View file

@ -134,7 +134,6 @@ public abstract class RenderRegistry {
map.put(EntityXp.class, new RenderXp(mgr)); map.put(EntityXp.class, new RenderXp(mgr));
map.put(EntityTnt.class, new RenderTntPrimed(mgr)); map.put(EntityTnt.class, new RenderTntPrimed(mgr));
map.put(EntityFalling.class, new RenderFallingBlock(mgr)); map.put(EntityFalling.class, new RenderFallingBlock(mgr));
map.put(EntityTntCart.class, new RenderTntMinecart(mgr));
map.put(EntityCart.class, new RenderMinecart(mgr)); map.put(EntityCart.class, new RenderMinecart(mgr));
map.put(EntityBoat.class, new RenderBoat(mgr)); map.put(EntityBoat.class, new RenderBoat(mgr));
map.put(EntityHook.class, new RenderFish(mgr)); map.put(EntityHook.class, new RenderFish(mgr));

View file

@ -1,63 +0,0 @@
package client.renderer;
public class DefaultVertexFormats
{
public static final VertexFormat BLOCK = new VertexFormat();
public static final VertexFormat ITEM = new VertexFormat();
public static final VertexFormat OLDMODEL_POSITION_TEX_NORMAL = new VertexFormat();
public static final VertexFormat PARTICLE_POSITION_TEX_COLOR_LMAP = new VertexFormat();
public static final VertexFormat POSITION = new VertexFormat();
public static final VertexFormat POSITION_COLOR = new VertexFormat();
public static final VertexFormat POSITION_TEX = new VertexFormat();
public static final VertexFormat POSITION_NORMAL = new VertexFormat();
public static final VertexFormat POSITION_TEX_COLOR = new VertexFormat();
public static final VertexFormat POSITION_TEX_NORMAL = new VertexFormat();
public static final VertexFormat POSITION_TEX_COLOR_NORMAL = new VertexFormat();
public static final VertexFormatElement POSITION_3F = new VertexFormatElement(0, VertexFormatElement.EnumType.FLOAT, VertexFormatElement.EnumUsage.POSITION, 3);
public static final VertexFormatElement COLOR_4UB = new VertexFormatElement(0, VertexFormatElement.EnumType.UBYTE, VertexFormatElement.EnumUsage.COLOR, 4);
public static final VertexFormatElement TEX_2F = new VertexFormatElement(0, VertexFormatElement.EnumType.FLOAT, VertexFormatElement.EnumUsage.UV, 2);
public static final VertexFormatElement TEX_2S = new VertexFormatElement(1, VertexFormatElement.EnumType.SHORT, VertexFormatElement.EnumUsage.UV, 2);
public static final VertexFormatElement NORMAL_3B = new VertexFormatElement(0, VertexFormatElement.EnumType.BYTE, VertexFormatElement.EnumUsage.NORMAL, 3);
public static final VertexFormatElement PADDING_1B = new VertexFormatElement(0, VertexFormatElement.EnumType.BYTE, VertexFormatElement.EnumUsage.PADDING, 1);
static
{
BLOCK.addElement(POSITION_3F);
BLOCK.addElement(COLOR_4UB);
BLOCK.addElement(TEX_2F);
BLOCK.addElement(TEX_2S);
ITEM.addElement(POSITION_3F);
ITEM.addElement(COLOR_4UB);
ITEM.addElement(TEX_2F);
ITEM.addElement(NORMAL_3B);
ITEM.addElement(PADDING_1B);
OLDMODEL_POSITION_TEX_NORMAL.addElement(POSITION_3F);
OLDMODEL_POSITION_TEX_NORMAL.addElement(TEX_2F);
OLDMODEL_POSITION_TEX_NORMAL.addElement(NORMAL_3B);
OLDMODEL_POSITION_TEX_NORMAL.addElement(PADDING_1B);
PARTICLE_POSITION_TEX_COLOR_LMAP.addElement(POSITION_3F);
PARTICLE_POSITION_TEX_COLOR_LMAP.addElement(TEX_2F);
PARTICLE_POSITION_TEX_COLOR_LMAP.addElement(COLOR_4UB);
PARTICLE_POSITION_TEX_COLOR_LMAP.addElement(TEX_2S);
POSITION.addElement(POSITION_3F);
POSITION_COLOR.addElement(POSITION_3F);
POSITION_COLOR.addElement(COLOR_4UB);
POSITION_TEX.addElement(POSITION_3F);
POSITION_TEX.addElement(TEX_2F);
POSITION_NORMAL.addElement(POSITION_3F);
POSITION_NORMAL.addElement(NORMAL_3B);
POSITION_NORMAL.addElement(PADDING_1B);
POSITION_TEX_COLOR.addElement(POSITION_3F);
POSITION_TEX_COLOR.addElement(TEX_2F);
POSITION_TEX_COLOR.addElement(COLOR_4UB);
POSITION_TEX_NORMAL.addElement(POSITION_3F);
POSITION_TEX_NORMAL.addElement(TEX_2F);
POSITION_TEX_NORMAL.addElement(NORMAL_3B);
POSITION_TEX_NORMAL.addElement(PADDING_1B);
POSITION_TEX_COLOR_NORMAL.addElement(POSITION_3F);
POSITION_TEX_COLOR_NORMAL.addElement(TEX_2F);
POSITION_TEX_COLOR_NORMAL.addElement(COLOR_4UB);
POSITION_TEX_COLOR_NORMAL.addElement(NORMAL_3B);
POSITION_TEX_COLOR_NORMAL.addElement(PADDING_1B);
}
}

View file

@ -1,10 +1,9 @@
package client.renderer; package client.renderer;
import org.lwjgl.opengl.GL46;
import client.Client; import client.Client;
import client.gui.Font; import client.gui.Font;
import client.gui.FontChar; import client.gui.FontChar;
import client.renderer.Shader.ShaderContext;
import common.log.Log; import common.log.Log;
import common.util.Color; import common.util.Color;
import common.util.Util; import common.util.Util;
@ -30,15 +29,10 @@ public abstract class Drawing {
} }
public static void txt_draw(int x, int y, int x1, int y1, int x2, int y2, int color, String str) { public static void txt_draw(int x, int y, int x1, int y1, int x2, int y2, int color, String str) {
GlState.enableTexture2D(); ShaderContext context = Shader.UI_TEXTURE.use();
GlState.enableBlend();
GlState.disableAlpha();
GlState.tryBlendFuncSeparate(GL46.GL_SRC_ALPHA, GL46.GL_ONE_MINUS_SRC_ALPHA, GL46.GL_ONE, GL46.GL_ZERO);
GlState.shadeModel(GL46.GL_SMOOTH);
GlState.color(1.0f, 1.0f, 1.0f, 1.0f);
Font.bindTexture(); Font.bindTexture();
RenderBuffer rb = Tessellator.getBuffer(); RenderBuffer rb = RenderBuffer.getBuffer();
rb.begin(GL46.GL_QUADS, DefaultVertexFormats.POSITION_TEX_COLOR); rb.begin();
int h = Font.HEIGHT; int h = Font.HEIGHT;
int tx, ty, u, v; int tx, ty, u, v;
FontChar glyph; FontChar glyph;
@ -75,14 +69,11 @@ public abstract class Drawing {
if(x < x1 || y < y1 || x > x2 || y > y2) { if(x < x1 || y < y1 || x > x2 || y > y2) {
break; break;
} }
putGlyph(rb, Font.WIDTH * 16, Font.HEIGHT * 16, x, y, (ch & 0x0f) * Font.WIDTH + glyph.s, ((ch & 0xf0) >> 4) * Font.HEIGHT, glyph.u, h, ncolor, 0.0); putGlyph(rb, Font.WIDTH * 16, Font.HEIGHT * 16, x, y, (ch & 0x0f) * Font.WIDTH + glyph.s, ((ch & 0xf0) >> 4) * Font.HEIGHT, glyph.u, h, ncolor);
x += u; x += u;
} }
Tessellator.draw(); rb.draw();
GlState.shadeModel(GL46.GL_FLAT); context.finish();
GlState.disableBlend();
GlState.enableAlpha();
GlState.enableTexture2D();
} }
public static void txt_overlay(int start, int end, int x, int y, int x1, int y1, int x2, int y2, int back, String str) { public static void txt_overlay(int start, int end, int x, int y, int x1, int y1, int x2, int y2, int back, String str) {
@ -92,13 +83,6 @@ public abstract class Drawing {
char ch; char ch;
int pos = 0; int pos = 0;
int lpos = 0; int lpos = 0;
// ShaderContext shd = Shader.TEXT.use();
// shd.setVec2("font_size", (float)font.xglyph, (float)font.yglyph);
// shd.setInt("flags", 0);
// shd.setColor("color", 0x00000000);
// shd.setColor("back", back);
// shd.setInt("ch_index", Log.CHR_SPC & 0xff);
// GlState.bindTexture(font.textures[Log.CHR_SPC >> 8]);
while(true) { while(true) {
pos = lpos; pos = lpos;
if(lpos >= str.length()) if(lpos >= str.length())
@ -129,15 +113,10 @@ public abstract class Drawing {
break; break;
} }
if(pos >= start && pos < end) { if(pos >= start && pos < end) {
// shd.setVec2("offset", (float)x, (float)y);
// shd.setVec2("size", (float)u, (float)v);
// shd.setVec4("glyph", (float)glyph.s, 0.0f, (float)glyph.u, (float)h);
// shd.draw();
drawRect(x, y, u, v, back); drawRect(x, y, u, v, back);
} }
x += u; x += u;
} }
// shd.discard();
} }
public static Vec2i txt_size(int x, int y, int x1, int y1, int x2, int y2, String str) { public static Vec2i txt_size(int x, int y, int x1, int y1, int x2, int y2, String str) {
@ -278,26 +257,23 @@ public abstract class Drawing {
} }
private static void putGlyph(RenderBuffer rb, int tw, int th, int x, int y, int textureX, int textureY, int width, int height, int color, double depth) private static void putGlyph(RenderBuffer rb, int tw, int th, int x, int y, int textureX, int textureY, int width, int height, int color)
{ {
float xs = 1.0f / (float)tw; float xs = 1.0f / (float)tw;
float ys = 1.0f / (float)th; float ys = 1.0f / (float)th;
rb.pos((double)(x + 0), (double)(y + height), depth).tex((double)((float)(textureX + 0) * xs), (double)((float)(textureY + height) * ys)).color(color).endVertex(); rb.put2d(x + 0, y + height, (float)(textureX + 0) * xs, (float)(textureY + height) * ys, color);
rb.pos((double)(x + width), (double)(y + height), depth).tex((double)((float)(textureX + width) * xs), (double)((float)(textureY + height) * ys)).color(color).endVertex(); rb.put2d(x + width, y + height, (float)(textureX + width) * xs, (float)(textureY + height) * ys, color);
rb.pos((double)(x + width), (double)(y + 0), depth).tex((double)((float)(textureX + width) * xs), (double)((float)(textureY + 0) * ys)).color(color).endVertex(); rb.put2d(x + width, y + height, (float)(textureX + width) * xs, (float)(textureY + height) * ys, color);
rb.pos((double)(x + 0), (double)(y + 0), depth).tex((double)((float)(textureX + 0) * xs), (double)((float)(textureY + 0) * ys)).color(color).endVertex(); rb.put2d(x + width, y + 0, (float)(textureX + width) * xs, (float)(textureY + 0) * ys, color);
rb.put2d(x + width, y + 0, (float)(textureX + width) * xs, (float)(textureY + 0) * ys, color);
rb.put2d(x + 0, y + 0, (float)(textureX + 0) * xs, (float)(textureY + 0) * ys, color);
} }
public static void drawText(String str, int x, int y, int color, boolean shadow) { private static void drawText(String str, int x, int y, int color, boolean shadow) {
GlState.enableTexture2D(); ShaderContext context = Shader.UI_TEXTURE.use();
GlState.enableBlend();
GlState.disableAlpha();
GlState.tryBlendFuncSeparate(GL46.GL_SRC_ALPHA, GL46.GL_ONE_MINUS_SRC_ALPHA, GL46.GL_ONE, GL46.GL_ZERO);
GlState.shadeModel(GL46.GL_SMOOTH);
GlState.color(1.0f, 1.0f, 1.0f, 1.0f);
Font.bindTexture(); Font.bindTexture();
RenderBuffer rb = Tessellator.getBuffer(); RenderBuffer rb = RenderBuffer.getBuffer();
rb.begin(GL46.GL_QUADS, DefaultVertexFormats.POSITION_TEX_COLOR); rb.begin();
int ox = x; int ox = x;
int ncolor = color; int ncolor = color;
FontChar glyph; FontChar glyph;
@ -329,7 +305,7 @@ public abstract class Drawing {
continue; continue;
else if(glyph.u == 0) else if(glyph.u == 0)
glyph = Font.SIZES[Log.CHR_UNK]; glyph = Font.SIZES[Log.CHR_UNK];
putGlyph(rb, Font.WIDTH * 16, Font.HEIGHT * 16, x + 1, y + 1, (ch & 0x0f) * Font.WIDTH + glyph.s, ((ch & 0xf0) >> 4) * Font.HEIGHT, glyph.u, Font.HEIGHT, bcolor, -0.01); putGlyph(rb, Font.WIDTH * 16, Font.HEIGHT * 16, x + 1, y + 1, (ch & 0x0f) * Font.WIDTH + glyph.s, ((ch & 0xf0) >> 4) * Font.HEIGHT, glyph.u, Font.HEIGHT, bcolor);
x += glyph.u + 3 - glyph.s; x += glyph.u + 3 - glyph.s;
} }
x = ox; x = ox;
@ -357,14 +333,11 @@ public abstract class Drawing {
continue; continue;
else if(glyph.u == 0) else if(glyph.u == 0)
glyph = Font.SIZES[Log.CHR_UNK]; glyph = Font.SIZES[Log.CHR_UNK];
putGlyph(rb, Font.WIDTH * 16, Font.HEIGHT * 16, x, y, (ch & 0x0f) * Font.WIDTH + glyph.s, ((ch & 0xf0) >> 4) * Font.HEIGHT, glyph.u, Font.HEIGHT, ncolor, -0.02); putGlyph(rb, Font.WIDTH * 16, Font.HEIGHT * 16, x, y, (ch & 0x0f) * Font.WIDTH + glyph.s, ((ch & 0xf0) >> 4) * Font.HEIGHT, glyph.u, Font.HEIGHT, ncolor);
x += glyph.u + 3 - glyph.s; x += glyph.u + 3 - glyph.s;
} }
Tessellator.draw(); rb.draw();
GlState.shadeModel(GL46.GL_FLAT); context.finish();
GlState.disableBlend();
GlState.enableAlpha();
GlState.enableTexture2D();
} }
public static Vec2i getSize(String str) { public static Vec2i getSize(String str) {
@ -400,22 +373,17 @@ public abstract class Drawing {
public static void drawGradient(int x, int y, int w, int h, int top, int bottom) public static void drawGradient(int x, int y, int w, int h, int top, int bottom)
{ {
GlState.disableTexture2D(); ShaderContext context = Shader.UI_COLOR.use();
GlState.enableBlend(); RenderBuffer rb = RenderBuffer.getBuffer();
GlState.disableAlpha(); rb.begin();
GlState.tryBlendFuncSeparate(GL46.GL_SRC_ALPHA, GL46.GL_ONE_MINUS_SRC_ALPHA, GL46.GL_ONE, GL46.GL_ZERO); rb.put2d(x + w, y, top);
GlState.shadeModel(GL46.GL_SMOOTH); rb.put2d(x, y, top);
RenderBuffer buf = Tessellator.getBuffer(); rb.put2d(x, y, top);
buf.begin(GL46.GL_QUADS, DefaultVertexFormats.POSITION_COLOR); rb.put2d(x, y + h, bottom);
buf.pos((double)(x + w), (double)y, 0.0).color(top).endVertex(); rb.put2d(x, y + h, bottom);
buf.pos((double)x, (double)y, 0.0).color(top).endVertex(); rb.put2d(x + w, y + h, bottom);
buf.pos((double)x, (double)(y + h), 0.0).color(bottom).endVertex(); rb.draw();
buf.pos((double)(x + w), (double)(y + h), 0.0).color(bottom).endVertex(); context.finish();
Tessellator.draw();
GlState.shadeModel(GL46.GL_FLAT);
GlState.disableBlend();
GlState.enableAlpha();
GlState.enableTexture2D();
} }
// public static void draw4Gradient(int x, int y, int w, int h, int topleft, int topright, int btmleft, int btmright) // public static void draw4Gradient(int x, int y, int w, int h, int topleft, int topright, int btmleft, int btmright)
@ -423,16 +391,16 @@ public abstract class Drawing {
// GlState.disableTexture2D(); // GlState.disableTexture2D();
// GlState.enableBlend(); // GlState.enableBlend();
// GlState.disableAlpha(); // GlState.disableAlpha();
// GlState.tryBlendFuncSeparate(GL46.GL_SRC_ALPHA, GL46.GL_ONE_MINUS_SRC_ALPHA, GL46.GL_ONE, GL46.GL_ZERO); // GlState.tryBlendFuncSeparate(GL46C.GL_SRC_ALPHA, GL46C.GL_ONE_MINUS_SRC_ALPHA, GL46C.GL_ONE, GL46C.GL_ZERO);
// GlState.shadeModel(GL46.GL_SMOOTH); // GlState.shadeModel(GL46C.GL_SMOOTH);
// RenderBuffer buf = Tessellator.getBuffer(); // RenderBuffer buf = Tessellator.getBuffer();
// buf.begin(GL46.GL_QUADS, DefaultVertexFormats.POSITION_COLOR); // buf.begin(GL46C.GL_QUADS, POSITION_COLOR);
// buf.pos((double)(x + w), (double)y, 0.0).color(topright).endVertex(); // buf.pos((double)(x + w), (double)y, 0.0).color(topright).endVertex();
// buf.pos((double)x, (double)y, 0.0).color(topleft).endVertex(); // buf.pos((double)x, (double)y, 0.0).color(topleft).endVertex();
// buf.pos((double)x, (double)(y + h), 0.0).color(btmleft).endVertex(); // buf.pos((double)x, (double)(y + h), 0.0).color(btmleft).endVertex();
// buf.pos((double)(x + w), (double)(y + h), 0.0).color(btmright).endVertex(); // buf.pos((double)(x + w), (double)(y + h), 0.0).color(btmright).endVertex();
// Tessellator.draw(); // Tessellator.draw();
// GlState.shadeModel(GL46.GL_FLAT); // GlState.shadeModel(GL46C.GL_FLAT);
// GlState.disableBlend(); // GlState.disableBlend();
// GlState.enableAlpha(); // GlState.enableAlpha();
// GlState.enableTexture2D(); // GlState.enableTexture2D();
@ -440,24 +408,18 @@ public abstract class Drawing {
public static void drawRect(int x, int y, int w, int h, int color) public static void drawRect(int x, int y, int w, int h, int color)
{ {
RenderBuffer rb = Tessellator.getBuffer(); ShaderContext context = Shader.UI_COLOR.use();
GlState.enableBlend(); RenderBuffer rb = RenderBuffer.getBuffer();
GlState.disableAlpha(); rb.begin();
GlState.disableTexture2D(); rb.setColor(color);
GlState.tryBlendFuncSeparate(GL46.GL_SRC_ALPHA, GL46.GL_ONE_MINUS_SRC_ALPHA, GL46.GL_ONE, GL46.GL_ZERO); rb.put2d(x, y + h);
GlState.shadeModel(GL46.GL_SMOOTH); rb.put2d(x + w, y + h);
GlState.color(color); rb.put2d(x + w, y + h);
rb.begin(GL46.GL_QUADS, DefaultVertexFormats.POSITION); rb.put2d(x + w, y);
rb.pos((double)x, (double)(y + h), 0.0D).endVertex(); rb.put2d(x + w, y);
rb.pos((double)(x + w), (double)(y + h), 0.0D).endVertex(); rb.put2d(x, y);
rb.pos((double)(x + w), (double)y, 0.0D).endVertex(); rb.draw();
rb.pos((double)x, (double)y, 0.0D).endVertex(); context.finish();
Tessellator.draw();
GlState.shadeModel(GL46.GL_FLAT);
GlState.enableTexture2D();
GlState.disableBlend();
GlState.enableAlpha();
GlState.color(1.0f, 1.0f, 1.0f, 1.0f);
} }
public static void drawRectBorder(int x, int y, int w, int h, int color, int border, int topleft, int btmright) { public static void drawRectBorder(int x, int y, int w, int h, int color, int border, int topleft, int btmright) {
@ -543,11 +505,6 @@ public abstract class Drawing {
drawText(str, x, y, color, true); drawText(str, x, y, color, true);
} }
public static void drawTextCenteredN(String str, int x, int y, int color) {
Vec2i size = getSize(str);
drawText(str, x - size.xpos / 2, y, color, false);
}
public static void drawTextCentered(String str, int x, int y, int color) { public static void drawTextCentered(String str, int x, int y, int color) {
Vec2i size = getSize(str); Vec2i size = getSize(str);
drawText(str, x - size.xpos / 2, y, color); drawText(str, x - size.xpos / 2, y, color);
@ -568,45 +525,146 @@ public abstract class Drawing {
} }
public static void drawScaled(Client gm, String texture, int x, int y, int width, int height, int color) { public static void drawScaled(Client gm, String texture, int x, int y, int width, int height, int color) {
GlState.enableTexture2D(); ShaderContext context = Shader.UI_TEXTURE.use();
GlState.disableLighting();
GlState.disableFog();
RenderBuffer buf = Tessellator.getBuffer();
gm.getTextureManager().bindTexture(texture); gm.getTextureManager().bindTexture(texture);
GlState.color(color); RenderBuffer rb = RenderBuffer.getBuffer();
rb.begin();
rb.setColor(color);
double scale = 32.0; double scale = 32.0;
buf.begin(GL46.GL_QUADS, DefaultVertexFormats.POSITION_TEX); rb.put2d(x, y + height, 0.0, (double)height / scale);
buf.pos((double)x, (double)y + (double)height, 0.0D).tex(0.0D, (double)height / scale).endVertex(); rb.put2d(x + width, y + height, (double)width / scale, (double)height / scale);
buf.pos((double)x + (double)width, (double)y + (double)height, 0.0D).tex((double)width / scale, (double)height / scale).endVertex(); rb.put2d(x + width, y + height, (double)width / scale, (double)height / scale);
buf.pos((double)x + (double)width, (double)y, 0.0D).tex((double)width / scale, 0.0).endVertex(); rb.put2d(x + width, y, (double)width / scale, 0.0);
buf.pos((double)x, (double)y, 0.0D).tex(0.0D, 0.0).endVertex(); rb.put2d(x + width, y, (double)width / scale, 0.0);
Tessellator.draw(); rb.put2d(x, y, 0.0, 0.0);
GlState.disableTexture2D(); rb.draw();
GlState.color(1.0F, 1.0F, 1.0F, 1.0F); context.finish();
} }
public static void drawTexturedRect(Client gm, String texture, int texWidth, int texHeight, int x, int y, int u, int v, int width, int height) public static void drawTexturedRect(Client gm, String texture, int texWidth, int texHeight, int x, int y, int u, int v, int width, int height) {
{ ShaderContext context = Shader.UI_TEXTURE.use();
GlState.enableTexture2D();
// GlState.disableFog();
RenderBuffer buf = Tessellator.getBuffer();
gm.getTextureManager().bindTexture(texture); gm.getTextureManager().bindTexture(texture);
// GlState.color(color); RenderBuffer rb = RenderBuffer.getBuffer();
float xs = 1.0f / (float)texWidth; // 0.00390625F; rb.begin();
float ys = 1.0f / (float)texHeight; // 0.00390625F; float xs = 1.0f / (float)texWidth; // 0.00390625F;
buf.begin(GL46.GL_QUADS, DefaultVertexFormats.POSITION_TEX); float ys = 1.0f / (float)texHeight; // 0.00390625F;
buf.pos((double)(x + 0), (double)(y + height), 0.0).tex((double)((float)(u + 0) * xs), (double)((float)(v + height) * ys)).endVertex(); rb.put2d(x + 0, y + height, (float)(u + 0) * xs, (float)(v + height) * ys);
buf.pos((double)(x + width), (double)(y + height), 0.0).tex((double)((float)(u + width) * xs), (double)((float)(v + height) * ys)).endVertex(); rb.put2d(x + width, y + height, (float)(u + width) * xs, (float)(v + height) * ys);
buf.pos((double)(x + width), (double)(y + 0), 0.0).tex((double)((float)(u + width) * xs), (double)((float)(v + 0) * ys)).endVertex(); rb.put2d(x + width, y + height, (float)(u + width) * xs, (float)(v + height) * ys);
buf.pos((double)(x + 0), (double)(y + 0), 0.0).tex((double)((float)(u + 0) * xs), (double)((float)(v + 0) * ys)).endVertex(); rb.put2d(x + width, y + 0, (float)(u + width) * xs, (float)(v + 0) * ys);
// double scale = 32.0; rb.put2d(x + width, y + 0, (float)(u + width) * xs, (float)(v + 0) * ys);
// buf.begin(GL46.GL_QUADS, DefaultVertexFormats.POSITION_TEX); rb.put2d(x + 0, y + 0, (float)(u + 0) * xs, (float)(v + 0) * ys);
// buf.pos((double)x, (double)y + (double)height, 0.0D).tex(0.0D, (double)height / scale).endVertex(); rb.draw();
// buf.pos((double)x + (double)width, (double)y + (double)height, 0.0D).tex((double)width / scale, (double)height / scale).endVertex(); context.finish();
// buf.pos((double)x + (double)width, (double)y, 0.0D).tex((double)width / scale, 0.0).endVertex(); }
// buf.pos((double)x, (double)y, 0.0D).tex(0.0D, 0.0).endVertex();
Tessellator.draw();
// GlState.disableTexture2D(); private static void putGlyph3d(RenderBuffer rb, int tw, int th, int x, int y, int textureX, int textureY, int width, int height, int color, double depth) {
GlState.color(1.0F, 1.0F, 1.0F, 1.0F); float xs = 1.0f / (float)tw;
} float ys = 1.0f / (float)th;
rb.put(x + 0, y + height, depth, (float)(textureX + 0) * xs, (float)(textureY + height) * ys, color);
rb.put(x + width, y + height, depth, (float)(textureX + width) * xs, (float)(textureY + height) * ys, color);
rb.put(x + width, y + height, depth, (float)(textureX + width) * xs, (float)(textureY + height) * ys, color);
rb.put(x + width, y + 0, depth, (float)(textureX + width) * xs, (float)(textureY + 0) * ys, color);
rb.put(x + width, y + 0, depth, (float)(textureX + width) * xs, (float)(textureY + 0) * ys, color);
rb.put(x + 0, y + 0, depth, (float)(textureX + 0) * xs, (float)(textureY + 0) * ys, color);
}
private static void drawText3d(String str, int x, int y, int color, boolean shadow) {
ShaderContext context = Shader.UI_TEXTURE.use();
Font.bindTexture();
RenderBuffer rb = RenderBuffer.getBuffer();
rb.begin();
int ox = x;
int ncolor = color;
FontChar glyph;
char ch;
if(shadow) {
int oy = y;
int scolor = Util.mixColor(color, color & 0xff000000);
scolor = Util.mixColor(scolor, scolor & 0xff000000);
int bcolor = scolor;
for(int z = 0; z < str.length(); z++) {
ch = str.charAt(z);
if(ch == Log.CHR_NLN) {
x = ox;
y += Font.HEIGHT;
continue;
}
else if((ch >= Log.CHR_COLORS1 && ch <= Log.CHR_COLORE1) || (ch >= Log.CHR_COLORS2 && ch <= Log.CHR_COLORE2)) {
bcolor = Color.getShadow(ch) | (scolor & 0xff000000);
continue;
}
else if(ch == Log.CHR_CRESET) {
bcolor = scolor;
continue;
}
if(ch >= 256)
ch = Log.CHR_UNK;
glyph = Font.SIZES[ch];
if(glyph.u == 0 && glyph.v != 0)
continue;
else if(glyph.u == 0)
glyph = Font.SIZES[Log.CHR_UNK];
putGlyph3d(rb, Font.WIDTH * 16, Font.HEIGHT * 16, x + 1, y + 1, (ch & 0x0f) * Font.WIDTH + glyph.s, ((ch & 0xf0) >> 4) * Font.HEIGHT, glyph.u, Font.HEIGHT, bcolor, -0.01);
x += glyph.u + 3 - glyph.s;
}
x = ox;
y = oy;
}
for(int z = 0; z < str.length(); z++) {
ch = str.charAt(z);
if(ch == Log.CHR_NLN) {
x = ox;
y += Font.HEIGHT;
continue;
}
else if((ch >= Log.CHR_COLORS1 && ch <= Log.CHR_COLORE1) || (ch >= Log.CHR_COLORS2 && ch <= Log.CHR_COLORE2)) {
ncolor = Color.getColor(ch) | (color & 0xff000000);
continue;
}
else if(ch == Log.CHR_CRESET) {
ncolor = color;
continue;
}
if(ch >= 256)
ch = Log.CHR_UNK;
glyph = Font.SIZES[ch];
if(glyph.u == 0 && glyph.v != 0)
continue;
else if(glyph.u == 0)
glyph = Font.SIZES[Log.CHR_UNK];
putGlyph3d(rb, Font.WIDTH * 16, Font.HEIGHT * 16, x, y, (ch & 0x0f) * Font.WIDTH + glyph.s, ((ch & 0xf0) >> 4) * Font.HEIGHT, glyph.u, Font.HEIGHT, ncolor, -0.02);
x += glyph.u + 3 - glyph.s;
}
rb.draw();
context.finish();
}
private static void drawRect3d(int x, int y, int w, int h, int color) {
ShaderContext context = Shader.UI_COLOR.use();
RenderBuffer rb = RenderBuffer.getBuffer();
rb.begin();
rb.setColor(color);
rb.put2d(x, y + h);
rb.put2d(x + w, y + h);
rb.put2d(x + w, y + h);
rb.put2d(x + w, y);
rb.put2d(x + w, y);
rb.put2d(x, y);
rb.draw();
context.finish();
}
public static void drawTextCentered3d(String str, int x, int y, int color) {
Vec2i size = getSize(str);
drawText3d(str, x - size.xpos / 2, y, color, false);
}
public static void drawTextboxCentered3d(String str, int x, int y, int back) {
x -= getBoxWidth(str) / 2;
Vec2i size = getSize(str);
drawRect3d(x, y, size.xpos + 4, size.ypos + 2, back);
drawText3d(str, x + 2, y + 1, 0xffffffff, true);
}
} }

View file

@ -3,7 +3,7 @@ package client.renderer;
import java.util.List; import java.util.List;
import java.util.Map; import java.util.Map;
import org.lwjgl.opengl.GL46; import org.lwjgl.opengl.GL46C;
import client.Client; import client.Client;
import client.renderer.texture.Sprite; import client.renderer.texture.Sprite;
@ -770,10 +770,6 @@ public class EffectRenderer {
} }
private class Textured implements Effect { private class Textured implements Effect {
private static final VertexFormat VERTEX_FORMAT = (new VertexFormat()).addElement(DefaultVertexFormats.POSITION_3F)
.addElement(DefaultVertexFormats.TEX_2F).addElement(DefaultVertexFormats.COLOR_4UB).addElement(DefaultVertexFormats.TEX_2S)
.addElement(DefaultVertexFormats.NORMAL_3B).addElement(DefaultVertexFormats.PADDING_1B);
private final String texture; private final String texture;
private final int texWidth; private final int texWidth;
private final int texHeight; private final int texHeight;
@ -815,7 +811,7 @@ public class EffectRenderer {
GlState.color(1.0F, 1.0F, 1.0F, 1.0F); GlState.color(1.0F, 1.0F, 1.0F, 1.0F);
GlState.disableLighting(); GlState.disableLighting();
ItemRenderer.disableStandardItemLighting(); ItemRenderer.disableStandardItemLighting();
rb.begin(GL46.GL_QUADS, VERTEX_FORMAT); rb.begin(GL46C.GL_QUADS, VERTEX_FORMAT);
rb.pos((double)(x - rotX * scale - rotXY * scale), (double)(y - rotZ * scale), (double)(z - rotYZ * scale - rotXZ * scale)) rb.pos((double)(x - rotX * scale - rotXY * scale), (double)(y - rotZ * scale), (double)(z - rotYZ * scale - rotXZ * scale))
.tex((double)u2, (double)v2).color(this.brightness, this.brightness, this.brightness, 1.0F).lightmap(0, 240) .tex((double)u2, (double)v2).color(this.brightness, this.brightness, this.brightness, 1.0F).lightmap(0, 240)
.normal(0.0F, 1.0F, 0.0F).endVertex(); .normal(0.0F, 1.0F, 0.0F).endVertex();
@ -1002,8 +998,8 @@ public class EffectRenderer {
this.interpPosY = entity.lastTickPosY + (entity.posY - entity.lastTickPosY) * (double)partial; this.interpPosY = entity.lastTickPosY + (entity.posY - entity.lastTickPosY) * (double)partial;
this.interpPosZ = entity.lastTickPosZ + (entity.posZ - entity.lastTickPosZ) * (double)partial; this.interpPosZ = entity.lastTickPosZ + (entity.posZ - entity.lastTickPosZ) * (double)partial;
GlState.enableBlend(); GlState.enableBlend();
GlState.blendFunc(GL46.GL_SRC_ALPHA, GL46.GL_ONE_MINUS_SRC_ALPHA); GlState.blendFunc(GL46C.GL_SRC_ALPHA, GL46C.GL_ONE_MINUS_SRC_ALPHA);
GlState.alphaFunc(GL46.GL_GREATER, 0.003921569F); GlState.alphaFunc(GL46C.GL_GREATER, 0.003921569F);
for(int i = 0; i < 2; ++i) { for(int i = 0; i < 2; ++i) {
if(!this.layers[i].isEmpty()) { if(!this.layers[i].isEmpty()) {
@ -1021,7 +1017,7 @@ public class EffectRenderer {
GlState.color(1.0F, 1.0F, 1.0F, 1.0F); GlState.color(1.0F, 1.0F, 1.0F, 1.0F);
RenderBuffer worldrenderer = Tessellator.getBuffer(); RenderBuffer worldrenderer = Tessellator.getBuffer();
worldrenderer.begin(GL46.GL_QUADS, DefaultVertexFormats.PARTICLE_POSITION_TEX_COLOR_LMAP); worldrenderer.begin(GL46C.GL_QUADS, DefaultVertexFormats.PARTICLE_POSITION_TEX_COLOR_LMAP);
for(int k = 0; k < this.layers[i].size(); ++k) { for(int k = 0; k < this.layers[i].size(); ++k) {
this.layers[i].get(k).render(worldrenderer, partial, f, f4, f1, f2, f3); this.layers[i].get(k).render(worldrenderer, partial, f, f4, f1, f2, f3);
@ -1033,7 +1029,7 @@ public class EffectRenderer {
GlState.depthMask(true); GlState.depthMask(true);
GlState.disableBlend(); GlState.disableBlend();
GlState.alphaFunc(GL46.GL_GREATER, 0.1F); GlState.alphaFunc(GL46C.GL_GREATER, 0.1F);
} }
public void renderTextured(Entity entity, float partial) { public void renderTextured(Entity entity, float partial) {

View file

@ -4,7 +4,7 @@ import java.nio.ByteBuffer;
import java.nio.ByteOrder; import java.nio.ByteOrder;
import java.nio.FloatBuffer; import java.nio.FloatBuffer;
import org.lwjgl.opengl.GL46; import org.lwjgl.opengl.GL46C;
import common.util.BoundingBox; import common.util.BoundingBox;
import common.util.ExtMath; import common.util.ExtMath;
@ -44,8 +44,8 @@ public class Frustum {
public void init() { public void init() {
this.projection.clear(); this.projection.clear();
this.modelview.clear(); this.modelview.clear();
GL46.glGetFloatv(2983, this.projection); GL46C.glGetFloatv(2983, this.projection);
GL46.glGetFloatv(2982, this.modelview); GL46C.glGetFloatv(2982, this.modelview);
float[] proj = this.projectionMat; float[] proj = this.projectionMat;
float[] view = this.modelviewMat; float[] view = this.modelviewMat;
this.projection.flip().limit(16); this.projection.flip().limit(16);

View file

@ -1,84 +1,21 @@
package client.renderer; package client.renderer;
import org.lwjgl.opengl.GL46; import org.lwjgl.opengl.GL46C;
public class GlState public class GlState
{ {
private static GlState.AlphaState alphaState = new GlState.AlphaState();
private static GlState.BooleanState lightingState = new GlState.BooleanState(GL46.GL_LIGHTING);
private static GlState.BooleanState[] lightState = new GlState.BooleanState[2];
private static GlState.ColorMaterialState colorMaterialState = new GlState.ColorMaterialState();
private static GlState.BlendState blendState = new GlState.BlendState(); private static GlState.BlendState blendState = new GlState.BlendState();
private static GlState.DepthState depthState = new GlState.DepthState(); private static GlState.DepthState depthState = new GlState.DepthState();
private static GlState.FogState fogState = new GlState.FogState();
private static GlState.CullState cullState = new GlState.CullState(); private static GlState.CullState cullState = new GlState.CullState();
private static GlState.PolygonOffsetState polygonOffsetState = new GlState.PolygonOffsetState(); private static GlState.ClearState clearState = new GlState.ClearState();
private static GlState.Color clearState = new GlState.Color(); private static GlState.TextureState textureState = new GlState.TextureState();
private static GlState.BooleanState normalizeState = new GlState.BooleanState(GL46.GL_NORMALIZE);
private static int activeTextureUnit = 0;
private static GlState.TextureState[] textureState = new GlState.TextureState[2];
private static int activeShadeModel = GL46.GL_SMOOTH;
private static GlState.BooleanState rescaleNormalState = new GlState.BooleanState(GL46.GL_RESCALE_NORMAL);
private static GlState.ColorMask colorMaskState = new GlState.ColorMask();
private static GlState.Color colorState = new GlState.Color();
public static void disableAlpha() public static void bindTexture(int texture)
{ {
alphaState.alphaTest.setDisabled(); if (texture != textureState.textureName)
}
public static void enableAlpha()
{
alphaState.alphaTest.setEnabled();
}
public static void alphaFunc(int func, float ref)
{
if (func != alphaState.func || ref != alphaState.ref)
{ {
alphaState.func = func; textureState.textureName = texture;
alphaState.ref = ref; GL46C.glBindTexture(GL46C.GL_TEXTURE_2D, texture);
GL46.glAlphaFunc(func, ref);
}
}
public static void enableLighting()
{
lightingState.setEnabled();
}
public static void disableLighting()
{
lightingState.setDisabled();
}
public static void enableLight(int light)
{
lightState[light].setEnabled();
}
public static void disableLight(int light)
{
lightState[light].setDisabled();
}
public static void enableColorMaterial()
{
colorMaterialState.colorMaterial.setEnabled();
}
public static void disableColorMaterial()
{
colorMaterialState.colorMaterial.setDisabled();
}
public static void colorMaterial(int face, int mode)
{
if (face != colorMaterialState.face || mode != colorMaterialState.mode)
{
colorMaterialState.face = face;
colorMaterialState.mode = mode;
GL46.glColorMaterial(face, mode);
} }
} }
@ -92,24 +29,6 @@ public class GlState
depthState.depthTest.setEnabled(); depthState.depthTest.setEnabled();
} }
public static void depthFunc(int depthFunc)
{
if (depthFunc != depthState.depthFunc)
{
depthState.depthFunc = depthFunc;
GL46.glDepthFunc(depthFunc);
}
}
public static void depthMask(boolean flagIn)
{
if (flagIn != depthState.maskEnabled)
{
depthState.maskEnabled = flagIn;
GL46.glDepthMask(flagIn);
}
}
public static void disableBlend() public static void disableBlend()
{ {
blendState.blend.setDisabled(); blendState.blend.setDisabled();
@ -120,88 +39,6 @@ public class GlState
blendState.blend.setEnabled(); blendState.blend.setEnabled();
} }
public static void blendFunc(int srcFactor, int dstFactor)
{
if (srcFactor != blendState.srcFactor || dstFactor != blendState.dstFactor)
{
blendState.srcFactor = srcFactor;
blendState.dstFactor = dstFactor;
GL46.glBlendFunc(srcFactor, dstFactor);
}
}
public static void tryBlendFuncSeparate(int srcFactor, int dstFactor, int srcFactorAlpha, int dstFactorAlpha)
{
if (srcFactor != blendState.srcFactor || dstFactor != blendState.dstFactor || srcFactorAlpha != blendState.srcFactorAlpha || dstFactorAlpha != blendState.dstFactorAlpha)
{
blendState.srcFactor = srcFactor;
blendState.dstFactor = dstFactor;
blendState.srcFactorAlpha = srcFactorAlpha;
blendState.dstFactorAlpha = dstFactorAlpha;
GL46.glBlendFuncSeparate(srcFactor, dstFactor, srcFactorAlpha, dstFactorAlpha);
}
}
public static void enableFog()
{
if(fogState.enabled)
fogState.fog.setEnabled();
}
public static void disableFog()
{
// if(fogState.enabled)
fogState.fog.setDisabled();
}
public static void setFogEnabled(boolean param)
{
if (param != fogState.enabled)
{
fogState.enabled = param;
}
if(param)
enableFog();
else
disableFog();
}
public static void setFog(int param)
{
if (param != fogState.mode)
{
fogState.mode = param;
GL46.glFogi(GL46.GL_FOG_MODE, param);
}
}
public static void setFogDensity(float param)
{
if (param != fogState.density)
{
fogState.density = param;
GL46.glFogf(GL46.GL_FOG_DENSITY, param);
}
}
public static void setFogStart(float param)
{
if (param != fogState.start)
{
fogState.start = param;
GL46.glFogf(GL46.GL_FOG_START, param);
}
}
public static void setFogEnd(float param)
{
if (param != fogState.end)
{
fogState.end = param;
GL46.glFogf(GL46.GL_FOG_END, param);
}
}
public static void enableCull() public static void enableCull()
{ {
cullState.cullFace.setEnabled(); cullState.cullFace.setEnabled();
@ -212,6 +49,18 @@ public class GlState
cullState.cullFace.setDisabled(); cullState.cullFace.setDisabled();
} }
public static void tryBlendFuncSeparate(int srcFactor, int dstFactor, int srcFactorAlpha, int dstFactorAlpha)
{
if (srcFactor != blendState.srcFactor || dstFactor != blendState.dstFactor || srcFactorAlpha != blendState.srcFactorAlpha || dstFactorAlpha != blendState.dstFactorAlpha)
{
blendState.srcFactor = srcFactor;
blendState.dstFactor = dstFactor;
blendState.srcFactorAlpha = srcFactorAlpha;
blendState.dstFactorAlpha = dstFactorAlpha;
GL46C.glBlendFuncSeparate(srcFactor, dstFactor, srcFactorAlpha, dstFactorAlpha);
}
}
public static boolean isCullEnabled() public static boolean isCullEnabled()
{ {
return cullState.cullFace.currentState; return cullState.cullFace.currentState;
@ -222,109 +71,35 @@ public class GlState
if (mode != cullState.mode) if (mode != cullState.mode)
{ {
cullState.mode = mode; cullState.mode = mode;
GL46.glCullFace(mode); GL46C.glCullFace(mode);
} }
} }
public static void enablePolygonOffset() public static void depthFunc(int depthFunc)
{ {
polygonOffsetState.polygonOffsetFill.setEnabled(); if (depthFunc != depthState.depthFunc)
}
public static void disablePolygonOffset()
{
polygonOffsetState.polygonOffsetFill.setDisabled();
}
public static void doPolygonOffset(float factor, float units)
{
if (factor != polygonOffsetState.factor || units != polygonOffsetState.units)
{ {
polygonOffsetState.factor = factor; depthState.depthFunc = depthFunc;
polygonOffsetState.units = units; GL46C.glDepthFunc(depthFunc);
GL46.glPolygonOffset(factor, units);
} }
} }
public static void setActiveTexture(int texture) public static void depthMask(boolean flagIn)
{ {
if (activeTextureUnit != texture - GL46.GL_TEXTURE0) if (flagIn != depthState.maskEnabled)
{ {
activeTextureUnit = texture - GL46.GL_TEXTURE0; depthState.maskEnabled = flagIn;
GL46.glActiveTexture(texture); GL46C.glDepthMask(flagIn);
} }
} }
public static void enableTexture2D()
{
textureState[activeTextureUnit].texture2DState.setEnabled();
}
public static void disableTexture2D()
{
textureState[activeTextureUnit].texture2DState.setDisabled();
}
public static void deleteTexture(int texture) public static void deleteTexture(int texture)
{ {
GL46.glDeleteTextures(texture); GL46C.glDeleteTextures(texture);
for (GlState.TextureState glstatemanager$texturestate : textureState) if (textureState.textureName == texture)
{ {
if (glstatemanager$texturestate.textureName == texture) textureState.textureName = -1;
{
glstatemanager$texturestate.textureName = -1;
}
}
}
public static void bindTexture(int texture)
{
if (texture != textureState[activeTextureUnit].textureName)
{
textureState[activeTextureUnit].textureName = texture;
GL46.glBindTexture(GL46.GL_TEXTURE_2D, texture);
}
}
public static void enableNormalize()
{
normalizeState.setEnabled();
}
public static void disableNormalize()
{
normalizeState.setDisabled();
}
public static void shadeModel(int mode)
{
if (mode != activeShadeModel)
{
activeShadeModel = mode;
GL46.glShadeModel(mode);
}
}
public static void enableRescaleNormal()
{
rescaleNormalState.setEnabled();
}
public static void disableRescaleNormal()
{
rescaleNormalState.setDisabled();
}
public static void colorMask(boolean red, boolean green, boolean blue, boolean alpha)
{
if (red != colorMaskState.red || green != colorMaskState.green || blue != colorMaskState.blue || alpha != colorMaskState.alpha)
{
colorMaskState.red = red;
colorMaskState.green = green;
colorMaskState.blue = blue;
colorMaskState.alpha = alpha;
GL46.glColorMask(red, green, blue, alpha);
} }
} }
@ -336,59 +111,7 @@ public class GlState
clearState.green = green; clearState.green = green;
clearState.blue = blue; clearState.blue = blue;
clearState.alpha = alpha; clearState.alpha = alpha;
GL46.glClearColor(red, green, blue, alpha); GL46C.glClearColor(red, green, blue, alpha);
}
}
public static void color(float colorRed, float colorGreen, float colorBlue, float colorAlpha)
{
if (colorRed != colorState.red || colorGreen != colorState.green || colorBlue != colorState.blue || colorAlpha != colorState.alpha)
{
colorState.red = colorRed;
colorState.green = colorGreen;
colorState.blue = colorBlue;
colorState.alpha = colorAlpha;
GL46.glColor4f(colorRed, colorGreen, colorBlue, colorAlpha);
}
}
public static void color(int c) {
float a = (float)(c >> 24 & 255) / 255.0F;
float r = (float)(c >> 16 & 255) / 255.0F;
float g = (float)(c >> 8 & 255) / 255.0F;
float b = (float)(c & 255) / 255.0F;
color(r, g, b, a);
}
public static void resetColor()
{
colorState.red = colorState.green = colorState.blue = colorState.alpha = -1.0F;
}
static
{
for (int i = 0; i < lightState.length; ++i)
{
lightState[i] = new GlState.BooleanState(GL46.GL_LIGHT0 + i);
}
for (int j = 0; j < textureState.length; ++j)
{
textureState[j] = new GlState.TextureState();
}
}
static class AlphaState
{
public GlState.BooleanState alphaTest;
public int func;
public float ref;
private AlphaState()
{
this.alphaTest = new GlState.BooleanState(GL46.GL_ALPHA_TEST);
this.func = GL46.GL_ALWAYS;
this.ref = -1.0F;
} }
} }
@ -402,11 +125,11 @@ public class GlState
private BlendState() private BlendState()
{ {
this.blend = new GlState.BooleanState(GL46.GL_BLEND); this.blend = new GlState.BooleanState(GL46C.GL_BLEND);
this.srcFactor = GL46.GL_ONE; this.srcFactor = GL46C.GL_ONE;
this.dstFactor = GL46.GL_ZERO; this.dstFactor = GL46C.GL_ZERO;
this.srcFactorAlpha = GL46.GL_ONE; this.srcFactorAlpha = GL46C.GL_ONE;
this.dstFactorAlpha = GL46.GL_ZERO; this.dstFactorAlpha = GL46C.GL_ZERO;
} }
} }
@ -438,57 +161,27 @@ public class GlState
if (state) if (state)
{ {
GL46.glEnable(this.capability); GL46C.glEnable(this.capability);
} }
else else
{ {
GL46.glDisable(this.capability); GL46C.glDisable(this.capability);
} }
} }
} }
} }
static class Color static class ClearState
{ {
public float red = 1.0F; public float red = 1.0F;
public float green = 1.0F; public float green = 1.0F;
public float blue = 1.0F; public float blue = 1.0F;
public float alpha = 1.0F; public float alpha = 1.0F;
public Color() public ClearState()
{ {
} }
} }
static class ColorMask
{
public boolean red;
public boolean green;
public boolean blue;
public boolean alpha;
private ColorMask()
{
this.red = true;
this.green = true;
this.blue = true;
this.alpha = true;
}
}
static class ColorMaterialState
{
public GlState.BooleanState colorMaterial;
public int face;
public int mode;
private ColorMaterialState()
{
this.colorMaterial = new GlState.BooleanState(GL46.GL_COLOR_MATERIAL);
this.face = GL46.GL_FRONT_AND_BACK;
this.mode = GL46.GL_AMBIENT_AND_DIFFUSE;
}
}
static class CullState static class CullState
{ {
@ -497,8 +190,8 @@ public class GlState
private CullState() private CullState()
{ {
this.cullFace = new GlState.BooleanState(GL46.GL_CULL_FACE); this.cullFace = new GlState.BooleanState(GL46C.GL_CULL_FACE);
this.mode = GL46.GL_BACK; this.mode = GL46C.GL_BACK;
} }
} }
@ -510,56 +203,18 @@ public class GlState
private DepthState() private DepthState()
{ {
this.depthTest = new GlState.BooleanState(GL46.GL_DEPTH_TEST); this.depthTest = new GlState.BooleanState(GL46C.GL_DEPTH_TEST);
this.maskEnabled = true; this.maskEnabled = true;
this.depthFunc = GL46.GL_LESS; this.depthFunc = GL46C.GL_LESS;
}
}
static class FogState
{
public GlState.BooleanState fog;
public boolean enabled;
public int mode;
public float density;
public float start;
public float end;
private FogState()
{
this.fog = new GlState.BooleanState(GL46.GL_FOG);
this.enabled = true;
this.mode = GL46.GL_EXP;
this.density = 1.0F;
this.start = 0.0F;
this.end = 1.0F;
}
}
static class PolygonOffsetState
{
public GlState.BooleanState polygonOffsetFill;
public GlState.BooleanState polygonOffsetLine;
public float factor;
public float units;
private PolygonOffsetState()
{
this.polygonOffsetFill = new GlState.BooleanState(GL46.GL_POLYGON_OFFSET_FILL);
this.polygonOffsetLine = new GlState.BooleanState(GL46.GL_POLYGON_OFFSET_LINE);
this.factor = 0.0F;
this.units = 0.0F;
} }
} }
static class TextureState static class TextureState
{ {
public GlState.BooleanState texture2DState;
public int textureName; public int textureName;
private TextureState() private TextureState()
{ {
this.texture2DState = new GlState.BooleanState(GL46.GL_TEXTURE_2D);
this.textureName = 0; this.textureName = 0;
} }
} }

View file

@ -4,7 +4,7 @@ import java.nio.ByteBuffer;
import java.nio.ByteOrder; import java.nio.ByteOrder;
import java.nio.FloatBuffer; import java.nio.FloatBuffer;
import org.lwjgl.opengl.GL46; import org.lwjgl.opengl.GL46C;
import client.Client; import client.Client;
import client.renderer.entity.RenderItem; import client.renderer.entity.RenderItem;
@ -28,10 +28,6 @@ import common.world.State;
public class ItemRenderer public class ItemRenderer
{ {
private static final FloatBuffer BUFFER = ByteBuffer.allocateDirect(16 << 2).order(ByteOrder.nativeOrder()).asFloatBuffer();
private static final Vec3 LIGHT0_POS = (new Vec3(0.20000000298023224D, 1.0D, -0.699999988079071D)).normalize();
private static final Vec3 LIGHT1_POS = (new Vec3(-0.20000000298023224D, 1.0D, 0.699999988079071D)).normalize();
private final Client gm; private final Client gm;
private final RenderManager renderManager; private final RenderManager renderManager;
private final RenderItem itemRenderer; private final RenderItem itemRenderer;
@ -40,54 +36,14 @@ public class ItemRenderer
private float equippedProgress; private float equippedProgress;
private float prevEquippedProgress; private float prevEquippedProgress;
private static FloatBuffer setColorBuffer(float r, float g, float b, float a) // public static void enableGUIStandardItemLighting()
{ // {
BUFFER.clear(); // GL46C.glPushMatrix();
BUFFER.put(r).put(g).put(b).put(a); // GL46C.glRotatef(-30.0F, 0.0F, 1.0F, 0.0F);
BUFFER.flip(); // GL46C.glRotatef(165.0F, 1.0F, 0.0F, 0.0F);
return BUFFER; // enableStandardItemLighting();
} // GL46C.glPopMatrix();
// }
public static void enableGUIStandardItemLighting()
{
GL46.glPushMatrix();
GL46.glRotatef(-30.0F, 0.0F, 1.0F, 0.0F);
GL46.glRotatef(165.0F, 1.0F, 0.0F, 0.0F);
enableStandardItemLighting();
GL46.glPopMatrix();
}
public static void enableStandardItemLighting()
{
GlState.enableLighting();
GlState.enableLight(0);
GlState.enableLight(1);
GlState.enableColorMaterial();
GlState.colorMaterial(GL46.GL_FRONT_AND_BACK, GL46.GL_AMBIENT_AND_DIFFUSE);
float f = 0.4F;
float f1 = 0.6F;
float f2 = 0.0F;
GL46.glLightfv(GL46.GL_LIGHT0, GL46.GL_POSITION, setColorBuffer(
(float)LIGHT0_POS.xCoord, (float)LIGHT0_POS.yCoord, (float)LIGHT0_POS.zCoord, 0.0f));
GL46.glLightfv(GL46.GL_LIGHT0, GL46.GL_DIFFUSE, setColorBuffer(f1, f1, f1, 1.0F));
GL46.glLightfv(GL46.GL_LIGHT0, GL46.GL_AMBIENT, setColorBuffer(0.0F, 0.0F, 0.0F, 1.0F));
GL46.glLightfv(GL46.GL_LIGHT0, GL46.GL_SPECULAR, setColorBuffer(f2, f2, f2, 1.0F));
GL46.glLightfv(GL46.GL_LIGHT1, GL46.GL_POSITION, setColorBuffer(
(float)LIGHT1_POS.xCoord, (float)LIGHT1_POS.yCoord, (float)LIGHT1_POS.zCoord, 0.0f));
GL46.glLightfv(GL46.GL_LIGHT1, GL46.GL_DIFFUSE, setColorBuffer(f1, f1, f1, 1.0F));
GL46.glLightfv(GL46.GL_LIGHT1, GL46.GL_AMBIENT, setColorBuffer(0.0F, 0.0F, 0.0F, 1.0F));
GL46.glLightfv(GL46.GL_LIGHT1, GL46.GL_SPECULAR, setColorBuffer(f2, f2, f2, 1.0F));
GlState.shadeModel(GL46.GL_FLAT);
GL46.glLightModelfv(GL46.GL_LIGHT_MODEL_AMBIENT, setColorBuffer(f, f, f, 1.0F));
}
public static void disableStandardItemLighting()
{
GlState.disableLighting();
GlState.disableLight(0);
GlState.disableLight(1);
GlState.disableColorMaterial();
}
public ItemRenderer(Client gmIn) public ItemRenderer(Client gmIn)
{ {
@ -102,26 +58,26 @@ public class ItemRenderer
{ {
Item item = heldStack.getItem(); Item item = heldStack.getItem();
Block block = item.getBlock(); Block block = item.getBlock();
GL46.glPushMatrix(); GL46C.glPushMatrix();
if (this.itemRenderer.shouldRenderItemIn3D(heldStack)) if (this.itemRenderer.shouldRenderItemIn3D(heldStack))
{ {
GL46.glScalef(2.0F, 2.0F, 2.0F); GL46C.glScalef(2.0F, 2.0F, 2.0F);
} }
this.itemRenderer.renderItemForEntity(heldStack, entityIn, third); this.itemRenderer.renderItemForEntity(heldStack, entityIn, third);
GL46.glPopMatrix(); GL46C.glPopMatrix();
} }
} }
private void rotateArroundXAndY(float angle, float angleY) private void rotateArroundXAndY(float angle, float angleY)
{ {
GL46.glPushMatrix(); GL46C.glPushMatrix();
GL46.glRotatef(angle, 1.0F, 0.0F, 0.0F); GL46C.glRotatef(angle, 1.0F, 0.0F, 0.0F);
GL46.glRotatef(angleY, 0.0F, 1.0F, 0.0F); GL46C.glRotatef(angleY, 0.0F, 1.0F, 0.0F);
ItemRenderer.enableStandardItemLighting(); ItemRenderer.enableStandardItemLighting();
GL46.glPopMatrix(); GL46C.glPopMatrix();
} }
private void setLightMapFromPlayer(EntityNPC clientPlayer) private void setLightMapFromPlayer(EntityNPC clientPlayer)
@ -129,15 +85,15 @@ public class ItemRenderer
int i = this.gm.world.getCombinedLight(new BlockPos(clientPlayer.posX, clientPlayer.posY + (double)clientPlayer.getEyeHeight(), clientPlayer.posZ)); int i = this.gm.world.getCombinedLight(new BlockPos(clientPlayer.posX, clientPlayer.posY + (double)clientPlayer.getEyeHeight(), clientPlayer.posZ));
float f = (float)(i & 65535); float f = (float)(i & 65535);
float f1 = (float)(i >> 16); float f1 = (float)(i >> 16);
GL46.glMultiTexCoord2f(GL46.GL_TEXTURE1, f, f1); GL46C.glMultiTexCoord2f(GL46C.GL_TEXTURE1, f, f1);
} }
private void rotateWithPlayerRotations(EntityNPC entityplayerspIn, float partialTicks) private void rotateWithPlayerRotations(EntityNPC entityplayerspIn, float partialTicks)
{ {
float f = entityplayerspIn.prevRenderArmPitch + (entityplayerspIn.renderArmPitch - entityplayerspIn.prevRenderArmPitch) * partialTicks; float f = entityplayerspIn.prevRenderArmPitch + (entityplayerspIn.renderArmPitch - entityplayerspIn.prevRenderArmPitch) * partialTicks;
float f1 = entityplayerspIn.prevRenderArmYaw + (entityplayerspIn.renderArmYaw - entityplayerspIn.prevRenderArmYaw) * partialTicks; float f1 = entityplayerspIn.prevRenderArmYaw + (entityplayerspIn.renderArmYaw - entityplayerspIn.prevRenderArmYaw) * partialTicks;
GL46.glRotatef((entityplayerspIn.rotPitch - f) * 0.1F, 1.0F, 0.0F, 0.0F); GL46C.glRotatef((entityplayerspIn.rotPitch - f) * 0.1F, 1.0F, 0.0F, 0.0F);
GL46.glRotatef((entityplayerspIn.rotYaw - f1) * 0.1F, 0.0F, 1.0F, 0.0F); GL46C.glRotatef((entityplayerspIn.rotYaw - f1) * 0.1F, 0.0F, 1.0F, 0.0F);
} }
private float getMapAngleFromPitch(float pitch) private float getMapAngleFromPitch(float pitch)
@ -214,7 +170,7 @@ public class ItemRenderer
//// Tessellator tessellator = Tessellator.getInstance(); //// Tessellator tessellator = Tessellator.getInstance();
// RenderBuffer worldrenderer = Tessellator.getBuffer(); // RenderBuffer worldrenderer = Tessellator.getBuffer();
// SKC.glNormal3f(0.0F, 0.0F, -1.0F); // SKC.glNormal3f(0.0F, 0.0F, -1.0F);
// worldrenderer.begin(GL46.GL_QUADS, DefaultVertexFormats.POSITION_TEX); // worldrenderer.begin(GL46C.GL_QUADS, DefaultVertexFormats.POSITION_TEX);
// worldrenderer.pos(-7.0D, 135.0D, 0.0D).tex(0.0D, 1.0D).endVertex(); // worldrenderer.pos(-7.0D, 135.0D, 0.0D).tex(0.0D, 1.0D).endVertex();
// worldrenderer.pos(135.0D, 135.0D, 0.0D).tex(1.0D, 1.0D).endVertex(); // worldrenderer.pos(135.0D, 135.0D, 0.0D).tex(1.0D, 1.0D).endVertex();
// worldrenderer.pos(135.0D, -7.0D, 0.0D).tex(1.0D, 0.0D).endVertex(); // worldrenderer.pos(135.0D, -7.0D, 0.0D).tex(1.0D, 0.0D).endVertex();
@ -233,21 +189,21 @@ public class ItemRenderer
float f = -0.3F * ExtMath.sin(ExtMath.sqrtf(swingProgress) * (float)Math.PI); float f = -0.3F * ExtMath.sin(ExtMath.sqrtf(swingProgress) * (float)Math.PI);
float f1 = 0.4F * ExtMath.sin(ExtMath.sqrtf(swingProgress) * (float)Math.PI * 2.0F); float f1 = 0.4F * ExtMath.sin(ExtMath.sqrtf(swingProgress) * (float)Math.PI * 2.0F);
float f2 = -0.4F * ExtMath.sin(swingProgress * (float)Math.PI); float f2 = -0.4F * ExtMath.sin(swingProgress * (float)Math.PI);
GL46.glTranslatef(f, f1, f2); GL46C.glTranslatef(f, f1, f2);
GL46.glTranslatef(0.64000005F, -0.6F, -0.71999997F); GL46C.glTranslatef(0.64000005F, -0.6F, -0.71999997F);
GL46.glTranslatef(0.0F, equipProgress * -0.6F, 0.0F); GL46C.glTranslatef(0.0F, equipProgress * -0.6F, 0.0F);
GL46.glRotatef(45.0F, 0.0F, 1.0F, 0.0F); GL46C.glRotatef(45.0F, 0.0F, 1.0F, 0.0F);
float f3 = ExtMath.sin(swingProgress * swingProgress * (float)Math.PI); float f3 = ExtMath.sin(swingProgress * swingProgress * (float)Math.PI);
float f4 = ExtMath.sin(ExtMath.sqrtf(swingProgress) * (float)Math.PI); float f4 = ExtMath.sin(ExtMath.sqrtf(swingProgress) * (float)Math.PI);
GL46.glRotatef(f4 * 70.0F, 0.0F, 1.0F, 0.0F); GL46C.glRotatef(f4 * 70.0F, 0.0F, 1.0F, 0.0F);
GL46.glRotatef(f3 * -20.0F, 0.0F, 0.0F, 1.0F); GL46C.glRotatef(f3 * -20.0F, 0.0F, 0.0F, 1.0F);
this.gm.getTextureManager().bindTexture(EntityTexManager.getSkin(clientPlayer)); this.gm.getTextureManager().bindTexture(EntityTexManager.getSkin(clientPlayer));
GL46.glTranslatef(-1.0F, 3.6F, 3.5F); GL46C.glTranslatef(-1.0F, 3.6F, 3.5F);
GL46.glRotatef(120.0F, 0.0F, 0.0F, 1.0F); GL46C.glRotatef(120.0F, 0.0F, 0.0F, 1.0F);
GL46.glRotatef(200.0F, 1.0F, 0.0F, 0.0F); GL46C.glRotatef(200.0F, 1.0F, 0.0F, 0.0F);
GL46.glRotatef(-135.0F, 0.0F, 1.0F, 0.0F); GL46C.glRotatef(-135.0F, 0.0F, 1.0F, 0.0F);
GL46.glScalef(1.0F, 1.0F, 1.0F); GL46C.glScalef(1.0F, 1.0F, 1.0F);
GL46.glTranslatef(5.6F, 0.0F, 0.0F); GL46C.glTranslatef(5.6F, 0.0F, 0.0F);
RenderNpc render = this.renderManager.getRenderObject(this.gm.player.getModel()); RenderNpc render = this.renderManager.getRenderObject(this.gm.player.getModel());
GlState.disableCull(); GlState.disableCull();
render.renderPlayerArm(this.gm.player); render.renderPlayerArm(this.gm.player);
@ -259,7 +215,7 @@ public class ItemRenderer
float f = -0.4F * ExtMath.sin(ExtMath.sqrtf(swingProgress) * (float)Math.PI); float f = -0.4F * ExtMath.sin(ExtMath.sqrtf(swingProgress) * (float)Math.PI);
float f1 = 0.2F * ExtMath.sin(ExtMath.sqrtf(swingProgress) * (float)Math.PI * 2.0F); float f1 = 0.2F * ExtMath.sin(ExtMath.sqrtf(swingProgress) * (float)Math.PI * 2.0F);
float f2 = -0.2F * ExtMath.sin(swingProgress * (float)Math.PI); float f2 = -0.2F * ExtMath.sin(swingProgress * (float)Math.PI);
GL46.glTranslatef(f, f1, f2); GL46C.glTranslatef(f, f1, f2);
} }
private void performDrinking(EntityNPC clientPlayer, float partialTicks) private void performDrinking(EntityNPC clientPlayer, float partialTicks)
@ -273,33 +229,33 @@ public class ItemRenderer
f2 = 0.0F; f2 = 0.0F;
} }
GL46.glTranslatef(0.0F, f2, 0.0F); GL46C.glTranslatef(0.0F, f2, 0.0F);
float f3 = 1.0F - (float)Math.pow((double)f1, 27.0D); float f3 = 1.0F - (float)Math.pow((double)f1, 27.0D);
GL46.glTranslatef(f3 * 0.6F, f3 * -0.5F, f3 * 0.0F); GL46C.glTranslatef(f3 * 0.6F, f3 * -0.5F, f3 * 0.0F);
GL46.glRotatef(f3 * 90.0F, 0.0F, 1.0F, 0.0F); GL46C.glRotatef(f3 * 90.0F, 0.0F, 1.0F, 0.0F);
GL46.glRotatef(f3 * 10.0F, 1.0F, 0.0F, 0.0F); GL46C.glRotatef(f3 * 10.0F, 1.0F, 0.0F, 0.0F);
GL46.glRotatef(f3 * 30.0F, 0.0F, 0.0F, 1.0F); GL46C.glRotatef(f3 * 30.0F, 0.0F, 0.0F, 1.0F);
} }
private void transformFirstPersonItem(float equipProgress, float swingProgress) private void transformFirstPersonItem(float equipProgress, float swingProgress)
{ {
GL46.glTranslatef(0.56F, -0.52F, -0.71999997F); GL46C.glTranslatef(0.56F, -0.52F, -0.71999997F);
GL46.glTranslatef(0.0F, equipProgress * -0.6F, 0.0F); GL46C.glTranslatef(0.0F, equipProgress * -0.6F, 0.0F);
GL46.glRotatef(45.0F, 0.0F, 1.0F, 0.0F); GL46C.glRotatef(45.0F, 0.0F, 1.0F, 0.0F);
float f = ExtMath.sin(swingProgress * swingProgress * (float)Math.PI); float f = ExtMath.sin(swingProgress * swingProgress * (float)Math.PI);
float f1 = ExtMath.sin(ExtMath.sqrtf(swingProgress) * (float)Math.PI); float f1 = ExtMath.sin(ExtMath.sqrtf(swingProgress) * (float)Math.PI);
GL46.glRotatef(f * -20.0F, 0.0F, 1.0F, 0.0F); GL46C.glRotatef(f * -20.0F, 0.0F, 1.0F, 0.0F);
GL46.glRotatef(f1 * -20.0F, 0.0F, 0.0F, 1.0F); GL46C.glRotatef(f1 * -20.0F, 0.0F, 0.0F, 1.0F);
GL46.glRotatef(f1 * -80.0F, 1.0F, 0.0F, 0.0F); GL46C.glRotatef(f1 * -80.0F, 1.0F, 0.0F, 0.0F);
GL46.glScalef(0.4F, 0.4F, 0.4F); GL46C.glScalef(0.4F, 0.4F, 0.4F);
} }
private void doBowTransformations(float partialTicks, EntityNPC clientPlayer) private void doBowTransformations(float partialTicks, EntityNPC clientPlayer)
{ {
GL46.glRotatef(-18.0F, 0.0F, 0.0F, 1.0F); GL46C.glRotatef(-18.0F, 0.0F, 0.0F, 1.0F);
GL46.glRotatef(-12.0F, 0.0F, 1.0F, 0.0F); GL46C.glRotatef(-12.0F, 0.0F, 1.0F, 0.0F);
GL46.glRotatef(-8.0F, 1.0F, 0.0F, 0.0F); GL46C.glRotatef(-8.0F, 1.0F, 0.0F, 0.0F);
GL46.glTranslatef(-0.9F, 0.2F, 0.0F); GL46C.glTranslatef(-0.9F, 0.2F, 0.0F);
float f = (float)this.itemToRender.getMaxItemUseDuration() - ((float)clientPlayer.getItemInUseCount() - partialTicks + 1.0F); float f = (float)this.itemToRender.getMaxItemUseDuration() - ((float)clientPlayer.getItemInUseCount() - partialTicks + 1.0F);
float f1 = f / 20.0F; float f1 = f / 20.0F;
f1 = (f1 * f1 + f1 * 2.0F) / 3.0F; f1 = (f1 * f1 + f1 * 2.0F) / 3.0F;
@ -314,19 +270,19 @@ public class ItemRenderer
float f2 = ExtMath.sin((f - 0.1F) * 1.3F); float f2 = ExtMath.sin((f - 0.1F) * 1.3F);
float f3 = f1 - 0.1F; float f3 = f1 - 0.1F;
float f4 = f2 * f3; float f4 = f2 * f3;
GL46.glTranslatef(f4 * 0.0F, f4 * 0.01F, f4 * 0.0F); GL46C.glTranslatef(f4 * 0.0F, f4 * 0.01F, f4 * 0.0F);
} }
GL46.glTranslatef(f1 * 0.0F, f1 * 0.0F, f1 * 0.1F); GL46C.glTranslatef(f1 * 0.0F, f1 * 0.0F, f1 * 0.1F);
GL46.glScalef(1.0F, 1.0F, 1.0F + f1 * 0.2F); GL46C.glScalef(1.0F, 1.0F, 1.0F + f1 * 0.2F);
} }
private void doBlockTransformations() private void doBlockTransformations()
{ {
GL46.glTranslatef(-0.5F, 0.2F, 0.0F); GL46C.glTranslatef(-0.5F, 0.2F, 0.0F);
GL46.glRotatef(30.0F, 0.0F, 1.0F, 0.0F); GL46C.glRotatef(30.0F, 0.0F, 1.0F, 0.0F);
GL46.glRotatef(-80.0F, 1.0F, 0.0F, 0.0F); GL46C.glRotatef(-80.0F, 1.0F, 0.0F, 0.0F);
GL46.glRotatef(60.0F, 0.0F, 1.0F, 0.0F); GL46C.glRotatef(60.0F, 0.0F, 1.0F, 0.0F);
} }
public void renderItemInFirstPerson(float partialTicks) public void renderItemInFirstPerson(float partialTicks)
@ -340,7 +296,7 @@ public class ItemRenderer
this.setLightMapFromPlayer(clientplayer); this.setLightMapFromPlayer(clientplayer);
this.rotateWithPlayerRotations(clientplayer, partialTicks); this.rotateWithPlayerRotations(clientplayer, partialTicks);
GlState.enableRescaleNormal(); GlState.enableRescaleNormal();
GL46.glPushMatrix(); GL46C.glPushMatrix();
if (this.itemToRender != null && (this.itemToRender.getItem().getWieldType() != null || (clientplayer.getItemInUseCount() > 0 && this.itemToRender.getItemUseAction() != ItemAction.NONE))) if (this.itemToRender != null && (this.itemToRender.getItem().getWieldType() != null || (clientplayer.getItemInUseCount() > 0 && this.itemToRender.getItemUseAction() != ItemAction.NONE)))
{ {
@ -383,114 +339,11 @@ public class ItemRenderer
this.renderPlayerArm(clientplayer, f, f1); this.renderPlayerArm(clientplayer, f, f1);
} }
GL46.glPopMatrix(); GL46C.glPopMatrix();
GlState.disableRescaleNormal(); GlState.disableRescaleNormal();
ItemRenderer.disableStandardItemLighting(); ItemRenderer.disableStandardItemLighting();
} }
public void renderOverlays(float partialTicks)
{
GlState.disableAlpha();
if (this.gm.player.isEntityInsideOpaqueBlock())
{
State iblockstate = this.gm.world.getState(new BlockPos(this.gm.player));
EntityNPC entityplayer = this.gm.player;
for (int i = 0; i < 8; ++i)
{
double d0 = entityplayer.posX + (double)(((float)((i >> 0) % 2) - 0.5F) * entityplayer.width * 0.8F);
double d1 = entityplayer.posY + (double)(((float)((i >> 1) % 2) - 0.5F) * 0.1F);
double d2 = entityplayer.posZ + (double)(((float)((i >> 2) % 2) - 0.5F) * entityplayer.width * 0.8F);
BlockPos blockpos = new BlockPos(d0, d1 + (double)entityplayer.getEyeHeight(), d2);
State iblockstate1 = this.gm.world.getState(blockpos);
if (iblockstate1.getBlock().isVisuallyOpaque())
{
iblockstate = iblockstate1;
}
}
if (iblockstate.getBlock() != Blocks.air)
{
this.renderBlockInside(partialTicks, this.gm.renderer.getModelManager().getTexture(iblockstate));
}
}
if(this.gm.player.isBurning()) {
this.renderFireOverlay(partialTicks);
}
GlState.enableAlpha();
}
private void renderBlockInside(float partialTicks, Sprite atlas)
{
this.gm.getTextureManager().bindTexture(TextureMap.BLOCKS);
RenderBuffer worldrenderer = Tessellator.getBuffer();
float f = 0.1F;
GlState.color(0.1F, 0.1F, 0.1F, 0.5F);
GL46.glPushMatrix();
float f1 = -1.0F;
float f2 = 1.0F;
float f3 = -1.0F;
float f4 = 1.0F;
float f5 = -0.5F;
float f6 = atlas.getMinU();
float f7 = atlas.getMaxU();
float f8 = atlas.getMinV();
float f9 = atlas.getMaxV();
worldrenderer.begin(GL46.GL_QUADS, DefaultVertexFormats.POSITION_TEX);
worldrenderer.pos(-1.0D, -1.0D, -0.5D).tex((double)f7, (double)f9).endVertex();
worldrenderer.pos(1.0D, -1.0D, -0.5D).tex((double)f6, (double)f9).endVertex();
worldrenderer.pos(1.0D, 1.0D, -0.5D).tex((double)f6, (double)f8).endVertex();
worldrenderer.pos(-1.0D, 1.0D, -0.5D).tex((double)f7, (double)f8).endVertex();
Tessellator.draw();
GL46.glPopMatrix();
GlState.color(1.0F, 1.0F, 1.0F, 1.0F);
}
private void renderFireOverlay(float partialTicks)
{
RenderBuffer worldrenderer = Tessellator.getBuffer();
GlState.color(1.0F, 1.0F, 1.0F, 0.9F);
GlState.depthFunc(GL46.GL_ALWAYS);
GlState.depthMask(false);
GlState.enableBlend();
GlState.tryBlendFuncSeparate(GL46.GL_SRC_ALPHA, GL46.GL_ONE_MINUS_SRC_ALPHA, GL46.GL_ONE, GL46.GL_ZERO);
float f = 1.0F;
for (int i = 0; i < 2; ++i)
{
GL46.glPushMatrix();
Sprite textureatlassprite = this.gm.getTextureMapBlocks().getAtlasSprite("blocks/fire_layer_1");
this.gm.getTextureManager().bindTexture(TextureMap.BLOCKS);
float f1 = textureatlassprite.getMinU();
float f2 = textureatlassprite.getMaxU();
float f3 = textureatlassprite.getMinV();
float f4 = textureatlassprite.getMaxV();
float f5 = (0.0F - f) / 2.0F;
float f6 = f5 + f;
float f7 = 0.0F - f / 2.0F;
float f8 = f7 + f;
float f9 = -0.5F;
GL46.glTranslatef((float)(-(i * 2 - 1)) * 0.24F, -0.3F, 0.0F);
GL46.glRotatef((float)(i * 2 - 1) * 10.0F, 0.0F, 1.0F, 0.0F);
worldrenderer.begin(GL46.GL_QUADS, DefaultVertexFormats.POSITION_TEX);
worldrenderer.pos((double)f5, (double)f7, (double)f9).tex((double)f2, (double)f4).endVertex();
worldrenderer.pos((double)f6, (double)f7, (double)f9).tex((double)f1, (double)f4).endVertex();
worldrenderer.pos((double)f6, (double)f8, (double)f9).tex((double)f1, (double)f3).endVertex();
worldrenderer.pos((double)f5, (double)f8, (double)f9).tex((double)f2, (double)f3).endVertex();
Tessellator.draw();
GL46.glPopMatrix();
}
GlState.color(1.0F, 1.0F, 1.0F, 1.0F);
GlState.disableBlend();
GlState.depthMask(true);
GlState.depthFunc(GL46.GL_LEQUAL);
}
public void update() public void update()
{ {
this.prevEquippedProgress = this.equippedProgress; this.prevEquippedProgress = this.equippedProgress;

View file

@ -5,7 +5,7 @@ import java.nio.ByteOrder;
import java.nio.FloatBuffer; import java.nio.FloatBuffer;
import java.nio.IntBuffer; import java.nio.IntBuffer;
import org.lwjgl.opengl.GL46; import org.lwjgl.opengl.GL46C;
import common.block.Block; import common.block.Block;
import common.block.liquid.BlockLiquid; import common.block.liquid.BlockLiquid;
@ -32,9 +32,9 @@ public class MatrixState {
private static float rotationXY; private static float rotationXY;
public static void update(EntityNPC player, boolean flip) { public static void update(EntityNPC player, boolean flip) {
GL46.glGetFloatv(GL46.GL_MODELVIEW_MATRIX, MODELVIEW); GL46C.glGetFloatv(GL46C.GL_MODELVIEW_MATRIX, MODELVIEW);
GL46.glGetFloatv(GL46.GL_PROJECTION_MATRIX, PROJECTION); GL46C.glGetFloatv(GL46C.GL_PROJECTION_MATRIX, PROJECTION);
GL46.glGetIntegerv(GL46.GL_VIEWPORT, VIEWPORT); GL46C.glGetIntegerv(GL46C.GL_VIEWPORT, VIEWPORT);
float x = (float)((VIEWPORT.get(0) + VIEWPORT.get(2)) / 2); float x = (float)((VIEWPORT.get(0) + VIEWPORT.get(2)) / 2);
float y = (float)((VIEWPORT.get(1) + VIEWPORT.get(3)) / 2); float y = (float)((VIEWPORT.get(1) + VIEWPORT.get(3)) / 2);
Project.gluUnProject(x, y, 0.0F, MODELVIEW, PROJECTION, VIEWPORT, OBJECTCOORDS); Project.gluUnProject(x, y, 0.0F, MODELVIEW, PROJECTION, VIEWPORT, OBJECTCOORDS);

View file

@ -36,7 +36,7 @@ import java.nio.ByteOrder;
import java.nio.FloatBuffer; import java.nio.FloatBuffer;
import java.nio.IntBuffer; import java.nio.IntBuffer;
import org.lwjgl.opengl.GL46; import org.lwjgl.opengl.GL46C;
// 11-jan-2004 Erik Duijs // 11-jan-2004 Erik Duijs
public class Project { public class Project {
@ -201,7 +201,7 @@ public class Project {
matrix.put(3 * 4 + 2, -2 * zNear * zFar / deltaZ); matrix.put(3 * 4 + 2, -2 * zNear * zFar / deltaZ);
matrix.put(3 * 4 + 3, 0); matrix.put(3 * 4 + 3, 0);
GL46.glMultMatrixf(matrix); GL46C.glMultMatrixf(matrix);
} }
public static void gluLookAt( public static void gluLookAt(
@ -248,8 +248,8 @@ public class Project {
matrix.put(1 * 4 + 2, -forward[1]); matrix.put(1 * 4 + 2, -forward[1]);
matrix.put(2 * 4 + 2, -forward[2]); matrix.put(2 * 4 + 2, -forward[2]);
GL46.glMultMatrixf(matrix); GL46C.glMultMatrixf(matrix);
GL46.glTranslatef(-eyex, -eyey, -eyez); GL46C.glTranslatef(-eyex, -eyey, -eyez);
} }
public static boolean gluProject( public static boolean gluProject(

View file

@ -69,7 +69,7 @@ public class RegionRenderCache implements IWorldAccess
return this.chunks[i][j].getTileEntity(pos, TileEntity.CreateMode.QUEUED); return this.chunks[i][j].getTileEntity(pos, TileEntity.CreateMode.QUEUED);
} }
public int getCombinedLight(BlockPos pos) public int getWorldLight(BlockPos pos)
{ {
int i = this.getPositionIndex(pos); int i = this.getPositionIndex(pos);
int j = this.combinedLights[i]; int j = this.combinedLights[i];

View file

@ -1,11 +0,0 @@
package client.renderer;
public class RegionRenderCacheBuilder
{
private final RenderBuffer buffer = new RenderBuffer(4194304);
public RenderBuffer getWorldRenderer()
{
return this.buffer;
}
}

View file

@ -2,456 +2,222 @@ package client.renderer;
import java.nio.ByteBuffer; import java.nio.ByteBuffer;
import java.nio.ByteOrder; import java.nio.ByteOrder;
import java.nio.FloatBuffer;
import java.nio.IntBuffer;
import java.nio.ShortBuffer;
import common.log.Log; import common.log.Log;
import common.util.ExtMath;
public class RenderBuffer public class RenderBuffer {
{ private static final int[] QUAD_TO_TRI = {0, 1, 1, 2, 2, 3};
private ByteBuffer byteBuffer; private static final RenderBuffer BUFFER = new RenderBuffer(2097152);
private IntBuffer rawIntBuffer;
private ShortBuffer rawShortBuffer; private static VertexBuffer vbo;
private FloatBuffer rawFloatBuffer;
private int vertexCount;
private VertexFormatElement vertexFormatElement;
private int vertexFormatIndex;
private int drawMode;
private double xOffset;
private double yOffset;
private double zOffset;
private VertexFormat vertexFormat;
private boolean isDrawing;
public RenderBuffer(int bufferSizeIn) private ByteBuffer buffer;
{ private boolean drawing;
this.byteBuffer = ByteBuffer.allocateDirect(bufferSizeIn * 4).order(ByteOrder.nativeOrder()); private int count;
this.rawIntBuffer = this.byteBuffer.asIntBuffer();
this.rawShortBuffer = this.byteBuffer.asShortBuffer(); private double xOffset;
this.rawFloatBuffer = this.byteBuffer.asFloatBuffer(); private double yOffset;
} private double zOffset;
private void growBuffer(int p_181670_1_) private float normalX = 0.0f;
{ private float normalY = 0.0f;
if (p_181670_1_ > this.rawIntBuffer.remaining()) private float normalZ = 0.0f;
{ private float shine = 1.0f;
int i = this.byteBuffer.capacity(); private int red = 255;
int j = i % 2097152; private int green = 255;
int k = j + (((this.rawIntBuffer.position() + p_181670_1_) * 4 - j) / 2097152 + 1) * 2097152; private int blue = 255;
Log.RENDER.warn("Musste Puffer vergrößern: Alte Größe " + i + " Bytes, neue Größe " + k + " Bytes."); private int alpha = 255;
int l = this.rawIntBuffer.position();
ByteBuffer bytebuffer = ByteBuffer.allocateDirect(k).order(ByteOrder.nativeOrder());
this.byteBuffer.position(0);
bytebuffer.put(this.byteBuffer);
bytebuffer.rewind();
this.byteBuffer = bytebuffer;
this.rawFloatBuffer = this.byteBuffer.asFloatBuffer().asReadOnlyBuffer();
this.rawIntBuffer = this.byteBuffer.asIntBuffer();
this.rawIntBuffer.position(l);
this.rawShortBuffer = this.byteBuffer.asShortBuffer();
this.rawShortBuffer.position(l << 1);
}
}
private int getBufferSize() public static RenderBuffer getBuffer() {
{ return BUFFER;
return this.vertexCount * this.vertexFormat.getIntegerSize(); }
}
private static float getDistanceSq(FloatBuffer p_181665_0_, float p_181665_1_, float p_181665_2_, float p_181665_3_, int p_181665_4_, int p_181665_5_) public RenderBuffer(int size) {
{ this.buffer = ByteBuffer.allocateDirect(size * 4).order(ByteOrder.nativeOrder());
float f = p_181665_0_.get(p_181665_5_ + p_181665_4_ * 0 + 0); }
float f1 = p_181665_0_.get(p_181665_5_ + p_181665_4_ * 0 + 1);
float f2 = p_181665_0_.get(p_181665_5_ + p_181665_4_ * 0 + 2);
float f3 = p_181665_0_.get(p_181665_5_ + p_181665_4_ * 1 + 0);
float f4 = p_181665_0_.get(p_181665_5_ + p_181665_4_ * 1 + 1);
float f5 = p_181665_0_.get(p_181665_5_ + p_181665_4_ * 1 + 2);
float f6 = p_181665_0_.get(p_181665_5_ + p_181665_4_ * 2 + 0);
float f7 = p_181665_0_.get(p_181665_5_ + p_181665_4_ * 2 + 1);
float f8 = p_181665_0_.get(p_181665_5_ + p_181665_4_ * 2 + 2);
float f9 = p_181665_0_.get(p_181665_5_ + p_181665_4_ * 3 + 0);
float f10 = p_181665_0_.get(p_181665_5_ + p_181665_4_ * 3 + 1);
float f11 = p_181665_0_.get(p_181665_5_ + p_181665_4_ * 3 + 2);
float f12 = (f + f3 + f6 + f9) * 0.25F - p_181665_1_;
float f13 = (f1 + f4 + f7 + f10) * 0.25F - p_181665_2_;
float f14 = (f2 + f5 + f8 + f11) * 0.25F - p_181665_3_;
return f12 * f12 + f13 * f13 + f14 * f14;
}
public void reset() public void begin() {
{ if(this.drawing)
this.vertexCount = 0; throw new IllegalStateException("Puffer bereits in Verwendung");
this.vertexFormatElement = null; this.drawing = true;
this.vertexFormatIndex = 0; this.count = 0;
} this.buffer.limit(this.buffer.capacity());
}
public void begin(int glMode, VertexFormat format) public void begin(double x, double y, double z) {
{ this.begin();
if (this.isDrawing) this.xOffset = x;
{ this.yOffset = y;
throw new IllegalStateException("Already building!"); this.zOffset = z;
} }
else
{
this.isDrawing = true;
this.reset();
this.drawMode = glMode;
this.vertexFormat = format;
this.vertexFormatElement = format.getElement(this.vertexFormatIndex);
this.byteBuffer.limit(this.byteBuffer.capacity());
}
}
public RenderBuffer tex(double u, double v) public RenderBuffer put(double x, double y, double z, float nx, float ny, float nz, float shine, double u, double v, int red, int green, int blue, int alpha) {
{ this.buffer.putFloat((float)(x + this.xOffset));
int i = this.vertexCount * this.vertexFormat.getNextOffset() + this.vertexFormat.getOffset(this.vertexFormatIndex); this.buffer.putFloat((float)(y + this.yOffset));
this.buffer.putFloat((float)(z + this.zOffset));
this.buffer.put((byte)((int)(nx * 127.0f) & 255));
this.buffer.put((byte)((int)(ny * 127.0f) & 255));
this.buffer.put((byte)((int)(nz * 127.0f) & 255));
this.buffer.put((byte)((int)((shine / 32.0f) * 127.0f) & 255));
this.buffer.putFloat((float)u);
this.buffer.putFloat((float)v);
this.buffer.put((byte)red);
this.buffer.put((byte)green);
this.buffer.put((byte)blue);
this.buffer.put((byte)alpha);
++this.count;
if(this.buffer.remaining() < 28) {
int cap = this.buffer.capacity();
int rest = cap % 2097152;
int extend = rest + (((this.buffer.position() + 28) - rest) / 2097152 + 1) * 2097152;
Log.RENDER.warn("Musste Puffer vergrößern: Alte Größe " + cap + " Bytes, neue Größe " + extend + " Bytes.");
ByteBuffer buffer = ByteBuffer.allocateDirect(extend).order(ByteOrder.nativeOrder());
this.buffer.position(0);
buffer.put(this.buffer);
this.buffer = buffer;
}
return this;
}
switch (this.vertexFormatElement.type()) public RenderBuffer put(double x, double y, double z, float nx, float ny, float nz, float shine, double u, double v, float red, float green, float blue, float alpha) {
{ return this.put(x, y, z, nx, ny, nz, shine, u, v, (int)(red * 255.0F), (int)(green * 255.0F), (int)(blue * 255.0F), (int)(alpha * 255.0F));
case FLOAT: }
this.byteBuffer.putFloat(i, (float)u);
this.byteBuffer.putFloat(i + 4, (float)v);
break;
case UINT: public RenderBuffer put(double x, double y, double z, float nx, float ny, float nz, float shine, double u, double v, int color) {
case INT: return this.put(x, y, z, nx, ny, nz, shine, u, v, color >> 16 & 255, color >> 8 & 255, color & 255, color >> 24 & 255);
this.byteBuffer.putInt(i, (int)u); }
this.byteBuffer.putInt(i + 4, (int)v);
break;
public RenderBuffer setColor(int red, int green, int blue, int alpha) {
this.red = red;
this.green = green;
this.blue = blue;
this.alpha = alpha;
return this;
}
public RenderBuffer setColor(float red, float green, float blue, float alpha) {
return this.setColor((int)(red * 255.0F), (int)(green * 255.0F), (int)(blue * 255.0F), (int)(alpha * 255.0F));
}
public RenderBuffer setColor(int color) {
return this.setColor(color >> 16 & 255, color >> 8 & 255, color & 255, color >> 24 & 255);
}
public RenderBuffer setNormal(float x, float y, float z, float shine) {
this.normalX = x;
this.normalY = y;
this.normalZ = z;
this.shine = shine;
return this;
}
case USHORT: public RenderBuffer put(double x, double y, double z, double u, double v, int red, int green, int blue, int alpha) {
case SHORT: return this.put(x, y, z, this.normalX, this.normalY, this.normalZ, this.shine, u, v, red, green, blue, alpha);
this.byteBuffer.putShort(i, (short)((int)v)); }
this.byteBuffer.putShort(i + 2, (short)((int)u));
break;
case UBYTE: public RenderBuffer put(double x, double y, double z, double u, double v, float red, float green, float blue, float alpha) {
case BYTE: return this.put(x, y, z, this.normalX, this.normalY, this.normalZ, this.shine, u, v, (int)(red * 255.0F), (int)(green * 255.0F), (int)(blue * 255.0F), (int)(alpha * 255.0F));
this.byteBuffer.put(i, (byte)((int)v)); }
this.byteBuffer.put(i + 1, (byte)((int)u));
}
this.nextVertexFormatIndex(); public RenderBuffer put(double x, double y, double z, double u, double v, int color) {
return this; return this.put(x, y, z, this.normalX, this.normalY, this.normalZ, this.shine, u, v, color >> 16 & 255, color >> 8 & 255, color & 255, color >> 24 & 255);
} }
public RenderBuffer lightmap(int p_181671_1_, int p_181671_2_) public RenderBuffer put(double x, double y, double z, int red, int green, int blue, int alpha) {
{ return this.put(x, y, z, this.normalX, this.normalY, this.normalZ, this.shine, 0.0, 0.0, red, green, blue, alpha);
int i = this.vertexCount * this.vertexFormat.getNextOffset() + this.vertexFormat.getOffset(this.vertexFormatIndex); }
switch (this.vertexFormatElement.type()) public RenderBuffer put(double x, double y, double z, float red, float green, float blue, float alpha) {
{ return this.put(x, y, z, this.normalX, this.normalY, this.normalZ, this.shine, 0.0, 0.0, (int)(red * 255.0F), (int)(green * 255.0F), (int)(blue * 255.0F), (int)(alpha * 255.0F));
case FLOAT: }
this.byteBuffer.putFloat(i, (float)p_181671_1_);
this.byteBuffer.putFloat(i + 4, (float)p_181671_2_);
break;
case UINT: public RenderBuffer put(double x, double y, double z, int color) {
case INT: return this.put(x, y, z, this.normalX, this.normalY, this.normalZ, this.shine, 0.0, 0.0, color >> 16 & 255, color >> 8 & 255, color & 255, color >> 24 & 255);
this.byteBuffer.putInt(i, p_181671_1_); }
this.byteBuffer.putInt(i + 4, p_181671_2_);
break;
case USHORT: public RenderBuffer put(double x, double y, double z, double u, double v) {
case SHORT: return this.put(x, y, z, this.normalX, this.normalY, this.normalZ, this.shine, u, v, this.red, this.green, this.blue, this.alpha);
this.byteBuffer.putShort(i, (short)p_181671_2_); }
this.byteBuffer.putShort(i + 2, (short)p_181671_1_);
break;
case UBYTE: public RenderBuffer put(double x, double y, double z) {
case BYTE: return this.put(x, y, z, this.normalX, this.normalY, this.normalZ, this.shine, 0.0, 0.0, this.red, this.green, this.blue, this.alpha);
this.byteBuffer.put(i, (byte)p_181671_2_); }
this.byteBuffer.put(i + 1, (byte)p_181671_1_);
}
this.nextVertexFormatIndex(); public RenderBuffer put2d(double x, double y, double u, double v, int red, int green, int blue, int alpha) {
return this; return this.put(x, y, 0.0, 0.0f, 0.0f, 0.0f, 0.0f, u, v, red, green, blue, alpha);
} }
public void putBrightness4(int p_178962_1_, int p_178962_2_, int p_178962_3_, int p_178962_4_) public RenderBuffer put2d(double x, double y, double u, double v, float red, float green, float blue, float alpha) {
{ return this.put(x, y, 0.0, 0.0f, 0.0f, 0.0f, 0.0f, u, v, (int)(red * 255.0F), (int)(green * 255.0F), (int)(blue * 255.0F), (int)(alpha * 255.0F));
int i = (this.vertexCount - 4) * this.vertexFormat.getIntegerSize() + this.vertexFormat.getUvOffsetById(1) / 4; }
int j = this.vertexFormat.getNextOffset() >> 2;
this.rawIntBuffer.put(i, p_178962_1_);
this.rawIntBuffer.put(i + j, p_178962_2_);
this.rawIntBuffer.put(i + j * 2, p_178962_3_);
this.rawIntBuffer.put(i + j * 3, p_178962_4_);
}
public void putPosition(double x, double y, double z) public RenderBuffer put2d(double x, double y, double u, double v, int color) {
{ return this.put(x, y, 0.0, 0.0f, 0.0f, 0.0f, 0.0f, u, v, color >> 16 & 255, color >> 8 & 255, color & 255, color >> 24 & 255);
int i = this.vertexFormat.getIntegerSize(); }
int j = (this.vertexCount - 4) * i;
for (int k = 0; k < 4; ++k) public RenderBuffer put2d(double x, double y, int red, int green, int blue, int alpha) {
{ return this.put(x, y, 0.0, 0.0f, 0.0f, 0.0f, 0.0f, 0.0, 0.0, red, green, blue, alpha);
int l = j + k * i; }
int i1 = l + 1;
int j1 = i1 + 1;
this.rawIntBuffer.put(l, Float.floatToRawIntBits((float)(x + this.xOffset) + Float.intBitsToFloat(this.rawIntBuffer.get(l))));
this.rawIntBuffer.put(i1, Float.floatToRawIntBits((float)(y + this.yOffset) + Float.intBitsToFloat(this.rawIntBuffer.get(i1))));
this.rawIntBuffer.put(j1, Float.floatToRawIntBits((float)(z + this.zOffset) + Float.intBitsToFloat(this.rawIntBuffer.get(j1))));
}
}
private int getColorIndex(int p_78909_1_) public RenderBuffer put2d(double x, double y, float red, float green, float blue, float alpha) {
{ return this.put(x, y, 0.0, 0.0f, 0.0f, 0.0f, 0.0f, 0.0, 0.0, (int)(red * 255.0F), (int)(green * 255.0F), (int)(blue * 255.0F), (int)(alpha * 255.0F));
return ((this.vertexCount - p_78909_1_) * this.vertexFormat.getNextOffset() + this.vertexFormat.getColorOffset()) / 4; }
}
private void putColor(int argb, int p_178988_2_) public RenderBuffer put2d(double x, double y, int color) {
{ return this.put(x, y, 0.0, 0.0f, 0.0f, 0.0f, 0.0f, 0.0, 0.0, color >> 16 & 255, color >> 8 & 255, color & 255, color >> 24 & 255);
int i = this.getColorIndex(p_178988_2_); }
int j = argb >> 16 & 255;
int k = argb >> 8 & 255;
int l = argb & 255;
int i1 = argb >> 24 & 255;
this.putColorRGBA(i, j, k, l, i1);
}
public void putColorRGB_F(float red, float green, float blue, int p_178994_4_) public RenderBuffer put2d(double x, double y, double u, double v) {
{ return this.put(x, y, 0.0, 0.0f, 0.0f, 0.0f, 0.0f, u, v, this.red, this.green, this.blue, this.alpha);
int i = this.getColorIndex(p_178994_4_); }
int j = ExtMath.clampi((int)(red * 255.0F), 0, 255);
int k = ExtMath.clampi((int)(green * 255.0F), 0, 255);
int l = ExtMath.clampi((int)(blue * 255.0F), 0, 255);
this.putColorRGBA(i, j, k, l, 255);
}
private void putColorRGBA(int index, int red, int p_178972_3_, int p_178972_4_, int p_178972_5_) public RenderBuffer put2d(double x, double y) {
{ return this.put(x, y, 0.0, 0.0f, 0.0f, 0.0f, 0.0f, 0.0, 0.0, this.red, this.green, this.blue, this.alpha);
if (ByteOrder.nativeOrder() == ByteOrder.LITTLE_ENDIAN) }
{
this.rawIntBuffer.put(index, p_178972_5_ << 24 | p_178972_4_ << 16 | p_178972_3_ << 8 | red);
} public RenderBuffer put(double x, double y, double z, int[] data, int color) {
else for(int n = 0; n < 6; n++) {
{ int idx = QUAD_TO_TRI[n] * 7;
this.rawIntBuffer.put(index, red << 24 | p_178972_3_ << 16 | p_178972_4_ << 8 | p_178972_5_); this.put(x + (double)Float.intBitsToFloat(data[idx + 0]), y + (double)Float.intBitsToFloat(data[idx + 1]), z + (double)Float.intBitsToFloat(data[idx + 2]),
} (float)((byte)(data[idx + 3] & 0xff)) / 127.0f, (float)((byte)(data[idx + 3] & 0xff)) / 127.0f, (float)((byte)(data[idx + 3] & 0xff)) / 127.0f,
} ((float)((byte)(data[idx + 3] & 0xff)) / 127.0f) * 32.0f,
(double)Float.intBitsToFloat(data[idx + 4]), (double)Float.intBitsToFloat(data[idx + 5]),
color >> 16 & 255, color >> 8 & 255, color & 255, color >> 24 & 255);
}
return this;
}
public RenderBuffer color(float red, float green, float blue, float alpha) public ByteBuffer getByteBuffer() {
{ if(!this.drawing)
return this.color((int)(red * 255.0F), (int)(green * 255.0F), (int)(blue * 255.0F), (int)(alpha * 255.0F)); throw new IllegalStateException("Puffer nicht in Verwendung");
} this.buffer.position(0);
this.buffer.limit(this.count * 28);
this.drawing = false;
this.count = 0;
this.xOffset = 0.0;
this.yOffset = 0.0;
this.zOffset = 0.0;
this.normalX = 0.0f;
this.normalY = 0.0f;
this.normalZ = 0.0f;
this.shine = 1.0f;
this.red = 255;
this.green = 255;
this.blue = 255;
this.alpha = 255;
return this.buffer;
}
public RenderBuffer color(int color) public void draw() {
{ if(vbo == null)
return this.color(color >> 16 & 255, color >> 8 & 255, color & 255, color >> 24 & 255); vbo = new VertexBuffer();
} vbo.bufferData(this, true);
vbo.draw();
public RenderBuffer color(int red, int green, int blue, int alpha) }
{
int i = this.vertexCount * this.vertexFormat.getNextOffset() + this.vertexFormat.getOffset(this.vertexFormatIndex);
switch (this.vertexFormatElement.type())
{
case FLOAT:
this.byteBuffer.putFloat(i, (float)red / 255.0F);
this.byteBuffer.putFloat(i + 4, (float)green / 255.0F);
this.byteBuffer.putFloat(i + 8, (float)blue / 255.0F);
this.byteBuffer.putFloat(i + 12, (float)alpha / 255.0F);
break;
case UINT:
case INT:
this.byteBuffer.putFloat(i, (float)red);
this.byteBuffer.putFloat(i + 4, (float)green);
this.byteBuffer.putFloat(i + 8, (float)blue);
this.byteBuffer.putFloat(i + 12, (float)alpha);
break;
case USHORT:
case SHORT:
this.byteBuffer.putShort(i, (short)red);
this.byteBuffer.putShort(i + 2, (short)green);
this.byteBuffer.putShort(i + 4, (short)blue);
this.byteBuffer.putShort(i + 6, (short)alpha);
break;
case UBYTE:
case BYTE:
if (ByteOrder.nativeOrder() == ByteOrder.LITTLE_ENDIAN)
{
this.byteBuffer.put(i, (byte)red);
this.byteBuffer.put(i + 1, (byte)green);
this.byteBuffer.put(i + 2, (byte)blue);
this.byteBuffer.put(i + 3, (byte)alpha);
}
else
{
this.byteBuffer.put(i, (byte)alpha);
this.byteBuffer.put(i + 1, (byte)blue);
this.byteBuffer.put(i + 2, (byte)green);
this.byteBuffer.put(i + 3, (byte)red);
}
}
this.nextVertexFormatIndex();
return this;
}
public void addVertexData(int[] vertexData)
{
this.growBuffer(vertexData.length);
this.rawIntBuffer.position(this.getBufferSize());
this.rawIntBuffer.put(vertexData);
this.vertexCount += vertexData.length / this.vertexFormat.getIntegerSize();
}
public void endVertex()
{
++this.vertexCount;
this.growBuffer(this.vertexFormat.getIntegerSize());
}
public RenderBuffer pos(double x, double y, double z)
{
int i = this.vertexCount * this.vertexFormat.getNextOffset() + this.vertexFormat.getOffset(this.vertexFormatIndex);
switch (this.vertexFormatElement.type())
{
case FLOAT:
this.byteBuffer.putFloat(i, (float)(x + this.xOffset));
this.byteBuffer.putFloat(i + 4, (float)(y + this.yOffset));
this.byteBuffer.putFloat(i + 8, (float)(z + this.zOffset));
break;
case UINT:
case INT:
this.byteBuffer.putInt(i, Float.floatToRawIntBits((float)(x + this.xOffset)));
this.byteBuffer.putInt(i + 4, Float.floatToRawIntBits((float)(y + this.yOffset)));
this.byteBuffer.putInt(i + 8, Float.floatToRawIntBits((float)(z + this.zOffset)));
break;
case USHORT:
case SHORT:
this.byteBuffer.putShort(i, (short)((int)(x + this.xOffset)));
this.byteBuffer.putShort(i + 2, (short)((int)(y + this.yOffset)));
this.byteBuffer.putShort(i + 4, (short)((int)(z + this.zOffset)));
break;
case UBYTE:
case BYTE:
this.byteBuffer.put(i, (byte)((int)(x + this.xOffset)));
this.byteBuffer.put(i + 1, (byte)((int)(y + this.yOffset)));
this.byteBuffer.put(i + 2, (byte)((int)(z + this.zOffset)));
}
this.nextVertexFormatIndex();
return this;
}
public void putNormal(float x, float y, float z)
{
int i = (byte)((int)(x * 127.0F)) & 255;
int j = (byte)((int)(y * 127.0F)) & 255;
int k = (byte)((int)(z * 127.0F)) & 255;
int l = i | j << 8 | k << 16;
int i1 = this.vertexFormat.getNextOffset() >> 2;
int j1 = (this.vertexCount - 4) * i1 + this.vertexFormat.getNormalOffset() / 4;
this.rawIntBuffer.put(j1, l);
this.rawIntBuffer.put(j1 + i1, l);
this.rawIntBuffer.put(j1 + i1 * 2, l);
this.rawIntBuffer.put(j1 + i1 * 3, l);
}
private void nextVertexFormatIndex()
{
++this.vertexFormatIndex;
this.vertexFormatIndex %= this.vertexFormat.getElementCount();
this.vertexFormatElement = this.vertexFormat.getElement(this.vertexFormatIndex);
if (this.vertexFormatElement.usage() == VertexFormatElement.EnumUsage.PADDING)
{
this.nextVertexFormatIndex();
}
}
public RenderBuffer normal(float p_181663_1_, float p_181663_2_, float p_181663_3_)
{
int i = this.vertexCount * this.vertexFormat.getNextOffset() + this.vertexFormat.getOffset(this.vertexFormatIndex);
switch (this.vertexFormatElement.type())
{
case FLOAT:
this.byteBuffer.putFloat(i, p_181663_1_);
this.byteBuffer.putFloat(i + 4, p_181663_2_);
this.byteBuffer.putFloat(i + 8, p_181663_3_);
break;
case UINT:
case INT:
this.byteBuffer.putInt(i, (int)p_181663_1_);
this.byteBuffer.putInt(i + 4, (int)p_181663_2_);
this.byteBuffer.putInt(i + 8, (int)p_181663_3_);
break;
case USHORT:
case SHORT:
this.byteBuffer.putShort(i, (short)((int)p_181663_1_ * 32767 & 65535));
this.byteBuffer.putShort(i + 2, (short)((int)p_181663_2_ * 32767 & 65535));
this.byteBuffer.putShort(i + 4, (short)((int)p_181663_3_ * 32767 & 65535));
break;
case UBYTE:
case BYTE:
this.byteBuffer.put(i, (byte)((int)p_181663_1_ * 127 & 255));
this.byteBuffer.put(i + 1, (byte)((int)p_181663_2_ * 127 & 255));
this.byteBuffer.put(i + 2, (byte)((int)p_181663_3_ * 127 & 255));
}
this.nextVertexFormatIndex();
return this;
}
public void setTranslation(double x, double y, double z)
{
this.xOffset = x;
this.yOffset = y;
this.zOffset = z;
}
public void finishDrawing()
{
if (!this.isDrawing)
{
throw new IllegalStateException("Not building!");
}
else
{
this.isDrawing = false;
this.byteBuffer.position(0);
this.byteBuffer.limit(this.getBufferSize() * 4);
}
}
public ByteBuffer getByteBuffer()
{
return this.byteBuffer;
}
public VertexFormat getVertexFormat()
{
return this.vertexFormat;
}
public int getVertexCount()
{
return this.vertexCount;
}
public int getDrawMode()
{
return this.drawMode;
}
public void putColor4(int argb)
{
for (int i = 0; i < 4; ++i)
{
this.putColor(argb, i + 1);
}
}
} }

File diff suppressed because it is too large Load diff

View file

@ -9,7 +9,7 @@ import java.util.Map.Entry;
import java.util.function.Consumer; import java.util.function.Consumer;
import java.util.function.Supplier; import java.util.function.Supplier;
import org.lwjgl.opengl.GL46; import org.lwjgl.opengl.GL46C;
import client.Client; import client.Client;
import client.util.FileUtils; import client.util.FileUtils;
@ -23,43 +23,74 @@ import common.util.Vector3f;
import common.util.Vector4f; import common.util.Vector4f;
public enum Shader { public enum Shader {
WORLD("world", "world", context -> {context.integer("tex", 0); /* GL46.glUniformBlockBinding(context.getProgram(), GL46.glGetUniformBlockIndex(context.getProgram(), "light_block"), 0); */}, context -> { UI_COLOR("ui_color", "ui_color", null, context -> {
context.vec("clip_near", Client.CLIENT.renderer.getNearPlane()); GlState.disableCull();
context.vec("clip_far", Client.CLIENT.renderer.getFarPlane()); GlState.disableDepth();
context.vec("screen", (float)Client.CLIENT.fbRawX, (float)Client.CLIENT.fbRawY); GlState.enableBlend();
// GlState.tryBlendFuncSeparate(GL46C.GL_SRC_ALPHA, GL46C.GL_ONE_MINUS_SRC_ALPHA, GL46C.GL_ONE, GL46C.GL_ZERO);
GlState.tryBlendFuncSeparate(GL46C.GL_SRC_ALPHA, GL46C.GL_ONE_MINUS_SRC_ALPHA, GL46C.GL_ONE, GL46C.GL_ONE_MINUS_SRC_ALPHA);
context.vec("screen_size", Client.CLIENT.fbX, Client.CLIENT.fbY);
}),
UI_TEXTURE("ui_texture", "ui_texture", context -> context.integer("tex", 0), context -> {
GlState.disableCull();
GlState.disableDepth();
GlState.enableBlend();
// GlState.tryBlendFuncSeparate(GL46C.GL_SRC_ALPHA, GL46C.GL_ONE_MINUS_SRC_ALPHA, GL46C.GL_ONE, GL46C.GL_ZERO);
GlState.tryBlendFuncSeparate(GL46C.GL_SRC_ALPHA, GL46C.GL_ONE_MINUS_SRC_ALPHA, GL46C.GL_ONE, GL46C.GL_ONE_MINUS_SRC_ALPHA);
context.vec("screen_size", Client.CLIENT.fbX, Client.CLIENT.fbY);
}),
WORLD("world", "world", context -> {context.integer("tex", 0); /* GL46C.glUniformBlockBinding(context.getProgram(), GL46C.glGetUniformBlockIndex(context.getProgram(), "light_block"), 0); */}, context -> {
Client gm = Client.CLIENT;
context.vec("clip_near", gm.renderer.getNearPlane());
context.vec("clip_far", gm.renderer.getFarPlane());
context.vec("screen", (float)gm.fbRawX, (float)gm.fbRawY);
context.matrix("view", MatrixState.getModelView()); context.matrix("view", MatrixState.getModelView());
context.matrix("projection", MatrixState.getProjection()); context.matrix("projection", MatrixState.getProjection());
context.vec("time", (float)Util.ftime()); context.vec("time", (float)Util.ftime());
float angle = -90.0f + Client.CLIENT.renderer.getCelestialAngle(Client.CLIENT.getTickFraction()); float angle = -90.0f + gm.renderer.getCelestialAngle(gm.getTickFraction());
float sunX = !Client.CLIENT.world.dimension.hasDaylight() ? 0.0f : ExtMath.cos(angle / 180.0f * (float)Math.PI); float sunX = !gm.world.dimension.hasDaylight() ? 0.0f : ExtMath.cos(angle / 180.0f * (float)Math.PI);
float sunY = !Client.CLIENT.world.dimension.hasDaylight() ? -1.0f : ExtMath.sin(angle / 180.0f * (float)Math.PI); float sunY = !gm.world.dimension.hasDaylight() ? -1.0f : ExtMath.sin(angle / 180.0f * (float)Math.PI);
context.vec("sun_direction", sunX, sunY, 0.0f); context.vec("sun_direction", sunX, sunY, 0.0f);
float moonX = !Client.CLIENT.world.dimension.hasDaylight() ? 0.0f : ExtMath.cos((180.0f + angle) / 180.0f * (float)Math.PI); float moonX = !gm.world.dimension.hasDaylight() ? 0.0f : ExtMath.cos((180.0f + angle) / 180.0f * (float)Math.PI);
float moonY = !Client.CLIENT.world.dimension.hasDaylight() ? -1.0f : ExtMath.sin((180.0f + angle) / 180.0f * (float)Math.PI); float moonY = !gm.world.dimension.hasDaylight() ? -1.0f : ExtMath.sin((180.0f + angle) / 180.0f * (float)Math.PI);
context.vec("moon_direction", moonX, moonY, 0.0f); context.vec("moon_direction", moonX, moonY, 0.0f);
float sunRed = Client.CLIENT.renderer.getSunColorRed(); float sunRed = gm.renderer.getSunColorRed();
float sunGreen = Client.CLIENT.renderer.getSunColorGreen(); float sunGreen = gm.renderer.getSunColorGreen();
float sunBlue = Client.CLIENT.renderer.getSunColorBlue(); float sunBlue = gm.renderer.getSunColorBlue();
context.vec("sun_ambient", sunRed, sunGreen, sunBlue); context.vec("sun_ambient", sunRed, sunGreen, sunBlue);
float moonRed = Client.CLIENT.renderer.getMoonColorRed(); float moonRed = gm.renderer.getMoonColorRed();
float moonGreen = Client.CLIENT.renderer.getMoonColorGreen(); float moonGreen = gm.renderer.getMoonColorGreen();
float moonBlue = Client.CLIENT.renderer.getMoonColorBlue(); float moonBlue = gm.renderer.getMoonColorBlue();
context.vec("moon_ambient", moonRed, moonGreen, moonBlue); context.vec("moon_ambient", moonRed, moonGreen, moonBlue);
context.vec("light_factor", Client.CLIENT.lightBlend); context.vec("light_factor", gm.lightBlend);
context.vec("max_vert_dist", Client.CLIENT.lightDistVert); context.vec("max_vert_dist", gm.lightDistVert);
context.vec("max_cam_dist", Client.CLIENT.lightDistCam); context.vec("max_cam_dist", gm.lightDistCam);
context.integer("n_lights", 0); context.integer("n_lights", 0);
context.color3("specular", Client.CLIENT.specularColors && !Client.CLIENT.setGamma && !Client.CLIENT.xrayActive ? 0xffffff : 0x000000); context.color3("specular", gm.specularColors && !gm.setGamma && !gm.xrayActive ? 0xffffff : 0x000000);
context.bool("shade", Client.CLIENT.flatShading || Client.CLIENT.setGamma || Client.CLIENT.xrayActive); context.bool("shade", gm.flatShading || gm.setGamma || gm.xrayActive);
boolean moon = false;
for(int color : gm.world.dimension.getMoonColors()) {
if((color & 0xff000000) == 0) {
moon = true;
break;
}
}
context.bool("sky_light", gm.world.dimension.hasSkyLight() && !gm.setGamma && !gm.xrayActive);
context.bool("moon_light", moon);
GlState.setActiveTexture(GL46.GL_TEXTURE0);
// glBindBufferBase(GL_UNIFORM_BUFFER, 0, world->light_buf); // glBindBufferBase(GL_UNIFORM_BUFFER, 0, world->light_buf);
}, "MAX_LIGHTS", (Supplier<Integer>)() -> Client.CLIENT.lightMaximum), }, "MAX_LIGHTS", (Supplier<Integer>)() -> Client.CLIENT.lightMaximum),
@ -69,8 +100,8 @@ public enum Shader {
}); });
// BLIT("blit", "blit", context -> context.integer("tex", 0), context -> { // BLIT("blit", "blit", context -> context.integer("tex", 0), context -> {
// GL46.glBindVertexArray(QUAD); // GL46C.glBindVertexArray(QUAD);
// GlState.setActiveTexture(GL46.GL_TEXTURE0); // GlState.setActiveTexture(GL46C.GL_TEXTURE0);
// }); // });
public class ShaderContext { public class ShaderContext {
@ -85,63 +116,63 @@ public enum Shader {
} }
public ShaderContext bool(String name, boolean x) { public ShaderContext bool(String name, boolean x) {
GL46.glUniform1i(GL46.glGetUniformLocation(this.program, name), x ? 1 : 0); GL46C.glUniform1i(GL46C.glGetUniformLocation(this.program, name), x ? 1 : 0);
return this; return this;
} }
public ShaderContext integer(String name, int x) { public ShaderContext integer(String name, int x) {
GL46.glUniform1i(GL46.glGetUniformLocation(this.program, name), x); GL46C.glUniform1i(GL46C.glGetUniformLocation(this.program, name), x);
return this; return this;
} }
public ShaderContext vec(String name, float x) { public ShaderContext vec(String name, float x) {
GL46.glUniform1f(GL46.glGetUniformLocation(this.program, name), x); GL46C.glUniform1f(GL46C.glGetUniformLocation(this.program, name), x);
return this; return this;
} }
public ShaderContext vec(String name, float x, float y) { public ShaderContext vec(String name, float x, float y) {
GL46.glUniform2f(GL46.glGetUniformLocation(this.program, name), x, y); GL46C.glUniform2f(GL46C.glGetUniformLocation(this.program, name), x, y);
return this; return this;
} }
public ShaderContext vec(String name, float x, float y, float z) { public ShaderContext vec(String name, float x, float y, float z) {
GL46.glUniform3f(GL46.glGetUniformLocation(this.program, name), x, y, z); GL46C.glUniform3f(GL46C.glGetUniformLocation(this.program, name), x, y, z);
return this; return this;
} }
public ShaderContext vec(String name, float x, float y, float z, float w) { public ShaderContext vec(String name, float x, float y, float z, float w) {
GL46.glUniform4f(GL46.glGetUniformLocation(this.program, name), x, y, z, w); GL46C.glUniform4f(GL46C.glGetUniformLocation(this.program, name), x, y, z, w);
return this; return this;
} }
public ShaderContext vec(String name, Vec3 vec) { public ShaderContext vec(String name, Vec3 vec) {
GL46.glUniform3f(GL46.glGetUniformLocation(this.program, name), (float)vec.xCoord, (float)vec.yCoord, (float)vec.zCoord); GL46C.glUniform3f(GL46C.glGetUniformLocation(this.program, name), (float)vec.xCoord, (float)vec.yCoord, (float)vec.zCoord);
return this; return this;
} }
public ShaderContext vec(String name, Vector3f vec) { public ShaderContext vec(String name, Vector3f vec) {
GL46.glUniform3f(GL46.glGetUniformLocation(this.program, name), vec.x, vec.y, vec.z); GL46C.glUniform3f(GL46C.glGetUniformLocation(this.program, name), vec.x, vec.y, vec.z);
return this; return this;
} }
public ShaderContext vec(String name, Vector4f vec) { public ShaderContext vec(String name, Vector4f vec) {
GL46.glUniform4f(GL46.glGetUniformLocation(this.program, name), vec.x, vec.y, vec.z, vec.w); GL46C.glUniform4f(GL46C.glGetUniformLocation(this.program, name), vec.x, vec.y, vec.z, vec.w);
return this; return this;
} }
public ShaderContext matrix(String name, FloatBuffer mat) { public ShaderContext matrix(String name, FloatBuffer mat) {
GL46.glUniformMatrix4fv(GL46.glGetUniformLocation(this.program, name), false, mat); GL46C.glUniformMatrix4fv(GL46C.glGetUniformLocation(this.program, name), false, mat);
return this; return this;
} }
public ShaderContext matrix(String name, Matrix4f mat) { public ShaderContext matrix(String name, Matrix4f mat) {
mat.store(BUFFER); mat.store(BUFFER);
GL46.glUniformMatrix4fv(GL46.glGetUniformLocation(this.program, name), false, BUFFER); GL46C.glUniformMatrix4fv(GL46C.glGetUniformLocation(this.program, name), false, BUFFER);
return this; return this;
} }
public ShaderContext color(String name, int color) { public ShaderContext color(String name, int color) {
GL46.glUniform4f(GL46.glGetUniformLocation(this.program, name), GL46C.glUniform4f(GL46C.glGetUniformLocation(this.program, name),
(float)((int)((color >> 16) & 0xff)) / 255.0f, (float)((int)((color >> 8) & 0xff)) / 255.0f, (float)((int)((color >> 16) & 0xff)) / 255.0f, (float)((int)((color >> 8) & 0xff)) / 255.0f,
(float)((int)(color & 0xff)) / 255.0f, (float)((int)((color >> 24) & 0xff)) / 255.0f (float)((int)(color & 0xff)) / 255.0f, (float)((int)((color >> 24) & 0xff)) / 255.0f
); );
@ -149,7 +180,7 @@ public enum Shader {
} }
public ShaderContext color3(String name, int color) { public ShaderContext color3(String name, int color) {
GL46.glUniform3f(GL46.glGetUniformLocation(this.program, name), GL46C.glUniform3f(GL46C.glGetUniformLocation(this.program, name),
(float)((int)((color >> 16) & 0xff)) / 255.0f, (float)((int)((color >> 8) & 0xff)) / 255.0f, (float)((int)((color >> 16) & 0xff)) / 255.0f, (float)((int)((color >> 8) & 0xff)) / 255.0f,
(float)((int)(color & 0xff)) / 255.0f (float)((int)(color & 0xff)) / 255.0f
); );
@ -159,7 +190,7 @@ public enum Shader {
public void finish() { public void finish() {
if(context != this) if(context != this)
throw new IllegalStateException("Der Shader-Kontext wird nicht mehr verwendet"); throw new IllegalStateException("Der Shader-Kontext wird nicht mehr verwendet");
GL46.glUseProgram(0); GL46C.glUseProgram(0);
context = null; context = null;
} }
} }
@ -218,44 +249,44 @@ public enum Shader {
private boolean compile(String vcode, String fcode) { private boolean compile(String vcode, String fcode) {
String include = this.buildInclude(); String include = this.buildInclude();
int vs = GL46.glCreateShader(GL46.GL_VERTEX_SHADER); int vs = GL46C.glCreateShader(GL46C.GL_VERTEX_SHADER);
GL46.glShaderSource(vs, "#version 460 compatibility\n" + include + vcode); GL46C.glShaderSource(vs, "#version 460 core\n" + include + vcode);
GL46.glCompileShader(vs); GL46C.glCompileShader(vs);
int ok = GL46.glGetShaderi(vs, GL46.GL_COMPILE_STATUS); int ok = GL46C.glGetShaderi(vs, GL46C.GL_COMPILE_STATUS);
if(ok == 0) { if(ok == 0) {
Log.RENDER.error(GL46.glGetShaderInfoLog(vs)); Log.RENDER.error(GL46C.glGetShaderInfoLog(vs));
Log.RENDER.error("Fehler beim Kompilieren des Vertex-Shaders '%s'", this.vertex); Log.RENDER.error("Fehler beim Kompilieren des Vertex-Shaders '%s'", this.vertex);
GL46.glDeleteShader(vs); GL46C.glDeleteShader(vs);
return false; return false;
} }
int fs = GL46.glCreateShader(GL46.GL_FRAGMENT_SHADER); int fs = GL46C.glCreateShader(GL46C.GL_FRAGMENT_SHADER);
GL46.glShaderSource(fs, "#version 460 compatibility\n" + include + fcode); GL46C.glShaderSource(fs, "#version 460 core\n" + include + fcode);
GL46.glCompileShader(fs); GL46C.glCompileShader(fs);
ok = GL46.glGetShaderi(fs, GL46.GL_COMPILE_STATUS); ok = GL46C.glGetShaderi(fs, GL46C.GL_COMPILE_STATUS);
if(ok == 0) { if(ok == 0) {
Log.RENDER.error(GL46.glGetShaderInfoLog(fs)); Log.RENDER.error(GL46C.glGetShaderInfoLog(fs));
Log.RENDER.error("Fehler beim Kompilieren des Fragment-Shaders '%s'", this.fragment); Log.RENDER.error("Fehler beim Kompilieren des Fragment-Shaders '%s'", this.fragment);
GL46.glDeleteShader(vs); GL46C.glDeleteShader(vs);
GL46.glDeleteShader(fs); GL46C.glDeleteShader(fs);
return false; return false;
} }
int pr = GL46.glCreateProgram(); int pr = GL46C.glCreateProgram();
GL46.glAttachShader(pr, vs); GL46C.glAttachShader(pr, vs);
GL46.glAttachShader(pr, fs); GL46C.glAttachShader(pr, fs);
GL46.glLinkProgram(pr); GL46C.glLinkProgram(pr);
ok = GL46.glGetProgrami(pr, GL46.GL_LINK_STATUS); ok = GL46C.glGetProgrami(pr, GL46C.GL_LINK_STATUS);
if(ok == 0) { if(ok == 0) {
Log.RENDER.error(GL46.glGetProgramInfoLog(pr)); Log.RENDER.error(GL46C.glGetProgramInfoLog(pr));
Log.RENDER.error("Fehler beim Verbinden des Shader-Programms '%s' / '%s'", this.vertex, this.fragment); Log.RENDER.error("Fehler beim Verbinden des Shader-Programms '%s' / '%s'", this.vertex, this.fragment);
GL46.glDeleteShader(vs); GL46C.glDeleteShader(vs);
GL46.glDeleteShader(fs); GL46C.glDeleteShader(fs);
GL46.glDeleteProgram(pr); GL46C.glDeleteProgram(pr);
return false; return false;
} }
GL46.glDeleteShader(vs); GL46C.glDeleteShader(vs);
GL46.glDeleteShader(fs); GL46C.glDeleteShader(fs);
if(this.program != 0) { if(this.program != 0) {
GL46.glDeleteProgram(this.program); GL46C.glDeleteProgram(this.program);
Log.RENDER.debug("Shader '%s' / '%s' / ID #%d wurde mit ID #%d neu geladen", this.vertex, this.fragment, this.program, pr); Log.RENDER.debug("Shader '%s' / '%s' / ID #%d wurde mit ID #%d neu geladen", this.vertex, this.fragment, this.program, pr);
} }
else { else {
@ -263,7 +294,7 @@ public enum Shader {
} }
this.program = pr; this.program = pr;
if(this.init != null) { if(this.init != null) {
GL46.glUseProgram(this.program); GL46C.glUseProgram(this.program);
context = new ShaderContext(this.program); context = new ShaderContext(this.program);
this.init.accept(context); this.init.accept(context);
context.finish(); context.finish();
@ -294,7 +325,7 @@ public enum Shader {
private boolean unload() { private boolean unload() {
if(this.program == 0) if(this.program == 0)
return false; return false;
GL46.glDeleteProgram(this.program); GL46C.glDeleteProgram(this.program);
Log.RENDER.debug("Shader '%s' / '%s' / ID #%d wurde gelöscht", this.vertex, this.fragment, this.program); Log.RENDER.debug("Shader '%s' / '%s' / ID #%d wurde gelöscht", this.vertex, this.fragment, this.program);
this.program = 0; this.program = 0;
return true; return true;
@ -303,7 +334,7 @@ public enum Shader {
public ShaderContext use() { public ShaderContext use() {
if(context != null) if(context != null)
throw new IllegalStateException("Ein Shader wird bereits verwendet"); throw new IllegalStateException("Ein Shader wird bereits verwendet");
GL46.glUseProgram(this.program); GL46C.glUseProgram(this.program);
context = new ShaderContext(this.program); context = new ShaderContext(this.program);
if(this.draw != null) if(this.draw != null)
this.draw.accept(context); this.draw.accept(context);

View file

@ -1,93 +0,0 @@
package client.renderer;
import java.nio.ByteBuffer;
import java.util.List;
import org.lwjgl.opengl.GL46;
public abstract class Tessellator
{
private static final RenderBuffer BUFFER = new RenderBuffer(2097152);
public static RenderBuffer getBuffer()
{
return BUFFER;
}
public static void draw()
{
BUFFER.finishDrawing();
if (BUFFER.getVertexCount() > 0)
{
VertexFormat vertexformat = BUFFER.getVertexFormat();
int i = vertexformat.getNextOffset();
ByteBuffer bytebuffer = BUFFER.getByteBuffer();
List<VertexFormatElement> list = vertexformat.getElements();
for (int j = 0; j < list.size(); ++j)
{
VertexFormatElement vertexformatelement = (VertexFormatElement)list.get(j);
VertexFormatElement.EnumUsage vertexformatelement$enumusage = vertexformatelement.usage();
int k = vertexformatelement.type().getGlConstant();
int l = vertexformatelement.index();
bytebuffer.position(vertexformat.getOffset(j));
switch (vertexformatelement$enumusage)
{
case POSITION:
GL46.glVertexPointer(vertexformatelement.count(), k, i, bytebuffer);
GL46.glEnableClientState(GL46.GL_VERTEX_ARRAY);
break;
case UV:
GL46.glClientActiveTexture(GL46.GL_TEXTURE0 + l);
GL46.glTexCoordPointer(vertexformatelement.count(), k, i, bytebuffer);
GL46.glEnableClientState(GL46.GL_TEXTURE_COORD_ARRAY);
GL46.glClientActiveTexture(GL46.GL_TEXTURE0);
break;
case COLOR:
GL46.glColorPointer(vertexformatelement.count(), k, i, bytebuffer);
GL46.glEnableClientState(GL46.GL_COLOR_ARRAY);
break;
case NORMAL:
GL46.glNormalPointer(k, i, bytebuffer);
GL46.glEnableClientState(GL46.GL_NORMAL_ARRAY);
}
}
GL46.glDrawArrays(BUFFER.getDrawMode(), 0, BUFFER.getVertexCount());
int i1 = 0;
for (int j1 = list.size(); i1 < j1; ++i1)
{
VertexFormatElement vertexformatelement1 = (VertexFormatElement)list.get(i1);
VertexFormatElement.EnumUsage vertexformatelement$enumusage1 = vertexformatelement1.usage();
int k1 = vertexformatelement1.index();
switch (vertexformatelement$enumusage1)
{
case POSITION:
GL46.glDisableClientState(GL46.GL_VERTEX_ARRAY);
break;
case UV:
GL46.glClientActiveTexture(GL46.GL_TEXTURE0 + k1);
GL46.glDisableClientState(GL46.GL_TEXTURE_COORD_ARRAY);
GL46.glClientActiveTexture(GL46.GL_TEXTURE0);
break;
case COLOR:
GL46.glDisableClientState(GL46.GL_COLOR_ARRAY);
GlState.resetColor();
break;
case NORMAL:
GL46.glDisableClientState(GL46.GL_NORMAL_ARRAY);
}
}
}
BUFFER.reset();
}
}

View file

@ -2,40 +2,52 @@ package client.renderer;
import java.nio.ByteBuffer; import java.nio.ByteBuffer;
import org.lwjgl.opengl.GL46; import org.lwjgl.opengl.GL46C;
public class VertexBuffer { public class VertexBuffer {
private int id; private int id;
private final VertexFormat format;
private int count; private int count;
public VertexBuffer(VertexFormat format) { public VertexBuffer() {
this.format = format; this.id = GL46C.glGenBuffers();
this.id = GL46.glGenBuffers();
} }
public void bindBuffer() { public void bufferData(RenderBuffer buffer, boolean dynamic) {
GL46.glBindBuffer(GL46.GL_ARRAY_BUFFER, this.id); ByteBuffer buf = buffer.getByteBuffer();
GL46C.glBindBuffer(GL46C.GL_ARRAY_BUFFER, this.id);
GL46C.glBufferData(GL46C.GL_ARRAY_BUFFER, buf, dynamic ? GL46C.GL_DYNAMIC_DRAW : GL46C.GL_STATIC_DRAW);
GL46C.glBindBuffer(GL46C.GL_ARRAY_BUFFER, 0);
this.count = buf.limit() / 28;
} }
public void bufferData(ByteBuffer buffer) { public void draw() {
this.bindBuffer(); if(this.count == 0)
GL46.glBufferData(GL46.GL_ARRAY_BUFFER, buffer, GL46.GL_STATIC_DRAW); return;
this.unbindBuffer();
this.count = buffer.limit() / this.format.getNextOffset(); GL46C.glBindBuffer(GL46C.GL_ARRAY_BUFFER, this.id);
GL46C.glVertexAttribPointer(0, 3, GL46C.GL_FLOAT, false, 28, 0L);
GL46C.glEnableVertexAttribArray(0);
GL46C.glVertexAttribPointer(1, 4, GL46C.GL_BYTE, true, 28, 12L);
GL46C.glEnableVertexAttribArray(1);
GL46C.glVertexAttribPointer(2, 2, GL46C.GL_FLOAT, false, 28, 16L);
GL46C.glEnableVertexAttribArray(2);
GL46C.glVertexAttribPointer(3, 4, GL46C.GL_UNSIGNED_BYTE, true, 28, 24L);
GL46C.glEnableVertexAttribArray(3);
GL46C.glDrawArrays(GL46C.GL_TRIANGLES, 0, this.count);
GL46C.glDisableVertexAttribArray(0);
GL46C.glDisableVertexAttribArray(1);
GL46C.glDisableVertexAttribArray(2);
GL46C.glDisableVertexAttribArray(3);
GL46C.glBindBuffer(GL46C.GL_ARRAY_BUFFER, 0);
} }
public void drawArrays(int mode) { public void delete() {
GL46.glDrawArrays(mode, 0, this.count);
}
public void unbindBuffer() {
GL46.glBindBuffer(GL46.GL_ARRAY_BUFFER, 0);
}
public void deleteGlBuffers() {
if(this.id >= 0) { if(this.id >= 0) {
GL46.glDeleteBuffers(this.id); GL46C.glDeleteBuffers(this.id);
this.id = -1; this.id = -1;
} }
} }

View file

@ -1,200 +0,0 @@
package client.renderer;
import java.util.List;
import common.collect.Lists;
import common.log.Log;
public class VertexFormat
{
private final List<VertexFormatElement> elements;
private final List<Integer> offsets;
private int nextOffset;
private int colorElementOffset;
private List<Integer> uvOffsetsById;
private int normalElementOffset;
public VertexFormat(VertexFormat vertexFormatIn)
{
this();
for (int i = 0; i < vertexFormatIn.getElementCount(); ++i)
{
this.addElement(vertexFormatIn.getElement(i));
}
this.nextOffset = vertexFormatIn.getNextOffset();
}
public VertexFormat()
{
this.elements = Lists.<VertexFormatElement>newArrayList();
this.offsets = Lists.<Integer>newArrayList();
this.nextOffset = 0;
this.colorElementOffset = -1;
this.uvOffsetsById = Lists.<Integer>newArrayList();
this.normalElementOffset = -1;
}
public void clear()
{
this.elements.clear();
this.offsets.clear();
this.colorElementOffset = -1;
this.uvOffsetsById.clear();
this.normalElementOffset = -1;
this.nextOffset = 0;
}
public VertexFormat addElement(VertexFormatElement element)
{
if (element.isPosition() && this.hasPosition())
{
Log.RENDER.warn("VertexFormat-Fehler: Versuche eine Position vom Typ VertexFormatElement hinzuzufügen, während eine bereits existiert, ignoriere.");
return this;
}
else
{
this.elements.add(element);
this.offsets.add(Integer.valueOf(this.nextOffset));
switch (element.usage())
{
case NORMAL:
this.normalElementOffset = this.nextOffset;
break;
case COLOR:
this.colorElementOffset = this.nextOffset;
break;
case UV:
this.uvOffsetsById.add(element.index(), Integer.valueOf(this.nextOffset));
}
this.nextOffset += element.size();
return this;
}
}
public boolean hasNormal()
{
return this.normalElementOffset >= 0;
}
public int getNormalOffset()
{
return this.normalElementOffset;
}
public boolean hasColor()
{
return this.colorElementOffset >= 0;
}
public int getColorOffset()
{
return this.colorElementOffset;
}
public boolean hasUvOffset(int id)
{
return this.uvOffsetsById.size() - 1 >= id;
}
public int getUvOffsetById(int id)
{
return ((Integer)this.uvOffsetsById.get(id)).intValue();
}
public String toString()
{
String s = "format: " + this.elements.size() + " elements: ";
for (int i = 0; i < this.elements.size(); ++i)
{
s = s + ((VertexFormatElement)this.elements.get(i)).toString();
if (i != this.elements.size() - 1)
{
s = s + " ";
}
}
return s;
}
private boolean hasPosition()
{
int i = 0;
for (int j = this.elements.size(); i < j; ++i)
{
VertexFormatElement vertexformatelement = (VertexFormatElement)this.elements.get(i);
if (vertexformatelement.isPosition())
{
return true;
}
}
return false;
}
public int getIntegerSize()
{
return this.getNextOffset() / 4;
}
public int getNextOffset()
{
return this.nextOffset;
}
public List<VertexFormatElement> getElements()
{
return this.elements;
}
public int getElementCount()
{
return this.elements.size();
}
public VertexFormatElement getElement(int index)
{
return (VertexFormatElement)this.elements.get(index);
}
public int getOffset(int p_181720_1_)
{
return ((Integer)this.offsets.get(p_181720_1_)).intValue();
}
public boolean equals(Object p_equals_1_)
{
if (this == p_equals_1_)
{
return true;
}
else if (p_equals_1_ != null && this.getClass() == p_equals_1_.getClass())
{
VertexFormat vertexformat = (VertexFormat)p_equals_1_;
return this.nextOffset != vertexformat.nextOffset ? false : (!this.elements.equals(vertexformat.elements) ? false : this.offsets.equals(vertexformat.offsets));
}
else
{
return false;
}
}
public int hashCode()
{
int i = this.elements.hashCode();
i = 31 * i + this.offsets.hashCode();
i = 31 * i + this.nextOffset;
return i;
}
}

View file

@ -1,84 +0,0 @@
package client.renderer;
import org.lwjgl.opengl.GL46;
public record VertexFormatElement(int index, VertexFormatElement.EnumType type, VertexFormatElement.EnumUsage usage, int count) {
public String toString() {
return this.count + "," + this.usage.getName() + "," + this.type.getName();
}
public int size() {
return this.type.getSize() * this.count;
}
public boolean isPosition() {
return this.usage == VertexFormatElement.EnumUsage.POSITION;
}
public boolean equals(Object other) {
if(this == other)
return true;
if(!(other instanceof VertexFormatElement))
return false;
VertexFormatElement elem = (VertexFormatElement)other;
return this.count == elem.count && this.index == elem.index && this.type == elem.type && this.usage == elem.usage;
}
public int hashCode() {
int i = this.type.hashCode();
i = 31 * i + this.usage.hashCode();
i = 31 * i + this.index;
i = 31 * i + this.count;
return i;
}
public static enum EnumType {
FLOAT(4, "Float", GL46.GL_FLOAT),
UBYTE(1, "Unsigned Byte", GL46.GL_UNSIGNED_BYTE),
BYTE(1, "Byte", GL46.GL_BYTE),
USHORT(2, "Unsigned Short", GL46.GL_UNSIGNED_SHORT),
SHORT(2, "Short", GL46.GL_SHORT),
UINT(4, "Unsigned Int", GL46.GL_UNSIGNED_INT),
INT(4, "Int", GL46.GL_INT);
private final int size;
private final String name;
private final int glConstant;
private EnumType(int size, String name, int glConstant) {
this.size = size;
this.name = name;
this.glConstant = glConstant;
}
public int getSize() {
return this.size;
}
public String getName() {
return this.name;
}
public int getGlConstant() {
return this.glConstant;
}
}
public static enum EnumUsage {
POSITION("Position"),
NORMAL("Normal"),
COLOR("Vertex Color"),
UV("UV"),
PADDING("Padding");
private final String name;
private EnumUsage(String name) {
this.name = name;
}
public String getName() {
return this.name;
}
}
}

View file

@ -102,11 +102,6 @@ public class FaceBakery
return aint; return aint;
} }
private int getFaceShadeColor(Facing facing)
{
return this.getFaceNormal(facing);
}
private int getFaceNormal(Facing facing) private int getFaceNormal(Facing facing)
{ {
@ -143,7 +138,7 @@ public class FaceBakery
private void fillVertexData(int[] faceData, int vertexIndex, Facing facing, BlockPartFace partFace, float[] p_178402_5_, Sprite sprite, ModelRotation modelRotationIn, BlockPartRotation partRotation, boolean uvLocked, boolean shade, float shine) private void fillVertexData(int[] faceData, int vertexIndex, Facing facing, BlockPartFace partFace, float[] p_178402_5_, Sprite sprite, ModelRotation modelRotationIn, BlockPartRotation partRotation, boolean uvLocked, boolean shade, float shine)
{ {
Facing enumfacing = modelRotationIn.rotateFace(facing); Facing enumfacing = modelRotationIn.rotateFace(facing);
int i = (int)((shine / 32.0f) * 127.0f) << 24 | (shade ? this.getFaceShadeColor(enumfacing) : 0x000000); int i = (int)((shine / 32.0f) * 127.0f) << 24 | (shade ? this.getFaceNormal(enumfacing) : 0x000000);
VertexInformation enumfacedirection$vertexinformation = EnumFaceDirection.getFacing(facing).getVertexInformation(vertexIndex); VertexInformation enumfacedirection$vertexinformation = EnumFaceDirection.getFacing(facing).getVertexInformation(vertexIndex);
Vector3f vector3f = new Vector3f(p_178402_5_[enumfacedirection$vertexinformation.xIndex], p_178402_5_[enumfacedirection$vertexinformation.yIndex], p_178402_5_[enumfacedirection$vertexinformation.zIndex]); Vector3f vector3f = new Vector3f(p_178402_5_[enumfacedirection$vertexinformation.xIndex], p_178402_5_[enumfacedirection$vertexinformation.yIndex], p_178402_5_[enumfacedirection$vertexinformation.zIndex]);
this.rotatePart(vector3f, partRotation); this.rotatePart(vector3f, partRotation);
@ -151,15 +146,15 @@ public class FaceBakery
this.storeVertexData(faceData, j, vertexIndex, vector3f, i, sprite, partFace.uv); this.storeVertexData(faceData, j, vertexIndex, vector3f, i, sprite, partFace.uv);
} }
private void storeVertexData(int[] faceData, int storeIndex, int vertexIndex, Vector3f position, int shadeColor, Sprite sprite, BlockFaceUV faceUV) private void storeVertexData(int[] faceData, int storeIndex, int vertexIndex, Vector3f position, int normalPacked, Sprite sprite, BlockFaceUV faceUV)
{ {
int i = storeIndex * 7; int i = storeIndex * 7;
faceData[i] = Float.floatToRawIntBits(position.x); faceData[i + 0] = Float.floatToRawIntBits(position.x);
faceData[i + 1] = Float.floatToRawIntBits(position.y); faceData[i + 1] = Float.floatToRawIntBits(position.y);
faceData[i + 2] = Float.floatToRawIntBits(position.z); faceData[i + 2] = Float.floatToRawIntBits(position.z);
faceData[i + 3] = shadeColor; faceData[i + 3] = normalPacked;
faceData[i + 4] = Float.floatToRawIntBits(sprite.getInterpolatedU((double)faceUV.getU(vertexIndex))); faceData[i + 4] = Float.floatToRawIntBits(sprite.getInterpolatedU((double)faceUV.getU(vertexIndex)));
faceData[i + 4 + 1] = Float.floatToRawIntBits(sprite.getInterpolatedV((double)faceUV.getV(vertexIndex))); faceData[i + 5] = Float.floatToRawIntBits(sprite.getInterpolatedV((double)faceUV.getV(vertexIndex)));
} }
private void rotatePart(Vector3f p_178407_1_, BlockPartRotation partRotation) private void rotatePart(Vector3f p_178407_1_, BlockPartRotation partRotation)

View file

@ -192,10 +192,7 @@ public class ChunkRenderDispatcher
{ {
if (Client.CLIENT.isMainThread()) if (Client.CLIENT.isMainThread())
{ {
buf.reset(); renderer.getVertexBuffer().bufferData(buf, true);
renderer.getVertexBuffer().bufferData(buf.getByteBuffer());
buf.setTranslation(0.0D, 0.0D, 0.0D);
return new ImmediateFuture(); return new ImmediateFuture();
} }
else else

View file

@ -8,7 +8,7 @@ import java.util.HashSet;
import java.util.Set; import java.util.Set;
import java.util.concurrent.locks.ReentrantLock; import java.util.concurrent.locks.ReentrantLock;
import org.lwjgl.opengl.GL46; import org.lwjgl.opengl.GL46C;
import client.Client; import client.Client;
import client.renderer.DefaultVertexFormats; import client.renderer.DefaultVertexFormats;
@ -59,7 +59,7 @@ public class RenderChunk
this.setPosition(blockPosIn); this.setPosition(blockPosIn);
} }
this.vertexBuffer = new VertexBuffer(DefaultVertexFormats.BLOCK); this.vertexBuffer = new VertexBuffer(Renderer.WORLD_FORMAT);
} }
public boolean setFrameIndex(int frameIndexIn) public boolean setFrameIndex(int frameIndexIn)
@ -172,10 +172,10 @@ public class RenderChunk
compiledchunk.setLayerUsed(); compiledchunk.setLayerUsed();
} }
if (compiledchunk.isLayerStarted()) // if (compiledchunk.isLayerStarted())
{ // {
generator.getRegionRenderCacheBuilder().finishDrawing(); // generator.getRegionRenderCacheBuilder().finishDrawing();
} // }
} }
compiledchunk.setVisibility(lvt_10_1_.computeVisibility()); compiledchunk.setVisibility(lvt_10_1_.computeVisibility());
@ -241,20 +241,19 @@ public class RenderChunk
private void preRenderBlocks(RenderBuffer worldRendererIn, BlockPos pos) private void preRenderBlocks(RenderBuffer worldRendererIn, BlockPos pos)
{ {
worldRendererIn.begin(GL46.GL_QUADS, DefaultVertexFormats.BLOCK); worldRendererIn.begin((double)(-pos.getX()), (double)(-pos.getY()), (double)(-pos.getZ()));
worldRendererIn.setTranslation((double)(-pos.getX()), (double)(-pos.getY()), (double)(-pos.getZ()));
} }
private void initModelviewMatrix() private void initModelviewMatrix()
{ {
GL46.glPushMatrix(); GL46C.glPushMatrix();
GL46.glLoadIdentity(); GL46C.glLoadIdentity();
float f = 1.000001F; float f = 1.000001F;
GL46.glTranslatef(-8.0F, -8.0F, -8.0F); GL46C.glTranslatef(-8.0F, -8.0F, -8.0F);
GL46.glScalef(f, f, f); GL46C.glScalef(f, f, f);
GL46.glTranslatef(8.0F, 8.0F, 8.0F); GL46C.glTranslatef(8.0F, 8.0F, 8.0F);
GL46.glGetFloatv(2982, this.modelviewMatrix); GL46C.glGetFloatv(2982, this.modelviewMatrix);
GL46.glPopMatrix(); GL46C.glPopMatrix();
} }
public FloatBuffer getModelviewMatrix() public FloatBuffer getModelviewMatrix()
@ -292,7 +291,7 @@ public class RenderChunk
this.stopCompileTask(); this.stopCompileTask();
this.gm = null; this.gm = null;
if(this.vertexBuffer != null) if(this.vertexBuffer != null)
this.vertexBuffer.deleteGlBuffers(); this.vertexBuffer.delete();
} }
public BlockPos getPosition() public BlockPos getPosition()

View file

@ -1,6 +1,6 @@
package client.renderer.entity; package client.renderer.entity;
import org.lwjgl.opengl.GL46; import org.lwjgl.opengl.GL46C;
import client.renderer.layers.LayerArachnoidArmor; import client.renderer.layers.LayerArachnoidArmor;
import client.renderer.model.ModelArachnoid; import client.renderer.model.ModelArachnoid;
@ -22,10 +22,10 @@ public class RenderArachnoid extends RenderHumanoid
// } // }
protected void renderLayers(EntityNPC entity, float swing, float amount, float partial, float time, float dYaw, float dPitch, float scale) { protected void renderLayers(EntityNPC entity, float swing, float amount, float partial, float time, float dYaw, float dPitch, float scale) {
GL46.glPushMatrix(); GL46C.glPushMatrix();
GL46.glTranslatef(0.0f, 3.0f / 16.0f, 0.0f); GL46C.glTranslatef(0.0f, 3.0f / 16.0f, 0.0f);
super.renderLayers(entity, swing, amount, partial, time, dYaw, dPitch, scale); super.renderLayers(entity, swing, amount, partial, time, dYaw, dPitch, scale);
GL46.glPopMatrix(); GL46C.glPopMatrix();
} }
public ModelArachnoid getMainModel() public ModelArachnoid getMainModel()

View file

@ -1,6 +1,6 @@
package client.renderer.entity; package client.renderer.entity;
import org.lwjgl.opengl.GL46; import org.lwjgl.opengl.GL46C;
import client.renderer.DefaultVertexFormats; import client.renderer.DefaultVertexFormats;
import client.renderer.GlState; import client.renderer.GlState;
@ -26,10 +26,10 @@ public class RenderArrow extends Render<EntityArrow>
{ {
this.bindEntityTexture(entity); this.bindEntityTexture(entity);
GlState.color(1.0F, 1.0F, 1.0F, 1.0F); GlState.color(1.0F, 1.0F, 1.0F, 1.0F);
GL46.glPushMatrix(); GL46C.glPushMatrix();
GL46.glTranslatef((float)x, (float)y, (float)z); GL46C.glTranslatef((float)x, (float)y, (float)z);
GL46.glRotatef(entity.prevYaw + (entity.rotYaw - entity.prevYaw) * partialTicks - 90.0F, 0.0F, 1.0F, 0.0F); GL46C.glRotatef(entity.prevYaw + (entity.rotYaw - entity.prevYaw) * partialTicks - 90.0F, 0.0F, 1.0F, 0.0F);
GL46.glRotatef(entity.prevPitch + (entity.rotPitch - entity.prevPitch) * partialTicks, 0.0F, 0.0F, 1.0F); GL46C.glRotatef(entity.prevPitch + (entity.rotPitch - entity.prevPitch) * partialTicks, 0.0F, 0.0F, 1.0F);
// Tessellator tessellator = Tessellator.getInstance(); // Tessellator tessellator = Tessellator.getInstance();
RenderBuffer worldrenderer = Tessellator.getBuffer(); RenderBuffer worldrenderer = Tessellator.getBuffer();
int i = 0; int i = 0;
@ -48,21 +48,21 @@ public class RenderArrow extends Render<EntityArrow>
if (f9 > 0.0F) if (f9 > 0.0F)
{ {
float f10 = -ExtMath.sin(f9 * 3.0F) * f9; float f10 = -ExtMath.sin(f9 * 3.0F) * f9;
GL46.glRotatef(f10, 0.0F, 0.0F, 1.0F); GL46C.glRotatef(f10, 0.0F, 0.0F, 1.0F);
} }
GL46.glRotatef(45.0F, 1.0F, 0.0F, 0.0F); GL46C.glRotatef(45.0F, 1.0F, 0.0F, 0.0F);
GL46.glScalef(f8, f8, f8); GL46C.glScalef(f8, f8, f8);
GL46.glTranslatef(-4.0F, 0.0F, 0.0F); GL46C.glTranslatef(-4.0F, 0.0F, 0.0F);
GL46.glNormal3f(f8, 0.0F, 0.0F); GL46C.glNormal3f(f8, 0.0F, 0.0F);
worldrenderer.begin(GL46.GL_QUADS, DefaultVertexFormats.POSITION_TEX); worldrenderer.begin(GL46C.GL_QUADS, DefaultVertexFormats.POSITION_TEX);
worldrenderer.pos(-7.0D, -2.0D, -2.0D).tex((double)f4, (double)f6).endVertex(); worldrenderer.pos(-7.0D, -2.0D, -2.0D).tex((double)f4, (double)f6).endVertex();
worldrenderer.pos(-7.0D, -2.0D, 2.0D).tex((double)f5, (double)f6).endVertex(); worldrenderer.pos(-7.0D, -2.0D, 2.0D).tex((double)f5, (double)f6).endVertex();
worldrenderer.pos(-7.0D, 2.0D, 2.0D).tex((double)f5, (double)f7).endVertex(); worldrenderer.pos(-7.0D, 2.0D, 2.0D).tex((double)f5, (double)f7).endVertex();
worldrenderer.pos(-7.0D, 2.0D, -2.0D).tex((double)f4, (double)f7).endVertex(); worldrenderer.pos(-7.0D, 2.0D, -2.0D).tex((double)f4, (double)f7).endVertex();
Tessellator.draw(); Tessellator.draw();
GL46.glNormal3f(-f8, 0.0F, 0.0F); GL46C.glNormal3f(-f8, 0.0F, 0.0F);
worldrenderer.begin(GL46.GL_QUADS, DefaultVertexFormats.POSITION_TEX); worldrenderer.begin(GL46C.GL_QUADS, DefaultVertexFormats.POSITION_TEX);
worldrenderer.pos(-7.0D, 2.0D, -2.0D).tex((double)f4, (double)f6).endVertex(); worldrenderer.pos(-7.0D, 2.0D, -2.0D).tex((double)f4, (double)f6).endVertex();
worldrenderer.pos(-7.0D, 2.0D, 2.0D).tex((double)f5, (double)f6).endVertex(); worldrenderer.pos(-7.0D, 2.0D, 2.0D).tex((double)f5, (double)f6).endVertex();
worldrenderer.pos(-7.0D, -2.0D, 2.0D).tex((double)f5, (double)f7).endVertex(); worldrenderer.pos(-7.0D, -2.0D, 2.0D).tex((double)f5, (double)f7).endVertex();
@ -71,9 +71,9 @@ public class RenderArrow extends Render<EntityArrow>
for (int j = 0; j < 4; ++j) for (int j = 0; j < 4; ++j)
{ {
GL46.glRotatef(90.0F, 1.0F, 0.0F, 0.0F); GL46C.glRotatef(90.0F, 1.0F, 0.0F, 0.0F);
GL46.glNormal3f(0.0F, 0.0F, f8); GL46C.glNormal3f(0.0F, 0.0F, f8);
worldrenderer.begin(GL46.GL_QUADS, DefaultVertexFormats.POSITION_TEX); worldrenderer.begin(GL46C.GL_QUADS, DefaultVertexFormats.POSITION_TEX);
worldrenderer.pos(-8.0D, -2.0D, 0.0D).tex((double)f, (double)f2).endVertex(); worldrenderer.pos(-8.0D, -2.0D, 0.0D).tex((double)f, (double)f2).endVertex();
worldrenderer.pos(8.0D, -2.0D, 0.0D).tex((double)f1, (double)f2).endVertex(); worldrenderer.pos(8.0D, -2.0D, 0.0D).tex((double)f1, (double)f2).endVertex();
worldrenderer.pos(8.0D, 2.0D, 0.0D).tex((double)f1, (double)f3).endVertex(); worldrenderer.pos(8.0D, 2.0D, 0.0D).tex((double)f1, (double)f3).endVertex();
@ -82,7 +82,7 @@ public class RenderArrow extends Render<EntityArrow>
} }
GlState.disableRescaleNormal(); GlState.disableRescaleNormal();
GL46.glPopMatrix(); GL46C.glPopMatrix();
super.doRender(entity, x, y, z, partialTicks); super.doRender(entity, x, y, z, partialTicks);
} }

View file

@ -1,6 +1,6 @@
package client.renderer.entity; package client.renderer.entity;
import org.lwjgl.opengl.GL46; import org.lwjgl.opengl.GL46C;
import client.renderer.model.ModelBat; import client.renderer.model.ModelBat;
import common.entity.animal.EntityBat; import common.entity.animal.EntityBat;
@ -30,18 +30,18 @@ public class RenderBat extends RenderLiving<EntityBat>
*/ */
protected void preRenderCallback(EntityBat entitylivingbaseIn, float partialTickTime) protected void preRenderCallback(EntityBat entitylivingbaseIn, float partialTickTime)
{ {
GL46.glScalef(0.35F, 0.35F, 0.35F); GL46C.glScalef(0.35F, 0.35F, 0.35F);
} }
protected void rotateCorpse(EntityBat bat, float p_77043_2_, float p_77043_3_, float partialTicks) protected void rotateCorpse(EntityBat bat, float p_77043_2_, float p_77043_3_, float partialTicks)
{ {
if (!bat.getIsBatHanging()) if (!bat.getIsBatHanging())
{ {
GL46.glTranslatef(0.0F, ExtMath.cos(p_77043_2_ * 0.3F) * 0.1F, 0.0F); GL46C.glTranslatef(0.0F, ExtMath.cos(p_77043_2_ * 0.3F) * 0.1F, 0.0F);
} }
else else
{ {
GL46.glTranslatef(0.0F, -0.1F, 0.0F); GL46C.glTranslatef(0.0F, -0.1F, 0.0F);
} }
super.rotateCorpse(bat, p_77043_2_, p_77043_3_, partialTicks); super.rotateCorpse(bat, p_77043_2_, p_77043_3_, partialTicks);

View file

@ -1,6 +1,6 @@
package client.renderer.entity; package client.renderer.entity;
import org.lwjgl.opengl.GL46; import org.lwjgl.opengl.GL46C;
import client.Client; import client.Client;
import client.renderer.texture.TextureMap; import client.renderer.texture.TextureMap;
@ -21,13 +21,13 @@ public class RenderBlockEntity extends Render<Entity>
public void doRender(Entity entity, double x, double y, double z, float partialTicks) public void doRender(Entity entity, double x, double y, double z, float partialTicks)
{ {
GL46.glPushMatrix(); GL46C.glPushMatrix();
GL46.glTranslatef((float)x, (float)y + 0.5F, (float)z); GL46C.glTranslatef((float)x, (float)y + 0.5F, (float)z);
this.bindEntityTexture(entity); this.bindEntityTexture(entity);
GL46.glTranslatef(-0.5F, -0.5F, 0.5F); GL46C.glTranslatef(-0.5F, -0.5F, 0.5F);
Client.CLIENT.renderer.renderBlockEntity(this.state, new BlockPos(entity.posX, entity.posY + (double)entity.getEyeHeight(), entity.posZ)); Client.CLIENT.renderer.renderBlockEntity(this.state, new BlockPos(entity.posX, entity.posY + (double)entity.getEyeHeight(), entity.posZ));
GL46.glTranslatef(0.0F, 0.0F, 1.0F); GL46C.glTranslatef(0.0F, 0.0F, 1.0F);
GL46.glPopMatrix(); GL46C.glPopMatrix();
super.doRender(entity, x, y, z, partialTicks); super.doRender(entity, x, y, z, partialTicks);
} }

View file

@ -1,6 +1,6 @@
package client.renderer.entity; package client.renderer.entity;
import org.lwjgl.opengl.GL46; import org.lwjgl.opengl.GL46C;
import client.renderer.model.ModelBase; import client.renderer.model.ModelBase;
import client.renderer.model.ModelBoat; import client.renderer.model.ModelBoat;
@ -26,9 +26,9 @@ public class RenderBoat extends Render<EntityBoat>
*/ */
public void doRender(EntityBoat entity, double x, double y, double z, float partialTicks) public void doRender(EntityBoat entity, double x, double y, double z, float partialTicks)
{ {
GL46.glPushMatrix(); GL46C.glPushMatrix();
GL46.glTranslatef((float)x, (float)y + 0.25F, (float)z); GL46C.glTranslatef((float)x, (float)y + 0.25F, (float)z);
GL46.glRotatef(180.0F - (entity.prevYaw + (entity.rotYaw - entity.prevYaw) * partialTicks), 0.0F, 1.0F, 0.0F); GL46C.glRotatef(180.0F - (entity.prevYaw + (entity.rotYaw - entity.prevYaw) * partialTicks), 0.0F, 1.0F, 0.0F);
float f = (float)entity.getTimeSinceHit() - partialTicks; float f = (float)entity.getTimeSinceHit() - partialTicks;
float f1 = (float)entity.getDamageTaken() - partialTicks; float f1 = (float)entity.getDamageTaken() - partialTicks;
@ -39,16 +39,16 @@ public class RenderBoat extends Render<EntityBoat>
if (f > 0.0F) if (f > 0.0F)
{ {
GL46.glRotatef(ExtMath.sin(f) * f * f1 / 10.0F * (float)entity.getForwardDirection(), 1.0F, 0.0F, 0.0F); GL46C.glRotatef(ExtMath.sin(f) * f * f1 / 10.0F * (float)entity.getForwardDirection(), 1.0F, 0.0F, 0.0F);
} }
float f2 = 0.75F; float f2 = 0.75F;
GL46.glScalef(f2, f2, f2); GL46C.glScalef(f2, f2, f2);
GL46.glScalef(1.0F / f2, 1.0F / f2, 1.0F / f2); GL46C.glScalef(1.0F / f2, 1.0F / f2, 1.0F / f2);
this.bindEntityTexture(entity); this.bindEntityTexture(entity);
GL46.glScalef(-1.0F, -1.0F, 1.0F); GL46C.glScalef(-1.0F, -1.0F, 1.0F);
this.modelBoat.render(entity, 0.0F, 0.0F, -0.1F, 0.0F, 0.0F, 0.0625F); this.modelBoat.render(entity, 0.0F, 0.0F, -0.1F, 0.0F, 0.0F, 0.0625F);
GL46.glPopMatrix(); GL46C.glPopMatrix();
super.doRender(entity, x, y, z, partialTicks); super.doRender(entity, x, y, z, partialTicks);
} }

View file

@ -1,6 +1,6 @@
package client.renderer.entity; package client.renderer.entity;
import org.lwjgl.opengl.GL46; import org.lwjgl.opengl.GL46C;
import client.renderer.DefaultVertexFormats; import client.renderer.DefaultVertexFormats;
import client.renderer.GlState; import client.renderer.GlState;
@ -22,10 +22,10 @@ public class RenderBullet extends Render<EntityBullet>
{ {
this.bindEntityTexture(entity); this.bindEntityTexture(entity);
GlState.color(1.0F, 1.0F, 1.0F, 1.0F); GlState.color(1.0F, 1.0F, 1.0F, 1.0F);
GL46.glPushMatrix(); GL46C.glPushMatrix();
GL46.glTranslatef((float)x, (float)y, (float)z); GL46C.glTranslatef((float)x, (float)y, (float)z);
GL46.glRotatef(entity.prevYaw + (entity.rotYaw - entity.prevYaw) * partialTicks - 90.0F, 0.0F, 1.0F, 0.0F); GL46C.glRotatef(entity.prevYaw + (entity.rotYaw - entity.prevYaw) * partialTicks - 90.0F, 0.0F, 1.0F, 0.0F);
GL46.glRotatef(entity.prevPitch + (entity.rotPitch - entity.prevPitch) * partialTicks, 0.0F, 0.0F, 1.0F); GL46C.glRotatef(entity.prevPitch + (entity.rotPitch - entity.prevPitch) * partialTicks, 0.0F, 0.0F, 1.0F);
RenderBuffer worldrenderer = Tessellator.getBuffer(); RenderBuffer worldrenderer = Tessellator.getBuffer();
float f = 0.0F; float f = 0.0F;
float f1 = 0.5F; float f1 = 0.5F;
@ -38,18 +38,18 @@ public class RenderBullet extends Render<EntityBullet>
float f8 = 0.05625F; float f8 = 0.05625F;
GlState.enableRescaleNormal(); GlState.enableRescaleNormal();
GL46.glRotatef(45.0F, 1.0F, 0.0F, 0.0F); GL46C.glRotatef(45.0F, 1.0F, 0.0F, 0.0F);
GL46.glScalef(f8, f8, f8); GL46C.glScalef(f8, f8, f8);
GL46.glTranslatef(-4.0F, 0.0F, 0.0F); GL46C.glTranslatef(-4.0F, 0.0F, 0.0F);
GL46.glNormal3f(f8, 0.0F, 0.0F); GL46C.glNormal3f(f8, 0.0F, 0.0F);
worldrenderer.begin(GL46.GL_QUADS, DefaultVertexFormats.POSITION_TEX); worldrenderer.begin(GL46C.GL_QUADS, DefaultVertexFormats.POSITION_TEX);
worldrenderer.pos(-7.0D, -2.0D, -2.0D).tex((double)f4, (double)f6).endVertex(); worldrenderer.pos(-7.0D, -2.0D, -2.0D).tex((double)f4, (double)f6).endVertex();
worldrenderer.pos(-7.0D, -2.0D, 2.0D).tex((double)f5, (double)f6).endVertex(); worldrenderer.pos(-7.0D, -2.0D, 2.0D).tex((double)f5, (double)f6).endVertex();
worldrenderer.pos(-7.0D, 2.0D, 2.0D).tex((double)f5, (double)f7).endVertex(); worldrenderer.pos(-7.0D, 2.0D, 2.0D).tex((double)f5, (double)f7).endVertex();
worldrenderer.pos(-7.0D, 2.0D, -2.0D).tex((double)f4, (double)f7).endVertex(); worldrenderer.pos(-7.0D, 2.0D, -2.0D).tex((double)f4, (double)f7).endVertex();
Tessellator.draw(); Tessellator.draw();
GL46.glNormal3f(-f8, 0.0F, 0.0F); GL46C.glNormal3f(-f8, 0.0F, 0.0F);
worldrenderer.begin(GL46.GL_QUADS, DefaultVertexFormats.POSITION_TEX); worldrenderer.begin(GL46C.GL_QUADS, DefaultVertexFormats.POSITION_TEX);
worldrenderer.pos(-7.0D, 2.0D, -2.0D).tex((double)f4, (double)f6).endVertex(); worldrenderer.pos(-7.0D, 2.0D, -2.0D).tex((double)f4, (double)f6).endVertex();
worldrenderer.pos(-7.0D, 2.0D, 2.0D).tex((double)f5, (double)f6).endVertex(); worldrenderer.pos(-7.0D, 2.0D, 2.0D).tex((double)f5, (double)f6).endVertex();
worldrenderer.pos(-7.0D, -2.0D, 2.0D).tex((double)f5, (double)f7).endVertex(); worldrenderer.pos(-7.0D, -2.0D, 2.0D).tex((double)f5, (double)f7).endVertex();
@ -58,9 +58,9 @@ public class RenderBullet extends Render<EntityBullet>
for (int j = 0; j < 4; ++j) for (int j = 0; j < 4; ++j)
{ {
GL46.glRotatef(90.0F, 1.0F, 0.0F, 0.0F); GL46C.glRotatef(90.0F, 1.0F, 0.0F, 0.0F);
GL46.glNormal3f(0.0F, 0.0F, f8); GL46C.glNormal3f(0.0F, 0.0F, f8);
worldrenderer.begin(GL46.GL_QUADS, DefaultVertexFormats.POSITION_TEX); worldrenderer.begin(GL46C.GL_QUADS, DefaultVertexFormats.POSITION_TEX);
worldrenderer.pos(-8.0D, -2.0D, 0.0D).tex((double)f, (double)f2).endVertex(); worldrenderer.pos(-8.0D, -2.0D, 0.0D).tex((double)f, (double)f2).endVertex();
worldrenderer.pos(8.0D, -2.0D, 0.0D).tex((double)f1, (double)f2).endVertex(); worldrenderer.pos(8.0D, -2.0D, 0.0D).tex((double)f1, (double)f2).endVertex();
worldrenderer.pos(8.0D, 2.0D, 0.0D).tex((double)f1, (double)f3).endVertex(); worldrenderer.pos(8.0D, 2.0D, 0.0D).tex((double)f1, (double)f3).endVertex();
@ -69,7 +69,7 @@ public class RenderBullet extends Render<EntityBullet>
} }
GlState.disableRescaleNormal(); GlState.disableRescaleNormal();
GL46.glPopMatrix(); GL46C.glPopMatrix();
super.doRender(entity, x, y, z, partialTicks); super.doRender(entity, x, y, z, partialTicks);
} }

View file

@ -1,6 +1,6 @@
package client.renderer.entity; package client.renderer.entity;
import org.lwjgl.opengl.GL46; import org.lwjgl.opengl.GL46C;
import client.renderer.model.ModelBase; import client.renderer.model.ModelBase;
import common.entity.animal.EntityCat; import common.entity.animal.EntityCat;
@ -50,7 +50,7 @@ public class RenderCat extends RenderLiving<EntityCat>
if (entitylivingbaseIn.isTamed()) if (entitylivingbaseIn.isTamed())
{ {
GL46.glScalef(0.8F, 0.8F, 0.8F); GL46C.glScalef(0.8F, 0.8F, 0.8F);
} }
} }
} }

View file

@ -1,6 +1,6 @@
package client.renderer.entity; package client.renderer.entity;
import org.lwjgl.opengl.GL46; import org.lwjgl.opengl.GL46C;
import client.renderer.model.ModelBase; import client.renderer.model.ModelBase;
import client.renderer.model.ModelCrystal; import client.renderer.model.ModelCrystal;
@ -26,13 +26,13 @@ public class RenderCrystal extends Render<EntityCrystal>
public void doRender(EntityCrystal entity, double x, double y, double z, float partialTicks) public void doRender(EntityCrystal entity, double x, double y, double z, float partialTicks)
{ {
float f = (float)entity.innerRotation + partialTicks; float f = (float)entity.innerRotation + partialTicks;
GL46.glPushMatrix(); GL46C.glPushMatrix();
GL46.glTranslatef((float)x, (float)y, (float)z); GL46C.glTranslatef((float)x, (float)y, (float)z);
this.bindTexture(crystalTextures); this.bindTexture(crystalTextures);
float f1 = ExtMath.sin(f * 0.2F) / 2.0F + 0.5F; float f1 = ExtMath.sin(f * 0.2F) / 2.0F + 0.5F;
f1 = f1 * f1 + f1; f1 = f1 * f1 + f1;
this.modelCrystal.render(entity, 0.0F, f * 3.0F, f1 * 0.2F, 0.0F, 0.0F, 0.0625F); this.modelCrystal.render(entity, 0.0F, f * 3.0F, f1 * 0.2F, 0.0F, 0.0F, 0.0625F);
GL46.glPopMatrix(); GL46C.glPopMatrix();
super.doRender(entity, x, y, z, partialTicks); super.doRender(entity, x, y, z, partialTicks);
} }

View file

@ -1,6 +1,6 @@
package client.renderer.entity; package client.renderer.entity;
import org.lwjgl.opengl.GL46; import org.lwjgl.opengl.GL46C;
import client.renderer.GlState; import client.renderer.GlState;
import client.renderer.model.ModelDie; import client.renderer.model.ModelDie;
@ -19,16 +19,16 @@ public class RenderDie extends Render<EntityDie> {
} }
public void doRender(EntityDie entity, double x, double y, double z, float partialTicks) { public void doRender(EntityDie entity, double x, double y, double z, float partialTicks) {
GL46.glPushMatrix(); GL46C.glPushMatrix();
GL46.glTranslatef((float)x, (float)y + 0.05F, (float)z); GL46C.glTranslatef((float)x, (float)y + 0.05F, (float)z);
this.bindEntityTexture(entity); this.bindEntityTexture(entity);
if(entity.getValue() == 0) if(entity.getValue() == 0)
GL46.glRotatef((float)((entity.ticksExisted % 10) * (360 / 10)), 0.3f, 0.4f, 0.1f); GL46C.glRotatef((float)((entity.ticksExisted % 10) * (360 / 10)), 0.3f, 0.4f, 0.1f);
GL46.glScalef(-0.1f, -0.1f, 0.1f); GL46C.glScalef(-0.1f, -0.1f, 0.1f);
GlState.disableCull(); GlState.disableCull();
this.model.render(entity, 0.0F, 0.0F, 0.0F, 0.0F, 0.0F, 0.0625F); this.model.render(entity, 0.0F, 0.0F, 0.0F, 0.0F, 0.0F, 0.0625F);
GlState.enableCull(); GlState.enableCull();
GL46.glPopMatrix(); GL46C.glPopMatrix();
super.doRender(entity, x, y, z, partialTicks); super.doRender(entity, x, y, z, partialTicks);
} }
} }

View file

@ -1,68 +1,13 @@
package client.renderer.entity; package client.renderer.entity;
import org.lwjgl.opengl.GL46;
import client.renderer.DefaultVertexFormats;
import client.renderer.GlState;
import client.renderer.RenderBuffer;
import client.renderer.Tessellator;
import common.entity.Entity; import common.entity.Entity;
import common.util.BoundingBox;
public class RenderEntity extends Render<Entity> {
public RenderEntity(RenderManager renderManagerIn) {
super(renderManagerIn);
}
public class RenderEntity extends Render<Entity> protected String getEntityTexture(Entity entity) {
{ return null;
public static void renderOffsetAABB(BoundingBox bb, double x, double y, double z) }
{
GlState.disableTexture2D();
RenderBuffer rb = Tessellator.getBuffer();
GlState.color(1.0F, 1.0F, 1.0F, 1.0F);
rb.setTranslation(x, y, z);
rb.begin(GL46.GL_QUADS, DefaultVertexFormats.POSITION_NORMAL);
rb.pos(bb.minX, bb.maxY, bb.minZ).normal(0.0F, 0.0F, -1.0F).endVertex();
rb.pos(bb.maxX, bb.maxY, bb.minZ).normal(0.0F, 0.0F, -1.0F).endVertex();
rb.pos(bb.maxX, bb.minY, bb.minZ).normal(0.0F, 0.0F, -1.0F).endVertex();
rb.pos(bb.minX, bb.minY, bb.minZ).normal(0.0F, 0.0F, -1.0F).endVertex();
rb.pos(bb.minX, bb.minY, bb.maxZ).normal(0.0F, 0.0F, 1.0F).endVertex();
rb.pos(bb.maxX, bb.minY, bb.maxZ).normal(0.0F, 0.0F, 1.0F).endVertex();
rb.pos(bb.maxX, bb.maxY, bb.maxZ).normal(0.0F, 0.0F, 1.0F).endVertex();
rb.pos(bb.minX, bb.maxY, bb.maxZ).normal(0.0F, 0.0F, 1.0F).endVertex();
rb.pos(bb.minX, bb.minY, bb.minZ).normal(0.0F, -1.0F, 0.0F).endVertex();
rb.pos(bb.maxX, bb.minY, bb.minZ).normal(0.0F, -1.0F, 0.0F).endVertex();
rb.pos(bb.maxX, bb.minY, bb.maxZ).normal(0.0F, -1.0F, 0.0F).endVertex();
rb.pos(bb.minX, bb.minY, bb.maxZ).normal(0.0F, -1.0F, 0.0F).endVertex();
rb.pos(bb.minX, bb.maxY, bb.maxZ).normal(0.0F, 1.0F, 0.0F).endVertex();
rb.pos(bb.maxX, bb.maxY, bb.maxZ).normal(0.0F, 1.0F, 0.0F).endVertex();
rb.pos(bb.maxX, bb.maxY, bb.minZ).normal(0.0F, 1.0F, 0.0F).endVertex();
rb.pos(bb.minX, bb.maxY, bb.minZ).normal(0.0F, 1.0F, 0.0F).endVertex();
rb.pos(bb.minX, bb.minY, bb.maxZ).normal(-1.0F, 0.0F, 0.0F).endVertex();
rb.pos(bb.minX, bb.maxY, bb.maxZ).normal(-1.0F, 0.0F, 0.0F).endVertex();
rb.pos(bb.minX, bb.maxY, bb.minZ).normal(-1.0F, 0.0F, 0.0F).endVertex();
rb.pos(bb.minX, bb.minY, bb.minZ).normal(-1.0F, 0.0F, 0.0F).endVertex();
rb.pos(bb.maxX, bb.minY, bb.minZ).normal(1.0F, 0.0F, 0.0F).endVertex();
rb.pos(bb.maxX, bb.maxY, bb.minZ).normal(1.0F, 0.0F, 0.0F).endVertex();
rb.pos(bb.maxX, bb.maxY, bb.maxZ).normal(1.0F, 0.0F, 0.0F).endVertex();
rb.pos(bb.maxX, bb.minY, bb.maxZ).normal(1.0F, 0.0F, 0.0F).endVertex();
Tessellator.draw();
rb.setTranslation(0.0D, 0.0D, 0.0D);
GlState.enableTexture2D();
}
public RenderEntity(RenderManager renderManagerIn)
{
super(renderManagerIn);
}
public void doRender(Entity entity, double x, double y, double z, float partialTicks)
{
GL46.glPushMatrix();
renderOffsetAABB(entity.getEntityBoundingBox(), x - entity.lastTickPosX, y - entity.lastTickPosY, z - entity.lastTickPosZ);
GL46.glPopMatrix();
super.doRender(entity, x, y, z, partialTicks);
}
protected String getEntityTexture(Entity entity)
{
return null;
}
} }

View file

@ -1,6 +1,6 @@
package client.renderer.entity; package client.renderer.entity;
import org.lwjgl.opengl.GL46; import org.lwjgl.opengl.GL46C;
import client.renderer.GlState; import client.renderer.GlState;
import client.renderer.blockmodel.IBakedModel; import client.renderer.blockmodel.IBakedModel;
@ -39,12 +39,12 @@ public class RenderEntityItem extends Render<EntityItem>
int i = this.getMultiplier(itemstack); int i = this.getMultiplier(itemstack);
float f = 0.25F; float f = 0.25F;
float f1 = ExtMath.sin(((float)itemIn.getAge() + p_177077_8_) / 10.0F + itemIn.hoverStart) * 0.1F + 0.1F; float f1 = ExtMath.sin(((float)itemIn.getAge() + p_177077_8_) / 10.0F + itemIn.hoverStart) * 0.1F + 0.1F;
GL46.glTranslatef((float)p_177077_2_, (float)p_177077_4_ + f1 + 0.25F, (float)p_177077_6_); GL46C.glTranslatef((float)p_177077_2_, (float)p_177077_4_ + f1 + 0.25F, (float)p_177077_6_);
if (flag || this.manager.gm != null) if (flag || this.manager.gm != null)
{ {
float f3 = (((float)itemIn.getAge() + p_177077_8_) / 20.0F + itemIn.hoverStart) * (180F / (float)Math.PI); float f3 = (((float)itemIn.getAge() + p_177077_8_) / 20.0F + itemIn.hoverStart) * (180F / (float)Math.PI);
GL46.glRotatef(f3, 0.0F, 1.0F, 0.0F); GL46C.glRotatef(f3, 0.0F, 1.0F, 0.0F);
} }
if (!flag) if (!flag)
@ -52,7 +52,7 @@ public class RenderEntityItem extends Render<EntityItem>
float f6 = -0.0F * (float)(i - 1) * 0.5F; float f6 = -0.0F * (float)(i - 1) * 0.5F;
float f4 = -0.0F * (float)(i - 1) * 0.5F; float f4 = -0.0F * (float)(i - 1) * 0.5F;
float f5 = -0.046875F * (float)(i - 1) * 0.5F; float f5 = -0.046875F * (float)(i - 1) * 0.5F;
GL46.glTranslatef(f6, f4, f5); GL46C.glTranslatef(f6, f4, f5);
} }
GlState.color(1.0F, 1.0F, 1.0F, 1.0F); GlState.color(1.0F, 1.0F, 1.0F, 1.0F);
@ -102,10 +102,10 @@ public class RenderEntityItem extends Render<EntityItem>
// } // }
GlState.enableRescaleNormal(); GlState.enableRescaleNormal();
GlState.alphaFunc(GL46.GL_GREATER, 0.1F); GlState.alphaFunc(GL46C.GL_GREATER, 0.1F);
GlState.enableBlend(); GlState.enableBlend();
GlState.tryBlendFuncSeparate(GL46.GL_SRC_ALPHA, GL46.GL_ONE_MINUS_SRC_ALPHA, GL46.GL_ONE, GL46.GL_ZERO); GlState.tryBlendFuncSeparate(GL46C.GL_SRC_ALPHA, GL46C.GL_ONE_MINUS_SRC_ALPHA, GL46C.GL_ONE, GL46C.GL_ZERO);
GL46.glPushMatrix(); GL46C.glPushMatrix();
IBakedModel ibakedmodel = this.itemRenderer.getItemModelMesher().getItemModel(itemstack); IBakedModel ibakedmodel = this.itemRenderer.getItemModelMesher().getItemModel(itemstack);
int i = this.func_177077_a(entity, x, y, z, partialTicks, ibakedmodel); int i = this.func_177077_a(entity, x, y, z, partialTicks, ibakedmodel);
@ -113,30 +113,30 @@ public class RenderEntityItem extends Render<EntityItem>
{ {
if (ibakedmodel.isGui3d()) if (ibakedmodel.isGui3d())
{ {
GL46.glPushMatrix(); GL46C.glPushMatrix();
if (j > 0) if (j > 0)
{ {
float f = (this.field_177079_e.floatv() * 2.0F - 1.0F) * 0.15F; float f = (this.field_177079_e.floatv() * 2.0F - 1.0F) * 0.15F;
float f1 = (this.field_177079_e.floatv() * 2.0F - 1.0F) * 0.15F; float f1 = (this.field_177079_e.floatv() * 2.0F - 1.0F) * 0.15F;
float f2 = (this.field_177079_e.floatv() * 2.0F - 1.0F) * 0.15F; float f2 = (this.field_177079_e.floatv() * 2.0F - 1.0F) * 0.15F;
GL46.glTranslatef(f, f1, f2); GL46C.glTranslatef(f, f1, f2);
} }
GL46.glScalef(0.5F, 0.5F, 0.5F); GL46C.glScalef(0.5F, 0.5F, 0.5F);
this.itemRenderer.renderItem(itemstack, ibakedmodel); this.itemRenderer.renderItem(itemstack, ibakedmodel);
GL46.glPopMatrix(); GL46C.glPopMatrix();
} }
else else
{ {
GL46.glPushMatrix(); GL46C.glPushMatrix();
this.itemRenderer.renderItem(itemstack, ibakedmodel); this.itemRenderer.renderItem(itemstack, ibakedmodel);
GL46.glPopMatrix(); GL46C.glPopMatrix();
GL46.glTranslatef(0.0F, 0.0F, 0.046875F); GL46C.glTranslatef(0.0F, 0.0F, 0.046875F);
} }
} }
GL46.glPopMatrix(); GL46C.glPopMatrix();
GlState.disableRescaleNormal(); GlState.disableRescaleNormal();
GlState.disableBlend(); GlState.disableBlend();
this.bindEntityTexture(entity); this.bindEntityTexture(entity);

View file

@ -1,6 +1,6 @@
package client.renderer.entity; package client.renderer.entity;
import org.lwjgl.opengl.GL46; import org.lwjgl.opengl.GL46C;
import client.Client; import client.Client;
import client.renderer.texture.TextureMap; import client.renderer.texture.TextureMap;
@ -25,13 +25,13 @@ public class RenderFallingBlock extends Render<EntityFalling> {
if(state != world.getState(pos) && block != Blocks.air && !block.getMaterial().isLiquid()) { if(state != world.getState(pos) && block != Blocks.air && !block.getMaterial().isLiquid()) {
GL46.glPushMatrix(); GL46C.glPushMatrix();
GL46.glTranslatef((float)x, (float)y + 0.5F, (float)z); GL46C.glTranslatef((float)x, (float)y + 0.5F, (float)z);
this.bindEntityTexture(entity); this.bindEntityTexture(entity);
GL46.glTranslatef(-0.5F, -0.5F, 0.5F); GL46C.glTranslatef(-0.5F, -0.5F, 0.5F);
Client.CLIENT.renderer.renderBlockEntity(state, new BlockPos(entity.posX, entity.posY + (double)entity.getEyeHeight(), entity.posZ)); Client.CLIENT.renderer.renderBlockEntity(state, new BlockPos(entity.posX, entity.posY + (double)entity.getEyeHeight(), entity.posZ));
GL46.glTranslatef(0.0F, 0.0F, 1.0F); GL46C.glTranslatef(0.0F, 0.0F, 1.0F);
GL46.glPopMatrix(); GL46C.glPopMatrix();
super.doRender(entity, x, y, z, partialTicks); super.doRender(entity, x, y, z, partialTicks);
} }
} }

View file

@ -1,6 +1,6 @@
package client.renderer.entity; package client.renderer.entity;
import org.lwjgl.opengl.GL46; import org.lwjgl.opengl.GL46C;
import client.Client; import client.Client;
import client.renderer.DefaultVertexFormats; import client.renderer.DefaultVertexFormats;
@ -28,11 +28,11 @@ public class RenderFireball extends Render<EntityProjectile>
*/ */
public void doRender(EntityProjectile entity, double x, double y, double z, float partialTicks) public void doRender(EntityProjectile entity, double x, double y, double z, float partialTicks)
{ {
GL46.glPushMatrix(); GL46C.glPushMatrix();
this.bindEntityTexture(entity); this.bindEntityTexture(entity);
GL46.glTranslatef((float)x, (float)y, (float)z); GL46C.glTranslatef((float)x, (float)y, (float)z);
GlState.enableRescaleNormal(); GlState.enableRescaleNormal();
GL46.glScalef(this.scale, this.scale, this.scale); GL46C.glScalef(this.scale, this.scale, this.scale);
Sprite textureatlassprite = Client.CLIENT.getRenderItem().getItemModelMesher().getParticleIcon(Items.fireball); Sprite textureatlassprite = Client.CLIENT.getRenderItem().getItemModelMesher().getParticleIcon(Items.fireball);
// Tessellator tessellator = Tessellator.getInstance(); // Tessellator tessellator = Tessellator.getInstance();
RenderBuffer worldrenderer = Tessellator.getBuffer(); RenderBuffer worldrenderer = Tessellator.getBuffer();
@ -43,16 +43,16 @@ public class RenderFireball extends Render<EntityProjectile>
float f4 = 1.0F; float f4 = 1.0F;
float f5 = 0.5F; float f5 = 0.5F;
float f6 = 0.25F; float f6 = 0.25F;
GL46.glRotatef(180.0F - this.manager.playerViewY, 0.0F, 1.0F, 0.0F); GL46C.glRotatef(180.0F - this.manager.playerViewY, 0.0F, 1.0F, 0.0F);
GL46.glRotatef(-this.manager.playerViewX, 1.0F, 0.0F, 0.0F); GL46C.glRotatef(-this.manager.playerViewX, 1.0F, 0.0F, 0.0F);
worldrenderer.begin(GL46.GL_QUADS, DefaultVertexFormats.POSITION_TEX_NORMAL); worldrenderer.begin(GL46C.GL_QUADS, DefaultVertexFormats.POSITION_TEX_NORMAL);
worldrenderer.pos(-0.5D, -0.25D, 0.0D).tex((double)f, (double)f3).normal(0.0F, 1.0F, 0.0F).endVertex(); worldrenderer.pos(-0.5D, -0.25D, 0.0D).tex((double)f, (double)f3).normal(0.0F, 1.0F, 0.0F).endVertex();
worldrenderer.pos(0.5D, -0.25D, 0.0D).tex((double)f1, (double)f3).normal(0.0F, 1.0F, 0.0F).endVertex(); worldrenderer.pos(0.5D, -0.25D, 0.0D).tex((double)f1, (double)f3).normal(0.0F, 1.0F, 0.0F).endVertex();
worldrenderer.pos(0.5D, 0.75D, 0.0D).tex((double)f1, (double)f2).normal(0.0F, 1.0F, 0.0F).endVertex(); worldrenderer.pos(0.5D, 0.75D, 0.0D).tex((double)f1, (double)f2).normal(0.0F, 1.0F, 0.0F).endVertex();
worldrenderer.pos(-0.5D, 0.75D, 0.0D).tex((double)f, (double)f2).normal(0.0F, 1.0F, 0.0F).endVertex(); worldrenderer.pos(-0.5D, 0.75D, 0.0D).tex((double)f, (double)f2).normal(0.0F, 1.0F, 0.0F).endVertex();
Tessellator.draw(); Tessellator.draw();
GlState.disableRescaleNormal(); GlState.disableRescaleNormal();
GL46.glPopMatrix(); GL46C.glPopMatrix();
super.doRender(entity, x, y, z, partialTicks); super.doRender(entity, x, y, z, partialTicks);
} }

View file

@ -1,6 +1,6 @@
package client.renderer.entity; package client.renderer.entity;
import org.lwjgl.opengl.GL46; import org.lwjgl.opengl.GL46C;
import client.Client; import client.Client;
import client.renderer.DefaultVertexFormats; import client.renderer.DefaultVertexFormats;
@ -25,10 +25,10 @@ public class RenderFish extends Render<EntityHook>
*/ */
public void doRender(EntityHook entity, double x, double y, double z, float partialTicks) public void doRender(EntityHook entity, double x, double y, double z, float partialTicks)
{ {
GL46.glPushMatrix(); GL46C.glPushMatrix();
GL46.glTranslatef((float)x, (float)y, (float)z); GL46C.glTranslatef((float)x, (float)y, (float)z);
GlState.enableRescaleNormal(); GlState.enableRescaleNormal();
GL46.glScalef(0.5F, 0.5F, 0.5F); GL46C.glScalef(0.5F, 0.5F, 0.5F);
this.bindEntityTexture(entity); this.bindEntityTexture(entity);
// Tessellator tessellator = Tessellator.getInstance(); // Tessellator tessellator = Tessellator.getInstance();
RenderBuffer worldrenderer = Tessellator.getBuffer(); RenderBuffer worldrenderer = Tessellator.getBuffer();
@ -41,16 +41,16 @@ public class RenderFish extends Render<EntityHook>
float f4 = 1.0F; float f4 = 1.0F;
float f5 = 0.5F; float f5 = 0.5F;
float f6 = 0.5F; float f6 = 0.5F;
GL46.glRotatef(180.0F - this.manager.playerViewY, 0.0F, 1.0F, 0.0F); GL46C.glRotatef(180.0F - this.manager.playerViewY, 0.0F, 1.0F, 0.0F);
GL46.glRotatef(-this.manager.playerViewX, 1.0F, 0.0F, 0.0F); GL46C.glRotatef(-this.manager.playerViewX, 1.0F, 0.0F, 0.0F);
worldrenderer.begin(GL46.GL_QUADS, DefaultVertexFormats.POSITION_TEX_NORMAL); worldrenderer.begin(GL46C.GL_QUADS, DefaultVertexFormats.POSITION_TEX_NORMAL);
worldrenderer.pos(-0.5D, -0.5D, 0.0D).tex(0.0D, 0.25D).normal(0.0F, 1.0F, 0.0F).endVertex(); worldrenderer.pos(-0.5D, -0.5D, 0.0D).tex(0.0D, 0.25D).normal(0.0F, 1.0F, 0.0F).endVertex();
worldrenderer.pos(0.5D, -0.5D, 0.0D).tex(0.25D, 0.25D).normal(0.0F, 1.0F, 0.0F).endVertex(); worldrenderer.pos(0.5D, -0.5D, 0.0D).tex(0.25D, 0.25D).normal(0.0F, 1.0F, 0.0F).endVertex();
worldrenderer.pos(0.5D, 0.5D, 0.0D).tex(0.25D, 0.0D).normal(0.0F, 1.0F, 0.0F).endVertex(); worldrenderer.pos(0.5D, 0.5D, 0.0D).tex(0.25D, 0.0D).normal(0.0F, 1.0F, 0.0F).endVertex();
worldrenderer.pos(-0.5D, 0.5D, 0.0D).tex(0.0D, 0.0D).normal(0.0F, 1.0F, 0.0F).endVertex(); worldrenderer.pos(-0.5D, 0.5D, 0.0D).tex(0.0D, 0.0D).normal(0.0F, 1.0F, 0.0F).endVertex();
Tessellator.draw(); Tessellator.draw();
GlState.disableRescaleNormal(); GlState.disableRescaleNormal();
GL46.glPopMatrix(); GL46C.glPopMatrix();
if (entity.angler != null) if (entity.angler != null)
{ {
@ -87,7 +87,7 @@ public class RenderFish extends Render<EntityHook>
double d12 = (double)((float)(d2 - d7)); double d12 = (double)((float)(d2 - d7));
GlState.disableTexture2D(); GlState.disableTexture2D();
GlState.disableLighting(); GlState.disableLighting();
worldrenderer.begin(GL46.GL_LINE_STRIP, DefaultVertexFormats.POSITION_COLOR); worldrenderer.begin(GL46C.GL_LINE_STRIP, DefaultVertexFormats.POSITION_COLOR);
int k = 16; int k = 16;
for (int l = 0; l <= 16; ++l) for (int l = 0; l <= 16; ++l)

View file

@ -1,6 +1,6 @@
package client.renderer.entity; package client.renderer.entity;
import org.lwjgl.opengl.GL46; import org.lwjgl.opengl.GL46C;
import client.renderer.GlState; import client.renderer.GlState;
import client.renderer.model.ModelHead; import client.renderer.model.ModelHead;
@ -40,19 +40,19 @@ public class RenderFlyingBox extends Render<EntityBox>
*/ */
public void doRender(EntityBox entity, double x, double y, double z, float partialTicks) public void doRender(EntityBox entity, double x, double y, double z, float partialTicks)
{ {
GL46.glPushMatrix(); GL46C.glPushMatrix();
GlState.disableCull(); GlState.disableCull();
float f = this.func_82400_a(entity.prevYaw, entity.rotYaw, partialTicks); float f = this.func_82400_a(entity.prevYaw, entity.rotYaw, partialTicks);
float f1 = entity.prevPitch + (entity.rotPitch - entity.prevPitch) * partialTicks; float f1 = entity.prevPitch + (entity.rotPitch - entity.prevPitch) * partialTicks;
GL46.glTranslatef((float)x, (float)y, (float)z); GL46C.glTranslatef((float)x, (float)y, (float)z);
GL46.glRotatef((float)(entity.ticksExisted % 100) * 360.0f / 100.0f, 0.3f, 0.4f, 0.1f); GL46C.glRotatef((float)(entity.ticksExisted % 100) * 360.0f / 100.0f, 0.3f, 0.4f, 0.1f);
float f2 = 0.0625F; float f2 = 0.0625F;
GlState.enableRescaleNormal(); GlState.enableRescaleNormal();
GL46.glScalef(-1.0F, -1.0F, 1.0F); GL46C.glScalef(-1.0F, -1.0F, 1.0F);
GlState.enableAlpha(); GlState.enableAlpha();
this.bindEntityTexture(entity); this.bindEntityTexture(entity);
this.boxModel.render(entity, 0.0F, 0.0F, 0.0F, f, f1, f2); this.boxModel.render(entity, 0.0F, 0.0F, 0.0F, f, f1, f2);
GL46.glPopMatrix(); GL46C.glPopMatrix();
super.doRender(entity, x, y, z, partialTicks); super.doRender(entity, x, y, z, partialTicks);
} }

View file

@ -2,7 +2,7 @@ package client.renderer.entity;
import java.util.Set; import java.util.Set;
import org.lwjgl.opengl.GL46; import org.lwjgl.opengl.GL46C;
import client.Client; import client.Client;
import client.renderer.model.ModelHorse; import client.renderer.model.ModelHorse;
@ -40,7 +40,7 @@ public class RenderHorse extends RenderLiving<EntityHorse>
f *= 0.92F; f *= 0.92F;
} }
GL46.glScalef(f, f, f); GL46C.glScalef(f, f, f);
super.preRenderCallback(entitylivingbaseIn, partialTickTime); super.preRenderCallback(entitylivingbaseIn, partialTickTime);
} }

View file

@ -1,6 +1,6 @@
package client.renderer.entity; package client.renderer.entity;
import org.lwjgl.opengl.GL46; import org.lwjgl.opengl.GL46C;
import client.renderer.GlState; import client.renderer.GlState;
import client.renderer.layers.LayerArmor; import client.renderer.layers.LayerArmor;
@ -178,7 +178,7 @@ public class RenderHumanoid extends RenderNpc
// SKC.glScalef(f2, f3, f2); // SKC.glScalef(f2, f3, f2);
// } // }
float f = entitylivingbaseIn.getRenderScale(); // 0.9375F; float f = entitylivingbaseIn.getRenderScale(); // 0.9375F;
GL46.glScalef(f, f, f); GL46C.glScalef(f, f, f);
} }
// protected int getColorMultiplier(EntityNPC entitylivingbaseIn, float lightBrightness, float partialTickTime) // protected int getColorMultiplier(EntityNPC entitylivingbaseIn, float lightBrightness, float partialTickTime)

View file

@ -2,7 +2,7 @@ package client.renderer.entity;
import java.util.List; import java.util.List;
import org.lwjgl.opengl.GL46; import org.lwjgl.opengl.GL46C;
import client.renderer.DefaultVertexFormats; import client.renderer.DefaultVertexFormats;
import client.renderer.GlState; import client.renderer.GlState;
@ -67,7 +67,7 @@ public class RenderItem
private void renderModel(IBakedModel model, int color, ItemStack stack) private void renderModel(IBakedModel model, int color, ItemStack stack)
{ {
RenderBuffer worldrenderer = Tessellator.getBuffer(); RenderBuffer worldrenderer = Tessellator.getBuffer();
worldrenderer.begin(GL46.GL_QUADS, DefaultVertexFormats.ITEM); worldrenderer.begin(GL46C.GL_QUADS, DefaultVertexFormats.ITEM);
for (Facing enumfacing : Facing.values()) for (Facing enumfacing : Facing.values())
{ {
@ -82,31 +82,31 @@ public class RenderItem
{ {
if (stack != null) if (stack != null)
{ {
GL46.glPushMatrix(); GL46C.glPushMatrix();
GL46.glScalef(0.5F, 0.5F, 0.5F); GL46C.glScalef(0.5F, 0.5F, 0.5F);
if (model.isBuiltin()) if (model.isBuiltin())
{ {
GL46.glRotatef(180.0F, 0.0F, 1.0F, 0.0F); GL46C.glRotatef(180.0F, 0.0F, 1.0F, 0.0F);
GL46.glTranslatef(-0.5F, -0.5F, -0.5F); GL46C.glTranslatef(-0.5F, -0.5F, -0.5F);
GlState.color(1.0F, 1.0F, 1.0F, 1.0F); GlState.color(1.0F, 1.0F, 1.0F, 1.0F);
GlState.enableRescaleNormal(); GlState.enableRescaleNormal();
this.renderBuiltin(stack); this.renderBuiltin(stack);
} }
else else
{ {
GL46.glTranslatef(-0.5F, -0.5F, -0.5F); GL46C.glTranslatef(-0.5F, -0.5F, -0.5F);
this.renderModel(model, stack); this.renderModel(model, stack);
} }
GL46.glPopMatrix(); GL46C.glPopMatrix();
} }
} }
private void renderBuiltin(ItemStack stack) { private void renderBuiltin(ItemStack stack) {
if(stack.getItem() instanceof ItemArmor armor) { if(stack.getItem() instanceof ItemArmor armor) {
this.stack = stack; this.stack = stack;
GL46.glPushMatrix(); GL46C.glPushMatrix();
float offset = 0.0f; float offset = 0.0f;
switch(armor.getArmorType()) { switch(armor.getArmorType()) {
case HELMET: case HELMET:
@ -128,9 +128,9 @@ public class RenderItem
offset = 0.0f; offset = 0.0f;
break; break;
} }
GL46.glTranslatef(1.0f, offset, 0.0f); GL46C.glTranslatef(1.0f, offset, 0.0f);
GL46.glRotatef(180.0f, 0.0f, 1.0f, 0.0f); GL46C.glRotatef(180.0f, 0.0f, 1.0f, 0.0f);
GL46.glScalef(1.4f, -1.4f, 1.4f); GL46C.glScalef(1.4f, -1.4f, 1.4f);
boolean cull = GlState.isCullEnabled(); boolean cull = GlState.isCullEnabled();
if(cull) if(cull)
GlState.disableCull(); GlState.disableCull();
@ -142,14 +142,14 @@ public class RenderItem
// //
if(cull) if(cull)
GlState.enableCull(); GlState.enableCull();
GL46.glPopMatrix(); GL46C.glPopMatrix();
this.stack = null; this.stack = null;
} }
else if(stack.getItem() instanceof ItemAnimalArmor horseArmor) { else if(stack.getItem() instanceof ItemAnimalArmor horseArmor) {
GL46.glPushMatrix(); GL46C.glPushMatrix();
GL46.glTranslatef(0.9f, 0.5f, 0.0f); GL46C.glTranslatef(0.9f, 0.5f, 0.0f);
GL46.glRotatef(180.0f, 0.0f, 1.0f, 0.0f); GL46C.glRotatef(180.0f, 0.0f, 1.0f, 0.0f);
GL46.glScalef(0.85f, -0.85f, 0.85f); GL46C.glScalef(0.85f, -0.85f, 0.85f);
Class<? extends EntityLiving> clazz = horseArmor.getArmorType().getAnimalType(); Class<? extends EntityLiving> clazz = horseArmor.getArmorType().getAnimalType();
boolean cull = GlState.isCullEnabled(); boolean cull = GlState.isCullEnabled();
if(cull) if(cull)
@ -160,7 +160,7 @@ public class RenderItem
} }
if(cull) if(cull)
GlState.enableCull(); GlState.enableCull();
GL46.glPopMatrix(); GL46C.glPopMatrix();
} }
} }
@ -214,7 +214,7 @@ public class RenderItem
if (!flag) if (!flag)
{ {
GL46.glScalef(2.0F, 2.0F, 2.0F); GL46C.glScalef(2.0F, 2.0F, 2.0F);
} }
GlState.color(1.0F, 1.0F, 1.0F, 1.0F); GlState.color(1.0F, 1.0F, 1.0F, 1.0F);
@ -254,45 +254,45 @@ public class RenderItem
this.manager.bindTexture(TextureMap.BLOCKS); this.manager.bindTexture(TextureMap.BLOCKS);
this.preTransform(stack); this.preTransform(stack);
GlState.enableRescaleNormal(); GlState.enableRescaleNormal();
GlState.alphaFunc(GL46.GL_GREATER, 0.1F); GlState.alphaFunc(GL46C.GL_GREATER, 0.1F);
GlState.enableBlend(); GlState.enableBlend();
GlState.tryBlendFuncSeparate(GL46.GL_SRC_ALPHA, GL46.GL_ONE_MINUS_SRC_ALPHA, GL46.GL_ONE, GL46.GL_ZERO); GlState.tryBlendFuncSeparate(GL46C.GL_SRC_ALPHA, GL46C.GL_ONE_MINUS_SRC_ALPHA, GL46C.GL_ONE, GL46C.GL_ZERO);
GL46.glPushMatrix(); GL46C.glPushMatrix();
if(transform) { if(transform) {
WieldType type = stack.getItem().getWieldType(); WieldType type = stack.getItem().getWieldType();
if(third && type != null) { if(third && type != null) {
switch(type) { switch(type) {
case TOOL_FLIP: case TOOL_FLIP:
GL46.glTranslatef(0.0f, 0.0f, -3.5f * 0.0625f); GL46C.glTranslatef(0.0f, 0.0f, -3.5f * 0.0625f);
GL46.glRotatef(90.0f, 0.0F, 1.0F, 0.0F); GL46C.glRotatef(90.0f, 0.0F, 1.0F, 0.0F);
GL46.glRotatef(180.0f, 1.0F, 0.0F, 0.0F); GL46C.glRotatef(180.0f, 1.0F, 0.0F, 0.0F);
GL46.glRotatef(-35.0f, 0.0F, 0.0F, 1.0F); GL46C.glRotatef(-35.0f, 0.0F, 0.0F, 1.0F);
GL46.glScalef(0.85f, 0.85f, 0.85f); GL46C.glScalef(0.85f, 0.85f, 0.85f);
break; break;
case TOOL: case TOOL:
GL46.glTranslatef(0.0f, 1.25f * 0.0625f, -3.5f * 0.0625f); GL46C.glTranslatef(0.0f, 1.25f * 0.0625f, -3.5f * 0.0625f);
GL46.glRotatef(90.0f, 0.0F, 1.0F, 0.0F); GL46C.glRotatef(90.0f, 0.0F, 1.0F, 0.0F);
GL46.glRotatef(-35.0f, 0.0F, 0.0F, 1.0F); GL46C.glRotatef(-35.0f, 0.0F, 0.0F, 1.0F);
GL46.glScalef(0.85f, 0.85f, 0.85f); GL46C.glScalef(0.85f, 0.85f, 0.85f);
break; break;
case RANGED: case RANGED:
GL46.glTranslatef(0.75f * 0.0625f, 0.0f, 0.25f * 0.0625f); GL46C.glTranslatef(0.75f * 0.0625f, 0.0f, 0.25f * 0.0625f);
GL46.glRotatef(80.0f, 0.0F, 1.0F, 0.0F); GL46C.glRotatef(80.0f, 0.0F, 1.0F, 0.0F);
GL46.glRotatef(5.0f, 1.0F, 0.0F, 0.0F); GL46C.glRotatef(5.0f, 1.0F, 0.0F, 0.0F);
GL46.glRotatef(-45.0f, 0.0F, 0.0F, 1.0F); GL46C.glRotatef(-45.0f, 0.0F, 0.0F, 1.0F);
break; break;
} }
} }
else if(!third) { else if(!third) {
GL46.glTranslatef(0.0f, 4.0f * 0.0625f, 2.0f * 0.0625f); GL46C.glTranslatef(0.0f, 4.0f * 0.0625f, 2.0f * 0.0625f);
GL46.glRotatef(type == WieldType.TOOL_FLIP ? 45.0f : -135.0f, 0.0F, 1.0F, 0.0F); GL46C.glRotatef(type == WieldType.TOOL_FLIP ? 45.0f : -135.0f, 0.0F, 1.0F, 0.0F);
GL46.glRotatef(25.0f, 0.0F, 0.0F, 1.0F); GL46C.glRotatef(25.0f, 0.0F, 0.0F, 1.0F);
GL46.glScalef(1.7f, 1.7f, 1.7f); GL46C.glScalef(1.7f, 1.7f, 1.7f);
} }
} }
this.renderItem(stack, model); this.renderItem(stack, model);
GlState.cullFace(GL46.GL_BACK); GlState.cullFace(GL46C.GL_BACK);
GL46.glPopMatrix(); GL46C.glPopMatrix();
GlState.disableRescaleNormal(); GlState.disableRescaleNormal();
GlState.disableBlend(); GlState.disableBlend();
this.manager.bindTexture(TextureMap.BLOCKS); this.manager.bindTexture(TextureMap.BLOCKS);
@ -301,22 +301,22 @@ public class RenderItem
private void renderItemIntoGUI(ItemStack stack, int x, int y) private void renderItemIntoGUI(ItemStack stack, int x, int y)
{ {
IBakedModel ibakedmodel = this.mesher.getItemModel(stack); IBakedModel ibakedmodel = this.mesher.getItemModel(stack);
GL46.glPushMatrix(); GL46C.glPushMatrix();
this.manager.bindTexture(TextureMap.BLOCKS); this.manager.bindTexture(TextureMap.BLOCKS);
GlState.enableRescaleNormal(); GlState.enableRescaleNormal();
GlState.enableAlpha(); GlState.enableAlpha();
GlState.alphaFunc(GL46.GL_GREATER, 0.1F); GlState.alphaFunc(GL46C.GL_GREATER, 0.1F);
GlState.enableBlend(); GlState.enableBlend();
GlState.blendFunc(GL46.GL_SRC_ALPHA, GL46.GL_ONE_MINUS_SRC_ALPHA); GlState.blendFunc(GL46C.GL_SRC_ALPHA, GL46C.GL_ONE_MINUS_SRC_ALPHA);
GlState.color(1.0F, 1.0F, 1.0F, 1.0F); GlState.color(1.0F, 1.0F, 1.0F, 1.0F);
this.setupGuiTransform(x, y, ibakedmodel.isGui3d()); this.setupGuiTransform(x, y, ibakedmodel.isGui3d());
GuiPosition vec = ibakedmodel.getTransforms(); GuiPosition vec = ibakedmodel.getTransforms();
if(vec != GuiPosition.NORMAL) { if(vec != GuiPosition.NORMAL) {
GL46.glTranslatef(vec.translationX(), vec.translationY(), vec.translationZ()); GL46C.glTranslatef(vec.translationX(), vec.translationY(), vec.translationZ());
GL46.glRotatef(vec.rotationY(), 0.0F, 1.0F, 0.0F); GL46C.glRotatef(vec.rotationY(), 0.0F, 1.0F, 0.0F);
GL46.glRotatef(vec.rotationX(), 1.0F, 0.0F, 0.0F); GL46C.glRotatef(vec.rotationX(), 1.0F, 0.0F, 0.0F);
GL46.glRotatef(vec.rotationZ(), 0.0F, 0.0F, 1.0F); GL46C.glRotatef(vec.rotationZ(), 0.0F, 0.0F, 1.0F);
GL46.glScalef(vec.scale(), vec.scale(), vec.scale()); GL46C.glScalef(vec.scale(), vec.scale(), vec.scale());
} }
boolean cull = GlState.isCullEnabled(); boolean cull = GlState.isCullEnabled();
if(!cull) if(!cull)
@ -327,28 +327,28 @@ public class RenderItem
GlState.disableAlpha(); GlState.disableAlpha();
GlState.disableRescaleNormal(); GlState.disableRescaleNormal();
GlState.disableLighting(); GlState.disableLighting();
GL46.glPopMatrix(); GL46C.glPopMatrix();
this.manager.bindTexture(TextureMap.BLOCKS); this.manager.bindTexture(TextureMap.BLOCKS);
} }
private void setupGuiTransform(int xPosition, int yPosition, boolean isGui3d) private void setupGuiTransform(int xPosition, int yPosition, boolean isGui3d)
{ {
GL46.glTranslatef((float)xPosition, (float)yPosition, 100.0F + this.zLevel); GL46C.glTranslatef((float)xPosition, (float)yPosition, 100.0F + this.zLevel);
GL46.glTranslatef(8.0F, 8.0F, 0.0F); GL46C.glTranslatef(8.0F, 8.0F, 0.0F);
GL46.glScalef(1.0F, 1.0F, -1.0F); GL46C.glScalef(1.0F, 1.0F, -1.0F);
GL46.glScalef(0.5F, 0.5F, 0.5F); GL46C.glScalef(0.5F, 0.5F, 0.5F);
if (isGui3d) if (isGui3d)
{ {
GL46.glScalef(40.0F, 40.0F, 40.0F); GL46C.glScalef(40.0F, 40.0F, 40.0F);
GL46.glRotatef(210.0F, 1.0F, 0.0F, 0.0F); GL46C.glRotatef(210.0F, 1.0F, 0.0F, 0.0F);
GL46.glRotatef(-135.0F, 0.0F, 1.0F, 0.0F); GL46C.glRotatef(-135.0F, 0.0F, 1.0F, 0.0F);
GlState.enableLighting(); GlState.enableLighting();
} }
else else
{ {
GL46.glScalef(64.0F, 64.0F, 64.0F); GL46C.glScalef(64.0F, 64.0F, 64.0F);
GL46.glRotatef(180.0F, 1.0F, 0.0F, 0.0F); GL46C.glRotatef(180.0F, 1.0F, 0.0F, 0.0F);
GlState.disableLighting(); GlState.disableLighting();
} }
} }

View file

@ -1,6 +1,6 @@
package client.renderer.entity; package client.renderer.entity;
import org.lwjgl.opengl.GL46; import org.lwjgl.opengl.GL46C;
import client.renderer.GlState; import client.renderer.GlState;
import client.renderer.texture.TextureMap; import client.renderer.texture.TextureMap;
@ -23,16 +23,16 @@ public class RenderItemEntity<T extends Entity> extends Render<T>
public void doRender(T entity, double x, double y, double z, float partialTicks) public void doRender(T entity, double x, double y, double z, float partialTicks)
{ {
GL46.glPushMatrix(); GL46C.glPushMatrix();
GL46.glTranslatef((float)x, (float)y, (float)z); GL46C.glTranslatef((float)x, (float)y, (float)z);
GlState.enableRescaleNormal(); GlState.enableRescaleNormal();
GL46.glScalef(0.5F, 0.5F, 0.5F); GL46C.glScalef(0.5F, 0.5F, 0.5F);
GL46.glRotatef(-this.manager.playerViewY, 0.0F, 1.0F, 0.0F); GL46C.glRotatef(-this.manager.playerViewY, 0.0F, 1.0F, 0.0F);
GL46.glRotatef(this.manager.playerViewX, 1.0F, 0.0F, 0.0F); GL46C.glRotatef(this.manager.playerViewX, 1.0F, 0.0F, 0.0F);
this.bindTexture(TextureMap.BLOCKS); this.bindTexture(TextureMap.BLOCKS);
this.itemRenderer.renderItemAsGround(this.getStack(entity)); this.itemRenderer.renderItemAsGround(this.getStack(entity));
GlState.disableRescaleNormal(); GlState.disableRescaleNormal();
GL46.glPopMatrix(); GL46C.glPopMatrix();
super.doRender(entity, x, y, z, partialTicks); super.doRender(entity, x, y, z, partialTicks);
} }

View file

@ -1,6 +1,6 @@
package client.renderer.entity; package client.renderer.entity;
import org.lwjgl.opengl.GL46; import org.lwjgl.opengl.GL46C;
import client.renderer.GlState; import client.renderer.GlState;
import client.renderer.model.ModelLeashKnot; import client.renderer.model.ModelLeashKnot;
@ -22,16 +22,16 @@ public class RenderLeashKnot extends Render<EntityLeashKnot>
*/ */
public void doRender(EntityLeashKnot entity, double x, double y, double z, float partialTicks) public void doRender(EntityLeashKnot entity, double x, double y, double z, float partialTicks)
{ {
GL46.glPushMatrix(); GL46C.glPushMatrix();
GlState.disableCull(); GlState.disableCull();
GL46.glTranslatef((float)x, (float)y, (float)z); GL46C.glTranslatef((float)x, (float)y, (float)z);
float f = 0.0625F; float f = 0.0625F;
GlState.enableRescaleNormal(); GlState.enableRescaleNormal();
GL46.glScalef(-1.0F, -1.0F, 1.0F); GL46C.glScalef(-1.0F, -1.0F, 1.0F);
GlState.enableAlpha(); GlState.enableAlpha();
this.bindEntityTexture(entity); this.bindEntityTexture(entity);
this.leashKnotModel.render(entity, 0.0F, 0.0F, 0.0F, 0.0F, 0.0F, f); this.leashKnotModel.render(entity, 0.0F, 0.0F, 0.0F, 0.0F, 0.0F, f);
GL46.glPopMatrix(); GL46C.glPopMatrix();
super.doRender(entity, x, y, z, partialTicks); super.doRender(entity, x, y, z, partialTicks);
} }

View file

@ -1,6 +1,6 @@
package client.renderer.entity; package client.renderer.entity;
import org.lwjgl.opengl.GL46; import org.lwjgl.opengl.GL46C;
import client.renderer.DefaultVertexFormats; import client.renderer.DefaultVertexFormats;
import client.renderer.GlState; import client.renderer.GlState;
@ -27,7 +27,7 @@ public class RenderLightning extends Render<EntityLightning>
GlState.disableTexture2D(); GlState.disableTexture2D();
GlState.disableLighting(); GlState.disableLighting();
GlState.enableBlend(); GlState.enableBlend();
GlState.blendFunc(GL46.GL_SRC_ALPHA, GL46.GL_ONE); GlState.blendFunc(GL46C.GL_SRC_ALPHA, GL46C.GL_ONE);
double[] adouble = new double[8]; double[] adouble = new double[8];
double[] adouble1 = new double[8]; double[] adouble1 = new double[8];
double d0 = 0.0D; double d0 = 0.0D;
@ -83,7 +83,7 @@ public class RenderLightning extends Render<EntityLightning>
d3 += (double)(random1.zrange(31) - 15); d3 += (double)(random1.zrange(31) - 15);
} }
worldrenderer.begin(GL46.GL_TRIANGLE_STRIP, DefaultVertexFormats.POSITION_COLOR); worldrenderer.begin(GL46C.GL_TRIANGLE_STRIP, DefaultVertexFormats.POSITION_COLOR);
float f = 0.5F; float f = 0.5F;
float f1 = 0.45F; float f1 = 0.45F;
float f2 = 0.45F; float f2 = 0.45F;

View file

@ -1,6 +1,6 @@
package client.renderer.entity; package client.renderer.entity;
import org.lwjgl.opengl.GL46; import org.lwjgl.opengl.GL46C;
import client.renderer.DefaultVertexFormats; import client.renderer.DefaultVertexFormats;
import client.renderer.Frustum; import client.renderer.Frustum;
@ -46,7 +46,7 @@ public abstract class RenderLiving<T extends EntityLiving> extends RendererLivin
int l = RenderManager.getBrightnessForRender(entity); int l = RenderManager.getBrightnessForRender(entity);
int a = l % 65536; int a = l % 65536;
int b = l / 65536; int b = l / 65536;
GL46.glMultiTexCoord2f(GL46.GL_TEXTURE1, (float)a / 1.0F, (float)b / 1.0F); GL46C.glMultiTexCoord2f(GL46C.GL_TEXTURE1, (float)a / 1.0F, (float)b / 1.0F);
} }
private static double interpolateValue(double start, double end, double pct) { private static double interpolateValue(double start, double end, double pct) {
@ -95,7 +95,7 @@ public abstract class RenderLiving<T extends EntityLiving> extends RendererLivin
GlState.disableTexture2D(); GlState.disableTexture2D();
GlState.disableLighting(); GlState.disableLighting();
GlState.disableCull(); GlState.disableCull();
renderer.begin(GL46.GL_TRIANGLE_STRIP, DefaultVertexFormats.POSITION_COLOR); renderer.begin(GL46C.GL_TRIANGLE_STRIP, DefaultVertexFormats.POSITION_COLOR);
for(int n = 0; n <= 24; ++n) { for(int n = 0; n <= 24; ++n) {
float cr = r; float cr = r;
float cg = g; float cg = g;
@ -118,7 +118,7 @@ public abstract class RenderLiving<T extends EntityLiving> extends RendererLivin
).color(cr, cg, cb, 1.0F).endVertex(); ).color(cr, cg, cb, 1.0F).endVertex();
} }
Tessellator.draw(); Tessellator.draw();
renderer.begin(GL46.GL_TRIANGLE_STRIP, DefaultVertexFormats.POSITION_COLOR); renderer.begin(GL46C.GL_TRIANGLE_STRIP, DefaultVertexFormats.POSITION_COLOR);
for(int n = 0; n <= 24; ++n) { for(int n = 0; n <= 24; ++n) {
float cr = r; float cr = r;
float cg = g; float cg = g;

View file

@ -2,7 +2,7 @@ package client.renderer.entity;
import java.util.Map; import java.util.Map;
import org.lwjgl.opengl.GL46; import org.lwjgl.opengl.GL46C;
import client.Client; import client.Client;
import client.init.RenderRegistry; import client.init.RenderRegistry;
@ -142,7 +142,7 @@ public class RenderManager {
int j = i % 65536; int j = i % 65536;
int k = i / 65536; int k = i / 65536;
GL46.glMultiTexCoord2f(GL46.GL_TEXTURE1, (float)j / 1.0F, (float)k / 1.0F); GL46C.glMultiTexCoord2f(GL46C.GL_TEXTURE1, (float)j / 1.0F, (float)k / 1.0F);
GlState.color(1.0F, 1.0F, 1.0F, 1.0F); GlState.color(1.0F, 1.0F, 1.0F, 1.0F);
return this.renderEntity(entity, d0 - this.renderPosX, d1 - this.renderPosY, d2 - this.renderPosZ, partialTicks); return this.renderEntity(entity, d0 - this.renderPosX, d1 - this.renderPosY, d2 - this.renderPosZ, partialTicks);
} }
@ -180,22 +180,22 @@ public class RenderManager {
if(dist > (double)(maxDistance * maxDistance) || !this.gm.canRenderHud()) if(dist > (double)(maxDistance * maxDistance) || !this.gm.canRenderHud())
return; return;
float scale = 0.016666668F; float scale = 0.016666668F;
GL46.glPushMatrix(); GL46C.glPushMatrix();
GL46.glTranslatef((float)x + 0.0F, (float)y + entity.height + 0.5F, (float)z); GL46C.glTranslatef((float)x + 0.0F, (float)y + entity.height + 0.5F, (float)z);
GL46.glNormal3f(0.0F, 1.0F, 0.0F); GL46C.glNormal3f(0.0F, 1.0F, 0.0F);
GL46.glRotatef(-this.playerViewY, 0.0F, 1.0F, 0.0F); GL46C.glRotatef(-this.playerViewY, 0.0F, 1.0F, 0.0F);
GL46.glRotatef(this.playerViewX, 1.0F, 0.0F, 0.0F); GL46C.glRotatef(this.playerViewX, 1.0F, 0.0F, 0.0F);
GL46.glScalef(-scale, -scale, scale); GL46C.glScalef(-scale, -scale, scale);
GlState.disableLighting(); GlState.disableLighting();
GlState.depthMask(false); GlState.depthMask(false);
GlState.enableBlend(); GlState.enableBlend();
GlState.tryBlendFuncSeparate(GL46.GL_SRC_ALPHA, GL46.GL_ONE_MINUS_SRC_ALPHA, GL46.GL_ONE, GL46.GL_ZERO); GlState.tryBlendFuncSeparate(GL46C.GL_SRC_ALPHA, GL46C.GL_ONE_MINUS_SRC_ALPHA, GL46C.GL_ONE, GL46C.GL_ZERO);
GlState.depthMask(true); GlState.depthMask(true);
Drawing.drawTextboxCentered(str, 0, 0, 0x3f000000); Drawing.drawTextboxCentered3d(str, 0, 0, 0x3f000000);
GlState.enableLighting(); GlState.enableLighting();
GlState.disableBlend(); GlState.disableBlend();
GlState.color(1.0F, 1.0F, 1.0F, 1.0F); GlState.color(1.0F, 1.0F, 1.0F, 1.0F);
GL46.glPopMatrix(); GL46C.glPopMatrix();
} }
private void renderEntityFire(Entity entity, double x, double y, double z) { private void renderEntityFire(Entity entity, double x, double y, double z) {
@ -203,21 +203,21 @@ public class RenderManager {
TextureMap map = this.gm.getTextureMapBlocks(); TextureMap map = this.gm.getTextureMapBlocks();
Sprite layer0 = map.getAtlasSprite("blocks/fire_layer_0"); Sprite layer0 = map.getAtlasSprite("blocks/fire_layer_0");
Sprite layer1 = map.getAtlasSprite("blocks/fire_layer_1"); Sprite layer1 = map.getAtlasSprite("blocks/fire_layer_1");
GL46.glPushMatrix(); GL46C.glPushMatrix();
GL46.glTranslatef((float)x, (float)y, (float)z); GL46C.glTranslatef((float)x, (float)y, (float)z);
float scale = entity.width * 1.4F; float scale = entity.width * 1.4F;
GL46.glScalef(scale, scale, scale); GL46C.glScalef(scale, scale, scale);
RenderBuffer rb = Tessellator.getBuffer(); RenderBuffer rb = Tessellator.getBuffer();
float f1 = 0.5F; float f1 = 0.5F;
float f2 = 0.0F; float f2 = 0.0F;
float f3 = entity.height / scale; float f3 = entity.height / scale;
float f4 = (float)(entity.posY - entity.getEntityBoundingBox().minY); float f4 = (float)(entity.posY - entity.getEntityBoundingBox().minY);
GL46.glRotatef(-this.playerViewY, 0.0F, 1.0F, 0.0F); GL46C.glRotatef(-this.playerViewY, 0.0F, 1.0F, 0.0F);
GL46.glTranslatef(0.0F, 0.0F, -0.3F + (float)((int)f3) * 0.02F); GL46C.glTranslatef(0.0F, 0.0F, -0.3F + (float)((int)f3) * 0.02F);
GlState.color(1.0F, 1.0F, 1.0F, 1.0F); GlState.color(1.0F, 1.0F, 1.0F, 1.0F);
float f5 = 0.0F; float f5 = 0.0F;
int i = 0; int i = 0;
rb.begin(GL46.GL_QUADS, DefaultVertexFormats.POSITION_TEX); rb.begin(GL46C.GL_QUADS, DefaultVertexFormats.POSITION_TEX);
while(f3 > 0.0F) { while(f3 > 0.0F) {
Sprite layer = i % 2 == 0 ? layer0 : layer1; Sprite layer = i % 2 == 0 ? layer0 : layer1;
@ -245,7 +245,7 @@ public class RenderManager {
} }
Tessellator.draw(); Tessellator.draw();
GL46.glPopMatrix(); GL46C.glPopMatrix();
GlState.enableLighting(); GlState.enableLighting();
} }
@ -269,7 +269,7 @@ public class RenderManager {
RenderBuffer worldrenderer = Tessellator.getBuffer(); RenderBuffer worldrenderer = Tessellator.getBuffer();
Vec3 vec3 = entityIn.getLook(partialTicks); Vec3 vec3 = entityIn.getLook(partialTicks);
worldrenderer.begin(GL46.GL_LINE_STRIP, DefaultVertexFormats.POSITION_COLOR); worldrenderer.begin(GL46C.GL_LINE_STRIP, DefaultVertexFormats.POSITION_COLOR);
worldrenderer.pos(x, y + (double)entityIn.getEyeHeight(), z).color(0, 0, 255, 255).endVertex(); worldrenderer.pos(x, y + (double)entityIn.getEyeHeight(), z).color(0, 0, 255, 255).endVertex();
worldrenderer.pos(x + vec3.xCoord * 2.0D, y + (double)entityIn.getEyeHeight() + vec3.yCoord * 2.0D, z + vec3.zCoord * 2.0D).color(0, 0, 255, 255).endVertex(); worldrenderer.pos(x + vec3.xCoord * 2.0D, y + (double)entityIn.getEyeHeight() + vec3.yCoord * 2.0D, z + vec3.zCoord * 2.0D).color(0, 0, 255, 255).endVertex();
Tessellator.draw(); Tessellator.draw();

View file

@ -1,6 +1,6 @@
package client.renderer.entity; package client.renderer.entity;
import org.lwjgl.opengl.GL46; import org.lwjgl.opengl.GL46C;
import client.Client; import client.Client;
import client.renderer.GlState; import client.renderer.GlState;
@ -33,14 +33,14 @@ public class RenderMinecart<T extends EntityCart> extends Render<T>
public void doRender(T entity, double x, double y, double z, float partialTicks) public void doRender(T entity, double x, double y, double z, float partialTicks)
{ {
float entityYaw = entity.prevYaw + (entity.rotYaw - entity.prevYaw) * partialTicks; float entityYaw = entity.prevYaw + (entity.rotYaw - entity.prevYaw) * partialTicks;
GL46.glPushMatrix(); GL46C.glPushMatrix();
this.bindEntityTexture(entity); this.bindEntityTexture(entity);
long i = (long)entity.getId() * 493286711L; long i = (long)entity.getId() * 493286711L;
i = i * i * 4392167121L + i * 98761L; i = i * i * 4392167121L + i * 98761L;
float f = (((float)(i >> 16 & 7L) + 0.5F) / 8.0F - 0.5F) * 0.004F; float f = (((float)(i >> 16 & 7L) + 0.5F) / 8.0F - 0.5F) * 0.004F;
float f1 = (((float)(i >> 20 & 7L) + 0.5F) / 8.0F - 0.5F) * 0.004F; float f1 = (((float)(i >> 20 & 7L) + 0.5F) / 8.0F - 0.5F) * 0.004F;
float f2 = (((float)(i >> 24 & 7L) + 0.5F) / 8.0F - 0.5F) * 0.004F; float f2 = (((float)(i >> 24 & 7L) + 0.5F) / 8.0F - 0.5F) * 0.004F;
GL46.glTranslatef(f, f1, f2); GL46C.glTranslatef(f, f1, f2);
double d0 = entity.lastTickPosX + (entity.posX - entity.lastTickPosX) * (double)partialTicks; double d0 = entity.lastTickPosX + (entity.posX - entity.lastTickPosX) * (double)partialTicks;
double d1 = entity.lastTickPosY + (entity.posY - entity.lastTickPosY) * (double)partialTicks; double d1 = entity.lastTickPosY + (entity.posY - entity.lastTickPosY) * (double)partialTicks;
double d2 = entity.lastTickPosZ + (entity.posZ - entity.lastTickPosZ) * (double)partialTicks; double d2 = entity.lastTickPosZ + (entity.posZ - entity.lastTickPosZ) * (double)partialTicks;
@ -76,9 +76,9 @@ public class RenderMinecart<T extends EntityCart> extends Render<T>
} }
} }
GL46.glTranslatef((float)x, (float)y + 0.375F, (float)z); GL46C.glTranslatef((float)x, (float)y + 0.375F, (float)z);
GL46.glRotatef(180.0F - entityYaw, 0.0F, 1.0F, 0.0F); GL46C.glRotatef(180.0F - entityYaw, 0.0F, 1.0F, 0.0F);
GL46.glRotatef(-f3, 0.0F, 0.0F, 1.0F); GL46C.glRotatef(-f3, 0.0F, 0.0F, 1.0F);
float f5 = (float)entity.getRollingAmplitude() - partialTicks; float f5 = (float)entity.getRollingAmplitude() - partialTicks;
float f6 = (float)entity.getDamage() - partialTicks; float f6 = (float)entity.getDamage() - partialTicks;
@ -89,7 +89,7 @@ public class RenderMinecart<T extends EntityCart> extends Render<T>
if (f5 > 0.0F) if (f5 > 0.0F)
{ {
GL46.glRotatef(ExtMath.sin(f5) * f5 * f6 / 10.0F * (float)entity.getRollingDirection(), 1.0F, 0.0F, 0.0F); GL46C.glRotatef(ExtMath.sin(f5) * f5 * f6 / 10.0F * (float)entity.getRollingDirection(), 1.0F, 0.0F, 0.0F);
} }
int j = entity.getDisplayTileOffset(); int j = entity.getDisplayTileOffset();
@ -97,20 +97,20 @@ public class RenderMinecart<T extends EntityCart> extends Render<T>
if (iblockstate.getBlock() != Blocks.air && !iblockstate.getBlock().getMaterial().isLiquid()) if (iblockstate.getBlock() != Blocks.air && !iblockstate.getBlock().getMaterial().isLiquid())
{ {
GL46.glPushMatrix(); GL46C.glPushMatrix();
this.bindTexture(TextureMap.BLOCKS); this.bindTexture(TextureMap.BLOCKS);
float f4 = 0.75F; float f4 = 0.75F;
GL46.glScalef(f4, f4, f4); GL46C.glScalef(f4, f4, f4);
GL46.glTranslatef(-0.5F, (float)(j - 8) / 16.0F, 0.5F); GL46C.glTranslatef(-0.5F, (float)(j - 8) / 16.0F, 0.5F);
this.func_180560_a(entity, partialTicks, iblockstate); this.func_180560_a(entity, partialTicks, iblockstate);
GL46.glPopMatrix(); GL46C.glPopMatrix();
GlState.color(1.0F, 1.0F, 1.0F, 1.0F); GlState.color(1.0F, 1.0F, 1.0F, 1.0F);
this.bindEntityTexture(entity); this.bindEntityTexture(entity);
} }
GL46.glScalef(-1.0F, -1.0F, 1.0F); GL46C.glScalef(-1.0F, -1.0F, 1.0F);
this.modelMinecart.render(entity, 0.0F, 0.0F, -0.1F, 0.0F, 0.0F, 0.0625F); this.modelMinecart.render(entity, 0.0F, 0.0F, -0.1F, 0.0F, 0.0F, 0.0625F);
GL46.glPopMatrix(); GL46C.glPopMatrix();
super.doRender(entity, x, y, z, partialTicks); super.doRender(entity, x, y, z, partialTicks);
} }
@ -124,8 +124,8 @@ public class RenderMinecart<T extends EntityCart> extends Render<T>
protected void func_180560_a(T minecart, float partialTicks, State state) protected void func_180560_a(T minecart, float partialTicks, State state)
{ {
GL46.glPushMatrix(); GL46C.glPushMatrix();
Client.CLIENT.renderer.renderBlockEntity(state, new BlockPos(minecart.posX, minecart.posY + (double)minecart.getEyeHeight(), minecart.posZ)); Client.CLIENT.renderer.renderBlockEntity(state, new BlockPos(minecart.posX, minecart.posY + (double)minecart.getEyeHeight(), minecart.posZ));
GL46.glPopMatrix(); GL46C.glPopMatrix();
} }
} }

View file

@ -1,8 +1,7 @@
package client.renderer.entity; package client.renderer.entity;
import org.lwjgl.opengl.GL46; import org.lwjgl.opengl.GL46C;
import client.renderer.layers.LayerSlimeGel;
import client.renderer.model.ModelSlime; import client.renderer.model.ModelSlime;
import common.entity.npc.EntityNPC; import common.entity.npc.EntityNPC;
import common.entity.npc.EntitySlime; import common.entity.npc.EntitySlime;
@ -13,7 +12,7 @@ public class RenderSlime extends RenderNpc
public RenderSlime(RenderManager renderManagerIn) public RenderSlime(RenderManager renderManagerIn)
{ {
super(renderManagerIn, new ModelSlime(16)); super(renderManagerIn, new ModelSlime(16));
this.addLayer(new LayerSlimeGel(this)); // this.addLayer(new LayerSlimeGel(this));
} }
protected void preRenderCallback(EntityNPC entitylivingbaseIn, float partialTickTime) protected void preRenderCallback(EntityNPC entitylivingbaseIn, float partialTickTime)
@ -25,7 +24,7 @@ public class RenderSlime extends RenderNpc
f1 = (slime.prevSquishFactor + (slime.squishFactor - slime.prevSquishFactor) * partialTickTime) / (f * 0.5F + 1.0F); f1 = (slime.prevSquishFactor + (slime.squishFactor - slime.prevSquishFactor) * partialTickTime) / (f * 0.5F + 1.0F);
} }
float f2 = 1.0F / (f1 + 1.0F); float f2 = 1.0F / (f1 + 1.0F);
GL46.glScalef(f2 * f, 1.0F / f2 * f, f2 * f); GL46C.glScalef(f2 * f, 1.0F / f2 * f, f2 * f);
} }
public void doRender(EntityNPC entity, double x, double y, double z, float partialTicks) public void doRender(EntityNPC entity, double x, double y, double z, float partialTicks)

View file

@ -1,6 +1,6 @@
package client.renderer.entity; package client.renderer.entity;
import org.lwjgl.opengl.GL46; import org.lwjgl.opengl.GL46C;
import client.renderer.layers.LayerArrow; import client.renderer.layers.LayerArrow;
import client.renderer.layers.LayerHeldItem; import client.renderer.layers.LayerHeldItem;
@ -83,7 +83,7 @@ public class RenderSpaceMarine extends RenderNpc
protected void preRenderCallback(EntityNPC entitylivingbaseIn, float partialTickTime) protected void preRenderCallback(EntityNPC entitylivingbaseIn, float partialTickTime)
{ {
float f = entitylivingbaseIn.getRenderScale(); // 0.9375F; float f = entitylivingbaseIn.getRenderScale(); // 0.9375F;
GL46.glScalef(f, f, f); GL46C.glScalef(f, f, f);
} }
// public void renderPlayerArm(EntityNPC entity) // public void renderPlayerArm(EntityNPC entity)

View file

@ -1,51 +0,0 @@
package client.renderer.entity;
import org.lwjgl.opengl.GL46;
import client.Client;
import client.renderer.GlState;
import common.entity.item.EntityTntCart;
import common.init.Blocks;
import common.util.ExtMath;
import common.world.State;
public class RenderTntMinecart extends RenderMinecart<EntityTntCart>
{
public RenderTntMinecart(RenderManager renderManagerIn)
{
super(renderManagerIn);
}
protected void func_180560_a(EntityTntCart minecart, float partialTicks, State state)
{
int i = minecart.getFuseTicks();
if (i > -1 && (float)i - partialTicks + 1.0F < 10.0F)
{
float f = 1.0F - ((float)i - partialTicks + 1.0F) / 10.0F;
f = ExtMath.clampf(f, 0.0F, 1.0F);
f = f * f;
f = f * f;
float f1 = 1.0F + f * 0.3F;
GL46.glScalef(f1, f1, f1);
}
super.func_180560_a(minecart, partialTicks, state);
if (i > -1 && i / 5 % 2 == 0)
{
GlState.disableTexture2D();
GlState.disableLighting();
GlState.enableBlend();
GlState.blendFunc(GL46.GL_SRC_ALPHA, GL46.GL_DST_ALPHA);
GlState.color(1.0F, 1.0F, 1.0F, (1.0F - ((float)i - partialTicks + 1.0F) / 100.0F) * 0.8F);
GL46.glPushMatrix();
Client.CLIENT.renderer.renderBlockEntity(Blocks.tnt.getState(), null);
GL46.glPopMatrix();
GlState.color(1.0F, 1.0F, 1.0F, 1.0F);
GlState.disableBlend();
GlState.enableLighting();
GlState.enableTexture2D();
}
}
}

View file

@ -1,6 +1,6 @@
package client.renderer.entity; package client.renderer.entity;
import org.lwjgl.opengl.GL46; import org.lwjgl.opengl.GL46C;
import client.Client; import client.Client;
import client.renderer.GlState; import client.renderer.GlState;
@ -23,8 +23,8 @@ public class RenderTntPrimed extends Render<EntityTnt>
public void doRender(EntityTnt entity, double x, double y, double z, float partialTicks) public void doRender(EntityTnt entity, double x, double y, double z, float partialTicks)
{ {
Renderer renderer = Client.CLIENT.renderer; Renderer renderer = Client.CLIENT.renderer;
GL46.glPushMatrix(); GL46C.glPushMatrix();
GL46.glTranslatef((float)x, (float)y + 0.5F, (float)z); GL46C.glTranslatef((float)x, (float)y + 0.5F, (float)z);
if ((float)entity.fuse - partialTicks + 1.0F < 10.0F) if ((float)entity.fuse - partialTicks + 1.0F < 10.0F)
{ {
@ -33,22 +33,22 @@ public class RenderTntPrimed extends Render<EntityTnt>
f = f * f; f = f * f;
f = f * f; f = f * f;
float f1 = 1.0F + f * 0.3F; float f1 = 1.0F + f * 0.3F;
GL46.glScalef(f1, f1, f1); GL46C.glScalef(f1, f1, f1);
} }
float f2 = (1.0F - ((float)entity.fuse - partialTicks + 1.0F) / 100.0F) * 0.8F; float f2 = (1.0F - ((float)entity.fuse - partialTicks + 1.0F) / 100.0F) * 0.8F;
this.bindEntityTexture(entity); this.bindEntityTexture(entity);
GL46.glTranslatef(-0.5F, -0.5F, 0.5F); GL46C.glTranslatef(-0.5F, -0.5F, 0.5F);
Block tnt = BlockRegistry.byName("tnt" + (entity.explosionSize <= 0 || entity.explosionSize >= 8 ? "" : "_" + entity.explosionSize)); Block tnt = BlockRegistry.byName("tnt" + (entity.explosionSize <= 0 || entity.explosionSize >= 8 ? "" : "_" + entity.explosionSize));
renderer.renderBlockEntity(tnt.getState(), new BlockPos(entity.posX, entity.posY + (double)entity.getEyeHeight(), entity.posZ)); renderer.renderBlockEntity(tnt.getState(), new BlockPos(entity.posX, entity.posY + (double)entity.getEyeHeight(), entity.posZ));
GL46.glTranslatef(0.0F, 0.0F, 1.0F); GL46C.glTranslatef(0.0F, 0.0F, 1.0F);
if (entity.fuse / 5 % 2 == 0) if (entity.fuse / 5 % 2 == 0)
{ {
GlState.disableTexture2D(); GlState.disableTexture2D();
GlState.disableLighting(); GlState.disableLighting();
GlState.enableBlend(); GlState.enableBlend();
GlState.blendFunc(GL46.GL_SRC_ALPHA, GL46.GL_DST_ALPHA); GlState.blendFunc(GL46C.GL_SRC_ALPHA, GL46C.GL_DST_ALPHA);
GlState.color(1.0F, 1.0F, 1.0F, f2); GlState.color(1.0F, 1.0F, 1.0F, f2);
GlState.doPolygonOffset(-3.0F, -3.0F); GlState.doPolygonOffset(-3.0F, -3.0F);
GlState.enablePolygonOffset(); GlState.enablePolygonOffset();
@ -61,7 +61,7 @@ public class RenderTntPrimed extends Render<EntityTnt>
GlState.enableTexture2D(); GlState.enableTexture2D();
} }
GL46.glPopMatrix(); GL46C.glPopMatrix();
super.doRender(entity, x, y, z, partialTicks); super.doRender(entity, x, y, z, partialTicks);
} }

View file

@ -1,6 +1,6 @@
package client.renderer.entity; package client.renderer.entity;
import org.lwjgl.opengl.GL46; import org.lwjgl.opengl.GL46C;
import client.renderer.DefaultVertexFormats; import client.renderer.DefaultVertexFormats;
import client.renderer.GlState; import client.renderer.GlState;
@ -17,8 +17,8 @@ public class RenderXp extends Render<EntityXp> {
} }
public void doRender(EntityXp entity, double x, double y, double z, float partial) { public void doRender(EntityXp entity, double x, double y, double z, float partial) {
GL46.glPushMatrix(); GL46C.glPushMatrix();
GL46.glTranslatef((float)x, (float)y, (float)z); GL46C.glTranslatef((float)x, (float)y, (float)z);
this.bindEntityTexture(entity); this.bindEntityTexture(entity);
int value = entity.getXpValue(); int value = entity.getXpValue();
float u1 = (float)(value % 4 * 16 + 0) / 64.0F; float u1 = (float)(value % 4 * 16 + 0) / 64.0F;
@ -31,19 +31,19 @@ public class RenderXp extends Render<EntityXp> {
int light = RenderManager.getBrightnessForRender(entity); int light = RenderManager.getBrightnessForRender(entity);
int block = light % 65536; int block = light % 65536;
int sky = light / 65536; int sky = light / 65536;
GL46.glMultiTexCoord2f(GL46.GL_TEXTURE1, (float)block / 1.0F, (float)sky / 1.0F); GL46C.glMultiTexCoord2f(GL46C.GL_TEXTURE1, (float)block / 1.0F, (float)sky / 1.0F);
GlState.color(1.0F, 1.0F, 1.0F, 1.0F); GlState.color(1.0F, 1.0F, 1.0F, 1.0F);
float color = ((float)entity.xpColor + partial) / 16.0F; float color = ((float)entity.xpColor + partial) / 16.0F;
int g = (int)((ExtMath.sin(color + 0.0F) + 1.0F) * 0.5F * 255.0F); int g = (int)((ExtMath.sin(color + 0.0F) + 1.0F) * 0.5F * 255.0F);
float n = (int)((ExtMath.sin(color + (float)Math.PI) + 1.0F) * 0.5F * 255.0F); float n = (int)((ExtMath.sin(color + (float)Math.PI) + 1.0F) * 0.5F * 255.0F);
int r = (int)(n * (value / 10.0f)); int r = (int)(n * (value / 10.0f));
int b = (int)(n * ((10 - value) / 10.0f)); int b = (int)(n * ((10 - value) / 10.0f));
GL46.glRotatef(180.0F - this.manager.playerViewY, 0.0F, 1.0F, 0.0F); GL46C.glRotatef(180.0F - this.manager.playerViewY, 0.0F, 1.0F, 0.0F);
GL46.glRotatef(-this.manager.playerViewX, 1.0F, 0.0F, 0.0F); GL46C.glRotatef(-this.manager.playerViewX, 1.0F, 0.0F, 0.0F);
float size = 0.25F; float size = 0.25F;
GL46.glScalef(size, size, size); GL46C.glScalef(size, size, size);
RenderBuffer rb = Tessellator.getBuffer(); RenderBuffer rb = Tessellator.getBuffer();
rb.begin(GL46.GL_QUADS, DefaultVertexFormats.POSITION_TEX_COLOR_NORMAL); rb.begin(GL46C.GL_QUADS, DefaultVertexFormats.POSITION_TEX_COLOR_NORMAL);
rb.pos((double)(0.0F - dx), (double)(0.0F - dy), 0.0D).tex((double)u1, (double)v2).color(r, g, b, 128).normal(0.0F, 1.0F, 0.0F) rb.pos((double)(0.0F - dx), (double)(0.0F - dy), 0.0D).tex((double)u1, (double)v2).color(r, g, b, 128).normal(0.0F, 1.0F, 0.0F)
.endVertex(); .endVertex();
rb.pos((double)(bx - dx), (double)(0.0F - dy), 0.0D).tex((double)u2, (double)v2).color(r, g, b, 128).normal(0.0F, 1.0F, 0.0F) rb.pos((double)(bx - dx), (double)(0.0F - dy), 0.0D).tex((double)u2, (double)v2).color(r, g, b, 128).normal(0.0F, 1.0F, 0.0F)
@ -55,7 +55,7 @@ public class RenderXp extends Render<EntityXp> {
Tessellator.draw(); Tessellator.draw();
GlState.disableBlend(); GlState.disableBlend();
GlState.disableRescaleNormal(); GlState.disableRescaleNormal();
GL46.glPopMatrix(); GL46C.glPopMatrix();
super.doRender(entity, x, y, z, partial); super.doRender(entity, x, y, z, partial);
} }

View file

@ -5,7 +5,7 @@ import java.nio.ByteOrder;
import java.nio.FloatBuffer; import java.nio.FloatBuffer;
import java.util.List; import java.util.List;
import org.lwjgl.opengl.GL46; import org.lwjgl.opengl.GL46C;
import client.renderer.DefaultVertexFormats; import client.renderer.DefaultVertexFormats;
import client.renderer.GlState; import client.renderer.GlState;
@ -86,7 +86,7 @@ public abstract class RendererLivingEntity<T extends EntityLiving> extends Rende
*/ */
public void doRender(T entity, double x, double y, double z, float partialTicks) public void doRender(T entity, double x, double y, double z, float partialTicks)
{ {
GL46.glPushMatrix(); GL46C.glPushMatrix();
GlState.disableCull(); GlState.disableCull();
this.mainModel.swingProgress = this.getSwingProgress(entity, partialTicks); this.mainModel.swingProgress = this.getSwingProgress(entity, partialTicks);
this.mainModel.isRiding = entity.isRiding(); this.mainModel.isRiding = entity.isRiding();
@ -128,10 +128,10 @@ public abstract class RendererLivingEntity<T extends EntityLiving> extends Rende
float f8 = this.handleRotationFloat(entity, partialTicks); float f8 = this.handleRotationFloat(entity, partialTicks);
this.rotateCorpse(entity, f8, f, partialTicks); this.rotateCorpse(entity, f8, f, partialTicks);
GlState.enableRescaleNormal(); GlState.enableRescaleNormal();
GL46.glScalef(-1.0F, -1.0F, 1.0F); GL46C.glScalef(-1.0F, -1.0F, 1.0F);
this.preRenderCallback(entity, partialTicks); this.preRenderCallback(entity, partialTicks);
float f4 = 0.0625F; float f4 = 0.0625F;
GL46.glTranslatef(0.0F, -1.5078125F, 0.0F); GL46C.glTranslatef(0.0F, -1.5078125F, 0.0F);
float f5 = entity.prevLswingAmount + (entity.lswingAmount - entity.prevLswingAmount) * partialTicks; float f5 = entity.prevLswingAmount + (entity.lswingAmount - entity.prevLswingAmount) * partialTicks;
float f6 = entity.limbSwing - entity.lswingAmount * (1.0F - partialTicks); float f6 = entity.limbSwing - entity.lswingAmount * (1.0F - partialTicks);
@ -184,11 +184,11 @@ public abstract class RendererLivingEntity<T extends EntityLiving> extends Rende
Log.RENDER.error((Throwable)exception, (String)"Konnte Objekt nicht rendern"); Log.RENDER.error((Throwable)exception, (String)"Konnte Objekt nicht rendern");
} }
GlState.setActiveTexture(GL46.GL_TEXTURE1); GlState.setActiveTexture(GL46C.GL_TEXTURE1);
GlState.enableTexture2D(); GlState.enableTexture2D();
GlState.setActiveTexture(GL46.GL_TEXTURE0); GlState.setActiveTexture(GL46C.GL_TEXTURE0);
GlState.enableCull(); GlState.enableCull();
GL46.glPopMatrix(); GL46C.glPopMatrix();
if (!this.renderOutlines) if (!this.renderOutlines)
{ {
@ -222,23 +222,23 @@ public abstract class RendererLivingEntity<T extends EntityLiving> extends Rende
float g = (float)(c >> 8 & 255) / 255.0F; float g = (float)(c >> 8 & 255) / 255.0F;
float b = (float)(c & 255) / 255.0F; float b = (float)(c & 255) / 255.0F;
GlState.disableLighting(); GlState.disableLighting();
GlState.setActiveTexture(GL46.GL_TEXTURE0); GlState.setActiveTexture(GL46C.GL_TEXTURE0);
GlState.color(r, g, b, 1.0F); GlState.color(r, g, b, 1.0F);
GlState.disableTexture2D(); GlState.disableTexture2D();
GlState.setActiveTexture(GL46.GL_TEXTURE1); GlState.setActiveTexture(GL46C.GL_TEXTURE1);
GlState.disableTexture2D(); GlState.disableTexture2D();
GlState.setActiveTexture(GL46.GL_TEXTURE0); GlState.setActiveTexture(GL46C.GL_TEXTURE0);
return true; return true;
} }
protected void unsetOutlineColor() protected void unsetOutlineColor()
{ {
GlState.enableLighting(); GlState.enableLighting();
GlState.setActiveTexture(GL46.GL_TEXTURE0); GlState.setActiveTexture(GL46C.GL_TEXTURE0);
GlState.enableTexture2D(); GlState.enableTexture2D();
GlState.setActiveTexture(GL46.GL_TEXTURE1); GlState.setActiveTexture(GL46C.GL_TEXTURE1);
GlState.enableTexture2D(); GlState.enableTexture2D();
GlState.setActiveTexture(GL46.GL_TEXTURE0); GlState.setActiveTexture(GL46C.GL_TEXTURE0);
} }
protected void renderModel(T entity, float x, float y, float z, float yaw, float pitch, float scale) protected void renderModel(T entity, float x, float y, float z, float yaw, float pitch, float scale)
@ -255,13 +255,13 @@ public abstract class RendererLivingEntity<T extends EntityLiving> extends Rende
if (ghost) if (ghost)
{ {
GL46.glPushMatrix(); GL46C.glPushMatrix();
GlState.color(1.0F, 1.0F, 1.0F, 0.3F); GlState.color(1.0F, 1.0F, 1.0F, 0.3F);
// GlState.color(entity.getRenderColor() | (vis ? 0x50000000 : 0x26000000)); // GlState.color(entity.getRenderColor() | (vis ? 0x50000000 : 0x26000000));
GlState.depthMask(false); GlState.depthMask(false);
GlState.enableBlend(); GlState.enableBlend();
GlState.blendFunc(GL46.GL_SRC_ALPHA, GL46.GL_ONE_MINUS_SRC_ALPHA); GlState.blendFunc(GL46C.GL_SRC_ALPHA, GL46C.GL_ONE_MINUS_SRC_ALPHA);
GlState.alphaFunc(GL46.GL_GREATER, 0.003921569F); GlState.alphaFunc(GL46C.GL_GREATER, 0.003921569F);
} }
if(entity.isGlowing()) if(entity.isGlowing())
@ -274,8 +274,8 @@ public abstract class RendererLivingEntity<T extends EntityLiving> extends Rende
if (ghost) if (ghost)
{ {
GlState.disableBlend(); GlState.disableBlend();
GlState.alphaFunc(GL46.GL_GREATER, 0.1F); GlState.alphaFunc(GL46C.GL_GREATER, 0.1F);
GL46.glPopMatrix(); GL46C.glPopMatrix();
GlState.depthMask(true); GlState.depthMask(true);
} }
// } // }
@ -414,12 +414,12 @@ public abstract class RendererLivingEntity<T extends EntityLiving> extends Rende
*/ */
protected void renderLivingAt(T entityLivingBaseIn, double x, double y, double z) protected void renderLivingAt(T entityLivingBaseIn, double x, double y, double z)
{ {
GL46.glTranslatef((float)x, (float)y, (float)z); GL46C.glTranslatef((float)x, (float)y, (float)z);
} }
protected void rotateCorpse(T bat, float p_77043_2_, float p_77043_3_, float partialTicks) protected void rotateCorpse(T bat, float p_77043_2_, float p_77043_3_, float partialTicks)
{ {
GL46.glRotatef(180.0F - p_77043_3_, 0.0F, 1.0F, 0.0F); GL46C.glRotatef(180.0F - p_77043_3_, 0.0F, 1.0F, 0.0F);
if (bat.deathTime > 0) if (bat.deathTime > 0)
{ {
@ -431,7 +431,7 @@ public abstract class RendererLivingEntity<T extends EntityLiving> extends Rende
f = 1.0F; f = 1.0F;
} }
GL46.glRotatef(f * this.getDeathMaxRotation(bat), 0.0F, 0.0F, 1.0F); GL46C.glRotatef(f * this.getDeathMaxRotation(bat), 0.0F, 0.0F, 1.0F);
} }
else else
{ {
@ -439,8 +439,8 @@ public abstract class RendererLivingEntity<T extends EntityLiving> extends Rende
if (s != null && (s.startsWith("Australia") || s.startsWith("Australien"))) // && (!(bat.isPlayer()) || ((EntityNPC)bat).isWearing(ModelPart.CAPE))) if (s != null && (s.startsWith("Australia") || s.startsWith("Australien"))) // && (!(bat.isPlayer()) || ((EntityNPC)bat).isWearing(ModelPart.CAPE)))
{ {
GL46.glTranslatef(0.0F, bat.height + 0.1F, 0.0F); GL46C.glTranslatef(0.0F, bat.height + 0.1F, 0.0F);
GL46.glRotatef(180.0F, 0.0F, 0.0F, 1.0F); GL46C.glRotatef(180.0F, 0.0F, 0.0F, 1.0F);
} }
} }
} }
@ -515,47 +515,6 @@ public abstract class RendererLivingEntity<T extends EntityLiving> extends Rende
{ {
this.renderOutlines = renderOutlinesIn; this.renderOutlines = renderOutlinesIn;
} }
protected void drawRechargeRay(Entity entity, EntityCrystal crystal, double p_180574_2_, double p_180574_4_, double p_180574_6_, float p_180574_8_)
{
float f = (float)crystal.innerRotation + p_180574_8_;
float f1 = ExtMath.sin(f * 0.2F) / 2.0F + 0.5F;
f1 = (f1 * f1 + f1) * 0.2F;
float f2 = (float)(crystal.posX - entity.posX - (entity.prevX - entity.posX) * (double)(1.0F - p_180574_8_));
float f3 = (float)((double)f1 + crystal.posY - 1.0D - entity.posY - (entity.prevY - entity.posY) * (double)(1.0F - p_180574_8_));
float f4 = (float)(crystal.posZ - entity.posZ - (entity.prevZ - entity.posZ) * (double)(1.0F - p_180574_8_));
float f5 = ExtMath.sqrtf(f2 * f2 + f4 * f4);
float f6 = ExtMath.sqrtf(f2 * f2 + f3 * f3 + f4 * f4);
GL46.glPushMatrix();
GL46.glTranslatef((float)p_180574_2_, (float)p_180574_4_ + 2.0F, (float)p_180574_6_);
GL46.glRotatef((float)(-Math.atan2((double)f4, (double)f2)) * 180.0F / (float)Math.PI - 90.0F, 0.0F, 1.0F, 0.0F);
GL46.glRotatef((float)(-Math.atan2((double)f5, (double)f3)) * 180.0F / (float)Math.PI - 90.0F, 1.0F, 0.0F, 0.0F);
// Tessellator tessellator = Tessellator.getInstance();
RenderBuffer worldrenderer = Tessellator.getBuffer();
ItemRenderer.disableStandardItemLighting();
GlState.disableCull();
this.bindTexture(crystalBeamTextures);
GlState.shadeModel(GL46.GL_SMOOTH);
float f7 = 0.0F - ((float)entity.ticksExisted + p_180574_8_) * 0.01F;
float f8 = ExtMath.sqrtf(f2 * f2 + f3 * f3 + f4 * f4) / 32.0F - ((float)entity.ticksExisted + p_180574_8_) * 0.01F;
worldrenderer.begin(GL46.GL_TRIANGLE_STRIP, DefaultVertexFormats.POSITION_TEX_COLOR);
int i = 8;
for (int j = 0; j <= 8; ++j)
{
float f9 = ExtMath.sin((float)(j % 8) * (float)Math.PI * 2.0F / 8.0F) * 0.75F;
float f10 = ExtMath.cos((float)(j % 8) * (float)Math.PI * 2.0F / 8.0F) * 0.75F;
float f11 = (float)(j % 8) * 1.0F / 8.0F;
worldrenderer.pos((double)(f9 * 0.2F), (double)(f10 * 0.2F), 0.0D).tex((double)f11, (double)f8).color(0, 0, 0, 255).endVertex();
worldrenderer.pos((double)f9, (double)f10, (double)f6).tex((double)f11, (double)f7).color(255, 255, 255, 255).endVertex();
}
Tessellator.draw();
GlState.enableCull();
GlState.shadeModel(GL46.GL_FLAT);
ItemRenderer.enableStandardItemLighting();
GL46.glPopMatrix();
}
static static
{ {

View file

@ -2,7 +2,7 @@ package client.renderer.layers;
import java.util.List; import java.util.List;
import org.lwjgl.opengl.GL46; import org.lwjgl.opengl.GL46C;
import client.Client; import client.Client;
import client.renderer.GlState; import client.renderer.GlState;
@ -19,7 +19,6 @@ import common.util.Equipment;
public class LayerArmor implements LayerRenderer<EntityNPC> public class LayerArmor implements LayerRenderer<EntityNPC>
{ {
protected static final String ENCHANTED_ITEM_GLINT_RES = "textures/glint.png";
private static final Equipment[] SLOTS; private static final Equipment[] SLOTS;
static { static {
@ -93,8 +92,6 @@ public class LayerArmor implements LayerRenderer<EntityNPC>
} }
GlState.color(this.colorR, this.colorG, this.colorB, this.alpha); GlState.color(this.colorR, this.colorG, this.colorB, this.alpha);
t.render(entitylivingbaseIn, limbSwing, limbSwingAmount, yaw, pitch, factor, scale); t.render(entitylivingbaseIn, limbSwing, limbSwingAmount, yaw, pitch, factor, scale);
if (itemstack.isItemEnchanted())
this.renderGlint(entitylivingbaseIn, t, limbSwing, limbSwingAmount, partial, yaw, pitch, factor, scale);
} }
} }
@ -113,44 +110,6 @@ public class LayerArmor implements LayerRenderer<EntityNPC>
return armorSlot == Equipment.LEGGINGS; return armorSlot == Equipment.LEGGINGS;
} }
private void renderGlint(EntityLiving entitylivingbaseIn, ModelArmor modelbaseIn, float p_177183_3_, float p_177183_4_, float partialTicks, float p_177183_6_, float p_177183_7_, float p_177183_8_, float scale)
{
float f = entitylivingbaseIn == null ? (float)(System.currentTimeMillis() % 1000000L) / 50.0f : (float)entitylivingbaseIn.ticksExisted + partialTicks;
if(this.renderer != null)
this.renderer.bindTexture(ENCHANTED_ITEM_GLINT_RES);
else
Client.CLIENT.getTextureManager().bindTexture(ENCHANTED_ITEM_GLINT_RES);
GlState.enableBlend();
GlState.depthFunc(GL46.GL_EQUAL);
GlState.depthMask(false);
float f1 = 0.5F;
GlState.color(f1, f1, f1, 1.0F);
for (int i = 0; i < 2; ++i)
{
GlState.disableLighting();
GlState.blendFunc(GL46.GL_SRC_COLOR, GL46.GL_ONE);
float f2 = 0.76F;
GlState.color(0.5F * f2, 0.25F * f2, 0.8F * f2, 1.0F);
GL46.glMatrixMode(GL46.GL_TEXTURE);
GL46.glLoadIdentity();
float f3 = 0.33333334F;
GL46.glScalef(f3, f3, f3);
GL46.glRotatef(30.0F - (float)i * 60.0F, 0.0F, 0.0F, 1.0F);
GL46.glTranslatef(0.0F, f * (0.001F + (float)i * 0.003F) * 20.0F, 0.0F);
GL46.glMatrixMode(GL46.GL_MODELVIEW);
modelbaseIn.render(entitylivingbaseIn, p_177183_3_, p_177183_4_, p_177183_6_, p_177183_7_, p_177183_8_, scale);
}
GL46.glMatrixMode(GL46.GL_TEXTURE);
GL46.glLoadIdentity();
GL46.glMatrixMode(GL46.GL_MODELVIEW);
GlState.enableLighting();
GlState.depthMask(true);
GlState.depthFunc(GL46.GL_LEQUAL);
GlState.disableBlend();
}
// private String getArmorResource(ItemArmor item, boolean legs) // private String getArmorResource(ItemArmor item, boolean legs)
// { // {
// return this.getArmorResource(item, legs, null); // return this.getArmorResource(item, legs, null);

View file

@ -1,6 +1,6 @@
package client.renderer.layers; package client.renderer.layers;
import org.lwjgl.opengl.GL46; import org.lwjgl.opengl.GL46C;
import client.renderer.ItemRenderer; import client.renderer.ItemRenderer;
import client.renderer.entity.RendererLivingEntity; import client.renderer.entity.RendererLivingEntity;
@ -33,7 +33,7 @@ public class LayerArrow implements LayerRenderer<EntityLiving>
for (int j = 0; j < i; ++j) for (int j = 0; j < i; ++j)
{ {
GL46.glPushMatrix(); GL46C.glPushMatrix();
ModelRenderer modelrenderer = this.field_177168_a.getMainModel().getRandomModelBox(random); ModelRenderer modelrenderer = this.field_177168_a.getMainModel().getRandomModelBox(random);
ModelBox modelbox = (ModelBox)modelrenderer.cubeList.get(random.zrange(modelrenderer.cubeList.size())); ModelBox modelbox = (ModelBox)modelrenderer.cubeList.get(random.zrange(modelrenderer.cubeList.size()));
modelrenderer.postRender(0.0625F); modelrenderer.postRender(0.0625F);
@ -43,7 +43,7 @@ public class LayerArrow implements LayerRenderer<EntityLiving>
float f3 = (modelbox.posX1 + (modelbox.posX2 - modelbox.posX1) * f) / 16.0F; float f3 = (modelbox.posX1 + (modelbox.posX2 - modelbox.posX1) * f) / 16.0F;
float f4 = (modelbox.posY1 + (modelbox.posY2 - modelbox.posY1) * f1) / 16.0F; float f4 = (modelbox.posY1 + (modelbox.posY2 - modelbox.posY1) * f1) / 16.0F;
float f5 = (modelbox.posZ1 + (modelbox.posZ2 - modelbox.posZ1) * f2) / 16.0F; float f5 = (modelbox.posZ1 + (modelbox.posZ2 - modelbox.posZ1) * f2) / 16.0F;
GL46.glTranslatef(f3, f4, f5); GL46C.glTranslatef(f3, f4, f5);
f = f * 2.0F - 1.0F; f = f * 2.0F - 1.0F;
f1 = f1 * 2.0F - 1.0F; f1 = f1 * 2.0F - 1.0F;
f2 = f2 * 2.0F - 1.0F; f2 = f2 * 2.0F - 1.0F;
@ -57,7 +57,7 @@ public class LayerArrow implements LayerRenderer<EntityLiving>
double d1 = 0.0D; double d1 = 0.0D;
double d2 = 0.0D; double d2 = 0.0D;
this.field_177168_a.getRenderManager().renderEntity(entity, d0, d1, d2, partialTicks); this.field_177168_a.getRenderManager().renderEntity(entity, d0, d1, d2, partialTicks);
GL46.glPopMatrix(); GL46C.glPopMatrix();
} }
ItemRenderer.enableStandardItemLighting(); ItemRenderer.enableStandardItemLighting();

View file

@ -1,6 +1,6 @@
package client.renderer.layers; package client.renderer.layers;
import org.lwjgl.opengl.GL46; import org.lwjgl.opengl.GL46C;
import client.renderer.GlState; import client.renderer.GlState;
import client.renderer.entity.RenderHumanoid; import client.renderer.entity.RenderHumanoid;
@ -31,8 +31,8 @@ public class LayerCape implements LayerRenderer<EntityNPC>
entitylivingbaseIn.getCape() != null) { entitylivingbaseIn.getCape() != null) {
GlState.color(1.0F, 1.0F, 1.0F, 1.0F); GlState.color(1.0F, 1.0F, 1.0F, 1.0F);
this.renderer.bindTexture("textures/npc/cape_" + entitylivingbaseIn.getCape() + ".png"); this.renderer.bindTexture("textures/npc/cape_" + entitylivingbaseIn.getCape() + ".png");
GL46.glPushMatrix(); GL46C.glPushMatrix();
GL46.glTranslatef(0.0F, 0.0F, 0.125F); GL46C.glTranslatef(0.0F, 0.0F, 0.125F);
if(entitylivingbaseIn.isPlayer()) { if(entitylivingbaseIn.isPlayer()) {
EntityNPC player = (EntityNPC)entitylivingbaseIn; EntityNPC player = (EntityNPC)entitylivingbaseIn;
double d0 = player.prevChasingPosX + (player.chasingPosX - player.prevChasingPosX) * (double)partialTicks - (entitylivingbaseIn.prevX + (entitylivingbaseIn.posX - entitylivingbaseIn.prevX) * (double)partialTicks); double d0 = player.prevChasingPosX + (player.chasingPosX - player.prevChasingPosX) * (double)partialTicks - (entitylivingbaseIn.prevX + (entitylivingbaseIn.posX - entitylivingbaseIn.prevX) * (double)partialTicks);
@ -59,17 +59,17 @@ public class LayerCape implements LayerRenderer<EntityNPC>
f1 += 25.0F; f1 += 25.0F;
} }
GL46.glRotatef(6.0F + f2 / 2.0F + f1, 1.0F, 0.0F, 0.0F); GL46C.glRotatef(6.0F + f2 / 2.0F + f1, 1.0F, 0.0F, 0.0F);
GL46.glRotatef(f3 / 2.0F, 0.0F, 0.0F, 1.0F); GL46C.glRotatef(f3 / 2.0F, 0.0F, 0.0F, 1.0F);
GL46.glRotatef(-f3 / 2.0F, 0.0F, 1.0F, 0.0F); GL46C.glRotatef(-f3 / 2.0F, 0.0F, 1.0F, 0.0F);
} }
else { else {
GL46.glRotatef(entitylivingbaseIn.isSneakingVisually() ? 25.0F : 5.0F, 1.0F, 0.0F, 0.0F); GL46C.glRotatef(entitylivingbaseIn.isSneakingVisually() ? 25.0F : 5.0F, 1.0F, 0.0F, 0.0F);
} }
GL46.glRotatef(180.0F, 0.0F, 1.0F, 0.0F); GL46C.glRotatef(180.0F, 0.0F, 1.0F, 0.0F);
this.bipedCape.rotationPointY = this.shift + (entitylivingbaseIn.isSneakingVisually() ? 2.0f : 0.0f); this.bipedCape.rotationPointY = this.shift + (entitylivingbaseIn.isSneakingVisually() ? 2.0f : 0.0f);
this.bipedCape.render(0.0625F); this.bipedCape.render(0.0625F);
GL46.glPopMatrix(); GL46C.glPopMatrix();
} }
} }

View file

@ -1,6 +1,6 @@
package client.renderer.layers; package client.renderer.layers;
import org.lwjgl.opengl.GL46; import org.lwjgl.opengl.GL46C;
import client.renderer.GlState; import client.renderer.GlState;
import client.renderer.entity.RenderHumanoid; import client.renderer.entity.RenderHumanoid;
@ -27,23 +27,23 @@ public class LayerCharge implements LayerRenderer<EntityNPC>
// boolean flag = entitylivingbaseIn.isInvisible(); // boolean flag = entitylivingbaseIn.isInvisible();
GlState.depthMask(true); GlState.depthMask(true);
this.main.bindTexture(LIGHTNING_TEXTURE); this.main.bindTexture(LIGHTNING_TEXTURE);
GL46.glMatrixMode(GL46.GL_TEXTURE); GL46C.glMatrixMode(GL46C.GL_TEXTURE);
GL46.glLoadIdentity(); GL46C.glLoadIdentity();
float f = (float)entitylivingbaseIn.ticksExisted + partialTicks; float f = (float)entitylivingbaseIn.ticksExisted + partialTicks;
GL46.glTranslatef(f * 0.01F, f * 0.01F, 0.0F); GL46C.glTranslatef(f * 0.01F, f * 0.01F, 0.0F);
GL46.glMatrixMode(GL46.GL_MODELVIEW); GL46C.glMatrixMode(GL46C.GL_MODELVIEW);
GlState.enableBlend(); GlState.enableBlend();
float f1 = 0.5F; float f1 = 0.5F;
GlState.color(f1, f1, f1, 1.0F); GlState.color(f1, f1, f1, 1.0F);
GlState.disableLighting(); GlState.disableLighting();
GlState.blendFunc(GL46.GL_ONE, GL46.GL_ONE); GlState.blendFunc(GL46C.GL_ONE, GL46C.GL_ONE);
this.charge.setModelAttributes(this.main.getMainModel()); this.charge.setModelAttributes(this.main.getMainModel());
GL46.glScalef(entitylivingbaseIn.height, entitylivingbaseIn.height, entitylivingbaseIn.height); GL46C.glScalef(entitylivingbaseIn.height, entitylivingbaseIn.height, entitylivingbaseIn.height);
GL46.glTranslatef(0.0f, -0.25f, 0.0f); GL46C.glTranslatef(0.0f, -0.25f, 0.0f);
this.charge.render(entitylivingbaseIn, p_177141_2_, p_177141_3_, p_177141_5_, p_177141_6_, p_177141_7_, scale); this.charge.render(entitylivingbaseIn, p_177141_2_, p_177141_3_, p_177141_5_, p_177141_6_, p_177141_7_, scale);
GL46.glMatrixMode(GL46.GL_TEXTURE); GL46C.glMatrixMode(GL46C.GL_TEXTURE);
GL46.glLoadIdentity(); GL46C.glLoadIdentity();
GL46.glMatrixMode(GL46.GL_MODELVIEW); GL46C.glMatrixMode(GL46C.GL_MODELVIEW);
GlState.enableLighting(); GlState.enableLighting();
GlState.disableBlend(); GlState.disableBlend();
GlState.depthMask(false); GlState.depthMask(false);

View file

@ -1,76 +0,0 @@
package client.renderer.layers;
import org.lwjgl.opengl.GL46;
import client.renderer.DefaultVertexFormats;
import client.renderer.GlState;
import client.renderer.ItemRenderer;
import client.renderer.RenderBuffer;
import client.renderer.Tessellator;
import common.entity.animal.EntityDragon;
import common.rng.Random;
public class LayerEntityBreak implements LayerRenderer<EntityDragon>
{
public void doRenderLayer(EntityDragon entitylivingbaseIn, float p_177141_2_, float p_177141_3_, float partialTicks, float p_177141_5_, float p_177141_6_, float p_177141_7_, float scale)
{
if (entitylivingbaseIn.deathTime > 0)
{
// Tessellator tessellator = Tessellator.getInstance();
RenderBuffer worldrenderer = Tessellator.getBuffer();
ItemRenderer.disableStandardItemLighting();
float f = ((float)entitylivingbaseIn.deathTime + partialTicks) / 200.0F;
float f1 = 0.0F;
if (f > 0.8F)
{
f1 = (f - 0.8F) / 0.2F;
}
Random random = new Random(432L);
GlState.disableTexture2D();
GlState.shadeModel(GL46.GL_SMOOTH);
GlState.enableBlend();
GlState.blendFunc(GL46.GL_SRC_ALPHA, GL46.GL_ONE);
GlState.disableAlpha();
GlState.enableCull();
GlState.depthMask(false);
GL46.glPushMatrix();
GL46.glTranslatef(0.0F, -1.0F, -2.0F);
for (int i = 0; (float)i < (f + f * f) / 2.0F * 60.0F; ++i)
{
GL46.glRotatef(random.floatv() * 360.0F, 1.0F, 0.0F, 0.0F);
GL46.glRotatef(random.floatv() * 360.0F, 0.0F, 1.0F, 0.0F);
GL46.glRotatef(random.floatv() * 360.0F, 0.0F, 0.0F, 1.0F);
GL46.glRotatef(random.floatv() * 360.0F, 1.0F, 0.0F, 0.0F);
GL46.glRotatef(random.floatv() * 360.0F, 0.0F, 1.0F, 0.0F);
GL46.glRotatef(random.floatv() * 360.0F + f * 90.0F, 0.0F, 0.0F, 1.0F);
float f2 = random.floatv() * 20.0F + 5.0F + f1 * 10.0F;
float f3 = random.floatv() * 2.0F + 1.0F + f1 * 2.0F;
worldrenderer.begin(GL46.GL_TRIANGLE_FAN, DefaultVertexFormats.POSITION_COLOR);
worldrenderer.pos(0.0D, 0.0D, 0.0D).color(255, 255, 255, (int)(255.0F * (1.0F - f1))).endVertex();
worldrenderer.pos(-0.866D * (double)f3, (double)f2, (double)(-0.5F * f3)).color(255, 0, 255, 0).endVertex();
worldrenderer.pos(0.866D * (double)f3, (double)f2, (double)(-0.5F * f3)).color(255, 0, 255, 0).endVertex();
worldrenderer.pos(0.0D, (double)f2, (double)(1.0F * f3)).color(255, 0, 255, 0).endVertex();
worldrenderer.pos(-0.866D * (double)f3, (double)f2, (double)(-0.5F * f3)).color(255, 0, 255, 0).endVertex();
Tessellator.draw();
}
GL46.glPopMatrix();
GlState.depthMask(true);
GlState.disableCull();
GlState.disableBlend();
GlState.shadeModel(GL46.GL_FLAT);
GlState.color(1.0F, 1.0F, 1.0F, 1.0F);
GlState.enableTexture2D();
GlState.enableAlpha();
ItemRenderer.enableStandardItemLighting();
}
}
public boolean shouldCombineTextures()
{
return false;
}
}

View file

@ -2,7 +2,7 @@ package client.renderer.layers;
import java.util.List; import java.util.List;
import org.lwjgl.opengl.GL46; import org.lwjgl.opengl.GL46C;
import client.Client; import client.Client;
import client.renderer.GlState; import client.renderer.GlState;
@ -62,11 +62,11 @@ public class LayerExtra implements LayerRenderer<EntityNPC>
// { // {
GlState.color(1.0F, 1.0F, 1.0F, 1.0F); GlState.color(1.0F, 1.0F, 1.0F, 1.0F);
Client.CLIENT.getTextureManager().bindTexture(EntityTexManager.getSkin(entity)); Client.CLIENT.getTextureManager().bindTexture(EntityTexManager.getSkin(entity));
GL46.glPushMatrix(); GL46C.glPushMatrix();
if (entity.isSneakingVisually()) if (entity.isSneakingVisually())
{ {
GL46.glTranslatef(0.0F, 0.2F, 0.0F); GL46C.glTranslatef(0.0F, 0.2F, 0.0F);
} }
// if (entity.isChild()) // if (entity.isChild())
@ -77,20 +77,20 @@ public class LayerExtra implements LayerRenderer<EntityNPC>
// SKC.glTranslatef(0.0F, 24.0F * scale, 0.0F); // SKC.glTranslatef(0.0F, 24.0F * scale, 0.0F);
// } // }
GL46.glPushMatrix(); GL46C.glPushMatrix();
this.model.bipedBody.postRender(0.0625F); this.model.bipedBody.postRender(0.0625F);
for(ModelRenderer model : this.wing) { for(ModelRenderer model : this.wing) {
if(entity.hasDualWings()) { if(entity.hasDualWings()) {
GL46.glPushMatrix(); GL46C.glPushMatrix();
GL46.glRotatef(model.rotateAngleY < 0.0f ? -10.0f : 10.0f, 0.0f, 1.0f, 0.0f); GL46C.glRotatef(model.rotateAngleY < 0.0f ? -10.0f : 10.0f, 0.0f, 1.0f, 0.0f);
GL46.glTranslatef(0.0f, 0.125f, -0.0625f); GL46C.glTranslatef(0.0f, 0.125f, -0.0625f);
model.render(0.0625F); model.render(0.0625F);
GL46.glPopMatrix(); GL46C.glPopMatrix();
GL46.glPushMatrix(); GL46C.glPushMatrix();
GL46.glRotatef(model.rotateAngleY < 0.0f ? 10.0f : -10.0f, 0.0f, 1.0f, 0.0f); GL46C.glRotatef(model.rotateAngleY < 0.0f ? 10.0f : -10.0f, 0.0f, 1.0f, 0.0f);
GL46.glTranslatef(model.rotateAngleY < 0.0f ? 0.0625f : -0.0625f, -0.125f, 0.0f); GL46C.glTranslatef(model.rotateAngleY < 0.0f ? 0.0625f : -0.0625f, -0.125f, 0.0f);
model.render(0.0625F); model.render(0.0625F);
GL46.glPopMatrix(); GL46C.glPopMatrix();
} }
else { else {
model.render(0.0625F); model.render(0.0625F);
@ -99,35 +99,35 @@ public class LayerExtra implements LayerRenderer<EntityNPC>
for(ModelRenderer model : this.body) { for(ModelRenderer model : this.body) {
model.render(0.0625F); model.render(0.0625F);
} }
GL46.glPopMatrix(); GL46C.glPopMatrix();
GL46.glPushMatrix(); GL46C.glPushMatrix();
this.model.bipedLeftArm.postRender(0.0625F); this.model.bipedLeftArm.postRender(0.0625F);
this.model.slimLeftArm.postRender(0.0625F, -1.0f, 0.0f, 0.0f); this.model.slimLeftArm.postRender(0.0625F, -1.0f, 0.0f, 0.0f);
for(ModelRenderer model : this.larm) { for(ModelRenderer model : this.larm) {
model.render(0.0625F); model.render(0.0625F);
} }
GL46.glPopMatrix(); GL46C.glPopMatrix();
GL46.glPushMatrix(); GL46C.glPushMatrix();
this.model.bipedRightArm.postRender(0.0625F); this.model.bipedRightArm.postRender(0.0625F);
this.model.slimRightArm.postRender(0.0625F, 1.0f, 0.0f, 0.0f); this.model.slimRightArm.postRender(0.0625F, 1.0f, 0.0f, 0.0f);
for(ModelRenderer model : this.rarm) { for(ModelRenderer model : this.rarm) {
model.render(0.0625F); model.render(0.0625F);
} }
GL46.glPopMatrix(); GL46C.glPopMatrix();
GL46.glPushMatrix(); GL46C.glPushMatrix();
this.model.bipedHead.postRender(0.0625F); this.model.bipedHead.postRender(0.0625F);
for(ModelRenderer model : this.head) { for(ModelRenderer model : this.head) {
model.render(0.0625F); model.render(0.0625F);
} }
for(ModelRenderer model : this.halo) { for(ModelRenderer model : this.halo) {
GL46.glPushMatrix(); GL46C.glPushMatrix();
GL46.glRotatef((float)(entity.ticksExisted % (360 * 4)) * 0.25f, 0.0f, 1.0f, 0.0f); GL46C.glRotatef((float)(entity.ticksExisted % (360 * 4)) * 0.25f, 0.0f, 1.0f, 0.0f);
model.render(0.0625F); model.render(0.0625F);
GL46.glPopMatrix(); GL46C.glPopMatrix();
} }
GL46.glPopMatrix(); GL46C.glPopMatrix();
GL46.glPopMatrix(); GL46C.glPopMatrix();
// } // }
} }

View file

@ -1,6 +1,6 @@
package client.renderer.layers; package client.renderer.layers;
import org.lwjgl.opengl.GL46; import org.lwjgl.opengl.GL46C;
import client.Client; import client.Client;
import client.renderer.entity.RendererLivingEntity; import client.renderer.entity.RendererLivingEntity;
@ -29,7 +29,7 @@ public class LayerHeldItem implements LayerRenderer<EntityNPC>
if (itemstack != null && itemstack.getItem().getWieldType() != null) if (itemstack != null && itemstack.getItem().getWieldType() != null)
{ {
GL46.glPushMatrix(); GL46C.glPushMatrix();
// if (this.livingEntityRenderer.getMainModel().isChild) // if (this.livingEntityRenderer.getMainModel().isChild)
// { // {
@ -42,7 +42,7 @@ public class LayerHeldItem implements LayerRenderer<EntityNPC>
// } // }
((ModelBiped)this.livingEntityRenderer.getMainModel()).postRenderArm(0.0625F); ((ModelBiped)this.livingEntityRenderer.getMainModel()).postRenderArm(0.0625F);
GL46.glTranslatef(this.xshift, this.yshift, 0.0625F); GL46C.glTranslatef(this.xshift, this.yshift, 0.0625F);
if (entitylivingbaseIn.isPlayer() && ((EntityNPC)entitylivingbaseIn).fishEntity != null) if (entitylivingbaseIn.isPlayer() && ((EntityNPC)entitylivingbaseIn).fishEntity != null)
{ {
@ -54,11 +54,11 @@ public class LayerHeldItem implements LayerRenderer<EntityNPC>
if (entitylivingbaseIn.isSneakingVisually()) if (entitylivingbaseIn.isSneakingVisually())
{ {
GL46.glTranslatef(0.0F, 0.203125F, 0.0F); GL46C.glTranslatef(0.0F, 0.203125F, 0.0F);
} }
gm.getItemRenderer().renderItem(entitylivingbaseIn, itemstack, true); gm.getItemRenderer().renderItem(entitylivingbaseIn, itemstack, true);
GL46.glPopMatrix(); GL46C.glPopMatrix();
} }
} }

View file

@ -1,40 +0,0 @@
package client.renderer.layers;
import org.lwjgl.opengl.GL46;
import client.renderer.GlState;
import client.renderer.entity.RenderSlime;
import client.renderer.model.ModelBase;
import client.renderer.model.ModelSlime;
import common.entity.npc.EntityNPC;
public class LayerSlimeGel implements LayerRenderer<EntityNPC>
{
private final RenderSlime slimeRenderer;
private final ModelBase slimeModel = new ModelSlime(0);
public LayerSlimeGel(RenderSlime slimeRendererIn)
{
this.slimeRenderer = slimeRendererIn;
}
public void doRenderLayer(EntityNPC entitylivingbaseIn, float p_177141_2_, float p_177141_3_, float partialTicks, float p_177141_5_, float p_177141_6_, float p_177141_7_, float scale)
{
// if (!entitylivingbaseIn.isInvisible())
// {
GlState.color(1.0F, 1.0F, 1.0F, 1.0F);
GlState.enableNormalize();
GlState.enableBlend();
GlState.blendFunc(GL46.GL_SRC_ALPHA, GL46.GL_ONE_MINUS_SRC_ALPHA);
this.slimeModel.setModelAttributes(this.slimeRenderer.getMainModel());
this.slimeModel.render(entitylivingbaseIn, p_177141_2_, p_177141_3_, p_177141_5_, p_177141_6_, p_177141_7_, scale);
GlState.disableBlend();
GlState.disableNormalize();
// }
}
public boolean shouldCombineTextures()
{
return true;
}
}

View file

@ -1,6 +1,6 @@
package client.renderer.model; package client.renderer.model;
import org.lwjgl.opengl.GL46; import org.lwjgl.opengl.GL46C;
import common.entity.Entity; import common.entity.Entity;
import common.util.ExtMath; import common.util.ExtMath;
@ -96,14 +96,14 @@ public class ModelArachnoid extends ModelHumanoid
{ {
this.isSneak = false; this.isSneak = false;
// this.setVisible(true); // this.setVisible(true);
GL46.glPushMatrix(); GL46C.glPushMatrix();
GL46.glTranslatef(0.0f, 3.0f / 16.0f, 0.0f); GL46C.glTranslatef(0.0f, 3.0f / 16.0f, 0.0f);
super.render(entityIn, p_78088_2_, p_78088_3_, p_78088_4_, p_78088_5_, p_78088_6_, scale); super.render(entityIn, p_78088_2_, p_78088_3_, p_78088_4_, p_78088_5_, p_78088_6_, scale);
GL46.glPopMatrix(); GL46C.glPopMatrix();
// this.setRotationAngles(p_78088_2_, p_78088_3_, p_78088_4_, p_78088_5_, p_78088_6_, scale, entityIn); // this.setRotationAngles(p_78088_2_, p_78088_3_, p_78088_4_, p_78088_5_, p_78088_6_, scale, entityIn);
// this.spiderHead.render(scale); // this.spiderHead.render(scale);
// this.spiderNeck.render(scale); // this.spiderNeck.render(scale);
GL46.glPushMatrix(); GL46C.glPushMatrix();
// if (this.isChild) // if (this.isChild)
// { // {
// float f = 2.0F; // float f = 2.0F;
@ -123,7 +123,7 @@ public class ModelArachnoid extends ModelHumanoid
this.spiderLeg6.render(scale); this.spiderLeg6.render(scale);
this.spiderLeg7.render(scale); this.spiderLeg7.render(scale);
this.spiderLeg8.render(scale); this.spiderLeg8.render(scale);
GL46.glPopMatrix(); GL46C.glPopMatrix();
} }
/** /**

View file

@ -1,6 +1,6 @@
package client.renderer.model; package client.renderer.model;
import org.lwjgl.opengl.GL46; import org.lwjgl.opengl.GL46C;
import common.entity.Entity; import common.entity.Entity;
import common.entity.types.EntityLiving; import common.entity.types.EntityLiving;
@ -61,7 +61,7 @@ public abstract class ModelBiped extends ModelBase
public void render(Entity entityIn, float p_78088_2_, float p_78088_3_, float p_78088_4_, float p_78088_5_, float p_78088_6_, float scale) public void render(Entity entityIn, float p_78088_2_, float p_78088_3_, float p_78088_4_, float p_78088_5_, float p_78088_6_, float scale)
{ {
this.setRotationAngles(p_78088_2_, p_78088_3_, p_78088_4_, p_78088_5_, p_78088_6_, scale, entityIn); this.setRotationAngles(p_78088_2_, p_78088_3_, p_78088_4_, p_78088_5_, p_78088_6_, scale, entityIn);
GL46.glPushMatrix(); GL46C.glPushMatrix();
// if (this.isChild) // if (this.isChild)
// { // {
@ -89,7 +89,7 @@ public abstract class ModelBiped extends ModelBase
// { // {
if (this.isSneak) // entityIn.isSneaking()) if (this.isSneak) // entityIn.isSneaking())
{ {
GL46.glTranslatef(0.0F, 0.2F, 0.0F); GL46C.glTranslatef(0.0F, 0.2F, 0.0F);
} }
this.bipedHead.render(scale); this.bipedHead.render(scale);
@ -102,7 +102,7 @@ public abstract class ModelBiped extends ModelBase
this.bipedHeadwear.render(scale); this.bipedHeadwear.render(scale);
// } // }
GL46.glPopMatrix(); GL46C.glPopMatrix();
} }
/** /**

View file

@ -1,6 +1,6 @@
package client.renderer.model; package client.renderer.model;
import org.lwjgl.opengl.GL46; import org.lwjgl.opengl.GL46C;
import common.entity.Entity; import common.entity.Entity;
import common.entity.animal.EntityCat; import common.entity.animal.EntityCat;
@ -65,14 +65,14 @@ public class ModelCat extends ModelBase
if (this.isChild) if (this.isChild)
{ {
float f = 2.0F; float f = 2.0F;
GL46.glPushMatrix(); GL46C.glPushMatrix();
GL46.glScalef(1.5F / f, 1.5F / f, 1.5F / f); GL46C.glScalef(1.5F / f, 1.5F / f, 1.5F / f);
GL46.glTranslatef(0.0F, 10.0F * scale, 4.0F * scale); GL46C.glTranslatef(0.0F, 10.0F * scale, 4.0F * scale);
this.head.render(scale); this.head.render(scale);
GL46.glPopMatrix(); GL46C.glPopMatrix();
GL46.glPushMatrix(); GL46C.glPushMatrix();
GL46.glScalef(1.0F / f, 1.0F / f, 1.0F / f); GL46C.glScalef(1.0F / f, 1.0F / f, 1.0F / f);
GL46.glTranslatef(0.0F, 24.0F * scale, 0.0F); GL46C.glTranslatef(0.0F, 24.0F * scale, 0.0F);
this.body.render(scale); this.body.render(scale);
this.backLeftLeg.render(scale); this.backLeftLeg.render(scale);
this.backRightLeg.render(scale); this.backRightLeg.render(scale);
@ -80,7 +80,7 @@ public class ModelCat extends ModelBase
this.frontRightLeg.render(scale); this.frontRightLeg.render(scale);
this.tail.render(scale); this.tail.render(scale);
this.tail2.render(scale); this.tail2.render(scale);
GL46.glPopMatrix(); GL46C.glPopMatrix();
} }
else else
{ {

View file

@ -1,6 +1,6 @@
package client.renderer.model; package client.renderer.model;
import org.lwjgl.opengl.GL46; import org.lwjgl.opengl.GL46C;
import common.entity.Entity; import common.entity.Entity;
import common.util.ExtMath; import common.util.ExtMath;
@ -55,21 +55,21 @@ public class ModelChicken extends ModelBase
if (this.isChild) if (this.isChild)
{ {
float f = 2.0F; float f = 2.0F;
GL46.glPushMatrix(); GL46C.glPushMatrix();
GL46.glTranslatef(0.0F, 5.0F * scale, 2.0F * scale); GL46C.glTranslatef(0.0F, 5.0F * scale, 2.0F * scale);
this.head.render(scale); this.head.render(scale);
this.bill.render(scale); this.bill.render(scale);
this.chin.render(scale); this.chin.render(scale);
GL46.glPopMatrix(); GL46C.glPopMatrix();
GL46.glPushMatrix(); GL46C.glPushMatrix();
GL46.glScalef(1.0F / f, 1.0F / f, 1.0F / f); GL46C.glScalef(1.0F / f, 1.0F / f, 1.0F / f);
GL46.glTranslatef(0.0F, 24.0F * scale, 0.0F); GL46C.glTranslatef(0.0F, 24.0F * scale, 0.0F);
this.body.render(scale); this.body.render(scale);
this.rightLeg.render(scale); this.rightLeg.render(scale);
this.leftLeg.render(scale); this.leftLeg.render(scale);
this.rightWing.render(scale); this.rightWing.render(scale);
this.leftWing.render(scale); this.leftWing.render(scale);
GL46.glPopMatrix(); GL46C.glPopMatrix();
} }
else else
{ {

View file

@ -1,6 +1,6 @@
package client.renderer.model; package client.renderer.model;
import org.lwjgl.opengl.GL46; import org.lwjgl.opengl.GL46C;
import common.entity.Entity; import common.entity.Entity;
@ -33,28 +33,28 @@ public class ModelCrystal extends ModelBase
*/ */
public void render(Entity entityIn, float p_78088_2_, float p_78088_3_, float p_78088_4_, float p_78088_5_, float p_78088_6_, float scale) public void render(Entity entityIn, float p_78088_2_, float p_78088_3_, float p_78088_4_, float p_78088_5_, float p_78088_6_, float scale)
{ {
GL46.glPushMatrix(); GL46C.glPushMatrix();
GL46.glScalef(2.0F, 2.0F, 2.0F); GL46C.glScalef(2.0F, 2.0F, 2.0F);
GL46.glTranslatef(0.0F, -0.5F, 0.0F); GL46C.glTranslatef(0.0F, -0.5F, 0.0F);
if (this.base != null) if (this.base != null)
{ {
this.base.render(scale); this.base.render(scale);
} }
GL46.glRotatef(p_78088_3_, 0.0F, 1.0F, 0.0F); GL46C.glRotatef(p_78088_3_, 0.0F, 1.0F, 0.0F);
GL46.glTranslatef(0.0F, 0.8F + p_78088_4_, 0.0F); GL46C.glTranslatef(0.0F, 0.8F + p_78088_4_, 0.0F);
GL46.glRotatef(60.0F, 0.7071F, 0.0F, 0.7071F); GL46C.glRotatef(60.0F, 0.7071F, 0.0F, 0.7071F);
this.glass.render(scale); this.glass.render(scale);
float f = 0.875F; float f = 0.875F;
GL46.glScalef(f, f, f); GL46C.glScalef(f, f, f);
GL46.glRotatef(60.0F, 0.7071F, 0.0F, 0.7071F); GL46C.glRotatef(60.0F, 0.7071F, 0.0F, 0.7071F);
GL46.glRotatef(p_78088_3_, 0.0F, 1.0F, 0.0F); GL46C.glRotatef(p_78088_3_, 0.0F, 1.0F, 0.0F);
this.glass.render(scale); this.glass.render(scale);
GL46.glScalef(f, f, f); GL46C.glScalef(f, f, f);
GL46.glRotatef(60.0F, 0.7071F, 0.0F, 0.7071F); GL46C.glRotatef(60.0F, 0.7071F, 0.0F, 0.7071F);
GL46.glRotatef(p_78088_3_, 0.0F, 1.0F, 0.0F); GL46C.glRotatef(p_78088_3_, 0.0F, 1.0F, 0.0F);
this.cube.render(scale); this.cube.render(scale);
GL46.glPopMatrix(); GL46C.glPopMatrix();
} }
} }

View file

@ -1,6 +1,6 @@
package client.renderer.model; package client.renderer.model;
import org.lwjgl.opengl.GL46; import org.lwjgl.opengl.GL46C;
import client.renderer.GlState; import client.renderer.GlState;
import common.entity.Entity; import common.entity.Entity;
@ -139,17 +139,17 @@ public class ModelDragon extends ModelBase
*/ */
public void render(Entity entityIn, float p_78088_2_, float p_78088_3_, float p_78088_4_, float p_78088_5_, float p_78088_6_, float scale) public void render(Entity entityIn, float p_78088_2_, float p_78088_3_, float p_78088_4_, float p_78088_5_, float p_78088_6_, float scale)
{ {
GL46.glPushMatrix(); GL46C.glPushMatrix();
GL46.glTranslatef(0.0F, 0.5F, 0.0F); GL46C.glTranslatef(0.0F, 0.5F, 0.0F);
GL46.glScalef(0.35f, 0.35f, 0.35f); GL46C.glScalef(0.35f, 0.35f, 0.35f);
GL46.glPushMatrix(); GL46C.glPushMatrix();
EntityDragon entitydragon = (EntityDragon)entityIn; EntityDragon entitydragon = (EntityDragon)entityIn;
float f = entitydragon.prevAnimTime + (entitydragon.animTime - entitydragon.prevAnimTime) * this.partialTicks; float f = entitydragon.prevAnimTime + (entitydragon.animTime - entitydragon.prevAnimTime) * this.partialTicks;
this.jaw.rotateAngleX = (float)(Math.sin((double)(f * (float)Math.PI * 2.0F)) + 1.0D) * 0.2F; this.jaw.rotateAngleX = (float)(Math.sin((double)(f * (float)Math.PI * 2.0F)) + 1.0D) * 0.2F;
float f1 = (float)(Math.sin((double)(f * (float)Math.PI * 2.0F - 1.0F)) + 1.0D); float f1 = (float)(Math.sin((double)(f * (float)Math.PI * 2.0F - 1.0F)) + 1.0D);
f1 = (f1 * f1 * 1.0F + f1 * 2.0F) * 0.05F; f1 = (f1 * f1 * 1.0F + f1 * 2.0F) * 0.05F;
GL46.glTranslatef(0.0F, f1 - 2.0F, -3.0F); GL46C.glTranslatef(0.0F, f1 - 2.0F, -3.0F);
GL46.glRotatef(f1 * 2.0F, 1.0F, 0.0F, 0.0F); GL46C.glRotatef(f1 * 2.0F, 1.0F, 0.0F, 0.0F);
float f2 = -30.0F; float f2 = -30.0F;
float f4 = 0.0F; float f4 = 0.0F;
float f5 = 1.5F; float f5 = 1.5F;
@ -181,10 +181,10 @@ public class ModelDragon extends ModelBase
this.head.rotateAngleY = 0.0f * (float)Math.PI / 180.0F * 1.0F; this.head.rotateAngleY = 0.0f * (float)Math.PI / 180.0F * 1.0F;
this.head.rotateAngleZ = -this.updateRotations(p_78088_5_ - (double)f7) * (float)Math.PI / 180.0F * 1.0F; this.head.rotateAngleZ = -this.updateRotations(p_78088_5_ - (double)f7) * (float)Math.PI / 180.0F * 1.0F;
this.head.render(scale); this.head.render(scale);
GL46.glPushMatrix(); GL46C.glPushMatrix();
GL46.glTranslatef(0.0F, 1.0F, 0.0F); GL46C.glTranslatef(0.0F, 1.0F, 0.0F);
GL46.glRotatef(-f6 * f5 * 1.0F, 0.0F, 0.0F, 1.0F); GL46C.glRotatef(-f6 * f5 * 1.0F, 0.0F, 0.0F, 1.0F);
GL46.glTranslatef(0.0F, -1.0F, 0.0F); GL46C.glTranslatef(0.0F, -1.0F, 0.0F);
this.body.rotateAngleZ = 0.0F; this.body.rotateAngleZ = 0.0F;
this.body.render(scale); this.body.render(scale);
@ -205,16 +205,16 @@ public class ModelDragon extends ModelBase
this.wing.render(scale); this.wing.render(scale);
this.frontLeg.render(scale); this.frontLeg.render(scale);
this.rearLeg.render(scale); this.rearLeg.render(scale);
GL46.glScalef(-1.0F, 1.0F, 1.0F); GL46C.glScalef(-1.0F, 1.0F, 1.0F);
if (j == 0) if (j == 0)
{ {
GlState.cullFace(GL46.GL_FRONT); GlState.cullFace(GL46C.GL_FRONT);
} }
} }
GL46.glPopMatrix(); GL46C.glPopMatrix();
GlState.cullFace(GL46.GL_BACK); GlState.cullFace(GL46C.GL_BACK);
GlState.disableCull(); GlState.disableCull();
float f10 = -((float)Math.sin((double)(f * (float)Math.PI * 2.0F))) * 0.0F; float f10 = -((float)Math.sin((double)(f * (float)Math.PI * 2.0F))) * 0.0F;
f8 = f * (float)Math.PI * 2.0F; f8 = f * (float)Math.PI * 2.0F;
@ -237,8 +237,8 @@ public class ModelDragon extends ModelBase
this.spine.render(scale); this.spine.render(scale);
} }
GL46.glPopMatrix(); GL46C.glPopMatrix();
GL46.glPopMatrix(); GL46C.glPopMatrix();
} }
/** /**

View file

@ -1,6 +1,6 @@
package client.renderer.model; package client.renderer.model;
import org.lwjgl.opengl.GL46; import org.lwjgl.opengl.GL46C;
import common.entity.Entity; import common.entity.Entity;
import common.util.ExtMath; import common.util.ExtMath;
@ -54,20 +54,20 @@ public class ModelFox extends ModelBase
if (this.isChild) if (this.isChild)
{ {
float f = 2.0F; float f = 2.0F;
GL46.glPushMatrix(); GL46C.glPushMatrix();
GL46.glTranslatef(0.0F, 3.5F * scale, 2.0F * scale); GL46C.glTranslatef(0.0F, 3.5F * scale, 2.0F * scale);
this.head.renderWithRotation(scale); this.head.renderWithRotation(scale);
GL46.glPopMatrix(); GL46C.glPopMatrix();
GL46.glPushMatrix(); GL46C.glPushMatrix();
GL46.glScalef(1.0F / f, 1.0F / f, 1.0F / f); GL46C.glScalef(1.0F / f, 1.0F / f, 1.0F / f);
GL46.glTranslatef(0.0F, 24.0F * scale, 0.0F); GL46C.glTranslatef(0.0F, 24.0F * scale, 0.0F);
this.body.render(scale); this.body.render(scale);
this.wolfLeg1.render(scale); this.wolfLeg1.render(scale);
this.wolfLeg2.render(scale); this.wolfLeg2.render(scale);
this.wolfLeg3.render(scale); this.wolfLeg3.render(scale);
this.wolfLeg4.render(scale); this.wolfLeg4.render(scale);
this.tail.renderWithRotation(scale); this.tail.renderWithRotation(scale);
GL46.glPopMatrix(); GL46C.glPopMatrix();
} }
else else
{ {

View file

@ -1,6 +1,6 @@
package client.renderer.model; package client.renderer.model;
import org.lwjgl.opengl.GL46; import org.lwjgl.opengl.GL46C;
import common.entity.Entity; import common.entity.Entity;
import common.entity.animal.EntityHorse; import common.entity.animal.EntityHorse;
@ -242,9 +242,9 @@ public class ModelHorse extends ModelBase
if (!flag) if (!flag)
{ {
GL46.glPushMatrix(); GL46C.glPushMatrix();
GL46.glScalef(f1, 0.5F + f1 * 0.5F, f1); GL46C.glScalef(f1, 0.5F + f1 * 0.5F, f1);
GL46.glTranslatef(0.0F, 0.95F * (1.0F - f1), 0.0F); GL46C.glTranslatef(0.0F, 0.95F * (1.0F - f1), 0.0F);
} }
this.backLeftLeg.render(scale); this.backLeftLeg.render(scale);
@ -262,10 +262,10 @@ public class ModelHorse extends ModelBase
if (!flag) if (!flag)
{ {
GL46.glPopMatrix(); GL46C.glPopMatrix();
GL46.glPushMatrix(); GL46C.glPushMatrix();
GL46.glScalef(f1, f1, f1); GL46C.glScalef(f1, f1, f1);
GL46.glTranslatef(0.0F, 1.35F * (1.0F - f1), 0.0F); GL46C.glTranslatef(0.0F, 1.35F * (1.0F - f1), 0.0F);
} }
this.body.render(scale); this.body.render(scale);
@ -277,18 +277,18 @@ public class ModelHorse extends ModelBase
if (!flag) if (!flag)
{ {
GL46.glPopMatrix(); GL46C.glPopMatrix();
GL46.glPushMatrix(); GL46C.glPushMatrix();
float f2 = 0.5F + f1 * f1 * 0.5F; float f2 = 0.5F + f1 * f1 * 0.5F;
GL46.glScalef(f2, f2, f2); GL46C.glScalef(f2, f2, f2);
if (f <= 0.0F) if (f <= 0.0F)
{ {
GL46.glTranslatef(0.0F, 1.35F * (1.0F - f1), 0.0F); GL46C.glTranslatef(0.0F, 1.35F * (1.0F - f1), 0.0F);
} }
else else
{ {
GL46.glTranslatef(0.0F, 0.9F * (1.0F - f1) * f + 1.35F * (1.0F - f1) * (1.0F - f), 0.15F * (1.0F - f1) * f); GL46C.glTranslatef(0.0F, 0.9F * (1.0F - f1) * f + 1.35F * (1.0F - f1) * (1.0F - f), 0.15F * (1.0F - f1) * f);
} }
} }
@ -307,7 +307,7 @@ public class ModelHorse extends ModelBase
if (!flag) if (!flag)
{ {
GL46.glPopMatrix(); GL46C.glPopMatrix();
} }
if (flag2) if (flag2)

View file

@ -1,6 +1,6 @@
package client.renderer.model; package client.renderer.model;
import org.lwjgl.opengl.GL46; import org.lwjgl.opengl.GL46C;
import common.entity.Entity; import common.entity.Entity;
import common.util.ExtMath; import common.util.ExtMath;
@ -150,7 +150,7 @@ public class ModelHumanoid extends ModelBiped
public void render(Entity entityIn, float p_78088_2_, float p_78088_3_, float p_78088_4_, float p_78088_5_, float p_78088_6_, float scale) public void render(Entity entityIn, float p_78088_2_, float p_78088_3_, float p_78088_4_, float p_78088_5_, float p_78088_6_, float scale)
{ {
super.render(entityIn, p_78088_2_, p_78088_3_, p_78088_4_, p_78088_5_, p_78088_6_, scale); super.render(entityIn, p_78088_2_, p_78088_3_, p_78088_4_, p_78088_5_, p_78088_6_, scale);
GL46.glPushMatrix(); GL46C.glPushMatrix();
// if (this.isChild) // if (this.isChild)
// { // {
@ -171,7 +171,7 @@ public class ModelHumanoid extends ModelBiped
// { // {
if (this.isSneak) // entityIn.isSneaking()) if (this.isSneak) // entityIn.isSneaking())
{ {
GL46.glTranslatef(0.0F, 0.2F, 0.0F); GL46C.glTranslatef(0.0F, 0.2F, 0.0F);
// } // }
} }
@ -188,7 +188,7 @@ public class ModelHumanoid extends ModelBiped
// if(this.sticks) { // if(this.sticks) {
// } // }
GL46.glPopMatrix(); GL46C.glPopMatrix();
} }
// public void renderCape(float scale) // public void renderCape(float scale)

View file

@ -1,6 +1,6 @@
package client.renderer.model; package client.renderer.model;
import org.lwjgl.opengl.GL46; import org.lwjgl.opengl.GL46C;
import common.entity.Entity; import common.entity.Entity;
import common.entity.types.EntityLiving; import common.entity.types.EntityLiving;
@ -63,9 +63,9 @@ public class ModelMouse extends ModelBase
this.setRotationAngles(p_78088_2_, p_78088_3_, p_78088_4_, p_78088_5_, p_78088_6_, scale, entityIn); this.setRotationAngles(p_78088_2_, p_78088_3_, p_78088_4_, p_78088_5_, p_78088_6_, scale, entityIn);
float s = this.isChild ? 0.125f : 0.25f; float s = this.isChild ? 0.125f : 0.25f;
GL46.glPushMatrix(); GL46C.glPushMatrix();
GL46.glScalef(s, s, s); GL46C.glScalef(s, s, s);
GL46.glTranslatef(0.0f, (this.isChild ? 171.0f : 74.5f) * scale, 0.0f); GL46C.glTranslatef(0.0f, (this.isChild ? 171.0f : 74.5f) * scale, 0.0f);
// if (this.isChild) // if (this.isChild)
// { // {
// float f = 2.0F; // float f = 2.0F;
@ -97,7 +97,7 @@ public class ModelMouse extends ModelBase
this.frontLeftLeg.render(scale); this.frontLeftLeg.render(scale);
this.frontRightLeg.render(scale); this.frontRightLeg.render(scale);
// } // }
GL46.glPopMatrix(); GL46C.glPopMatrix();
} }
public void setRotationAngles(float limbSwing, float limbSwingAmount, float ageInTicks, float netHeadYaw, float headPitch, float scaleFactor, Entity entityIn) public void setRotationAngles(float limbSwing, float limbSwingAmount, float ageInTicks, float netHeadYaw, float headPitch, float scaleFactor, Entity entityIn)

View file

@ -1,6 +1,6 @@
package client.renderer.model; package client.renderer.model;
import org.lwjgl.opengl.GL46; import org.lwjgl.opengl.GL46C;
import common.entity.Entity; import common.entity.Entity;
import common.util.ExtMath; import common.util.ExtMath;
@ -47,19 +47,19 @@ public class ModelQuadruped extends ModelBase
if (this.isChild) if (this.isChild)
{ {
float f = 2.0F; float f = 2.0F;
GL46.glPushMatrix(); GL46C.glPushMatrix();
GL46.glTranslatef(0.0F, this.childYOffset * scale, this.childZOffset * scale); GL46C.glTranslatef(0.0F, this.childYOffset * scale, this.childZOffset * scale);
this.head.render(scale); this.head.render(scale);
GL46.glPopMatrix(); GL46C.glPopMatrix();
GL46.glPushMatrix(); GL46C.glPushMatrix();
GL46.glScalef(1.0F / f, 1.0F / f, 1.0F / f); GL46C.glScalef(1.0F / f, 1.0F / f, 1.0F / f);
GL46.glTranslatef(0.0F, 24.0F * scale, 0.0F); GL46C.glTranslatef(0.0F, 24.0F * scale, 0.0F);
this.body.render(scale); this.body.render(scale);
this.leg1.render(scale); this.leg1.render(scale);
this.leg2.render(scale); this.leg2.render(scale);
this.leg3.render(scale); this.leg3.render(scale);
this.leg4.render(scale); this.leg4.render(scale);
GL46.glPopMatrix(); GL46C.glPopMatrix();
} }
else else
{ {

View file

@ -1,6 +1,6 @@
package client.renderer.model; package client.renderer.model;
import org.lwjgl.opengl.GL46; import org.lwjgl.opengl.GL46C;
import common.entity.Entity; import common.entity.Entity;
import common.entity.animal.EntityRabbit; import common.entity.animal.EntityRabbit;
@ -101,16 +101,16 @@ public class ModelRabbit extends ModelBase {
if(this.isChild) { if(this.isChild) {
float f = 2.0F; float f = 2.0F;
GL46.glPushMatrix(); GL46C.glPushMatrix();
GL46.glTranslatef(0.0F, 5.0F * scale, 2.0F * scale); GL46C.glTranslatef(0.0F, 5.0F * scale, 2.0F * scale);
this.rabbitHead.render(scale); this.rabbitHead.render(scale);
this.rabbitLeftEar.render(scale); this.rabbitLeftEar.render(scale);
this.rabbitRightEar.render(scale); this.rabbitRightEar.render(scale);
this.rabbitNose.render(scale); this.rabbitNose.render(scale);
GL46.glPopMatrix(); GL46C.glPopMatrix();
GL46.glPushMatrix(); GL46C.glPushMatrix();
GL46.glScalef(1.0F / f, 1.0F / f, 1.0F / f); GL46C.glScalef(1.0F / f, 1.0F / f, 1.0F / f);
GL46.glTranslatef(0.0F, 24.0F * scale, 0.0F); GL46C.glTranslatef(0.0F, 24.0F * scale, 0.0F);
this.rabbitLeftFoot.render(scale); this.rabbitLeftFoot.render(scale);
this.rabbitRightFoot.render(scale); this.rabbitRightFoot.render(scale);
this.rabbitLeftThigh.render(scale); this.rabbitLeftThigh.render(scale);
@ -119,7 +119,7 @@ public class ModelRabbit extends ModelBase {
this.rabbitLeftArm.render(scale); this.rabbitLeftArm.render(scale);
this.rabbitRightArm.render(scale); this.rabbitRightArm.render(scale);
this.rabbitTail.render(scale); this.rabbitTail.render(scale);
GL46.glPopMatrix(); GL46C.glPopMatrix();
} }
else { else {
this.rabbitLeftFoot.render(scale); this.rabbitLeftFoot.render(scale);

View file

@ -2,7 +2,7 @@ package client.renderer.model;
import java.util.List; import java.util.List;
import org.lwjgl.opengl.GL46; import org.lwjgl.opengl.GL46C;
import client.renderer.RenderBuffer; import client.renderer.RenderBuffer;
import client.renderer.Tessellator; import client.renderer.Tessellator;
@ -173,13 +173,13 @@ public class ModelRenderer
this.compileDisplayList(p_78785_1_); this.compileDisplayList(p_78785_1_);
} }
GL46.glTranslatef(this.offsetX, this.offsetY, this.offsetZ); GL46C.glTranslatef(this.offsetX, this.offsetY, this.offsetZ);
if (this.rotateAngleX == 0.0F && this.rotateAngleY == 0.0F && this.rotateAngleZ == 0.0F) if (this.rotateAngleX == 0.0F && this.rotateAngleY == 0.0F && this.rotateAngleZ == 0.0F)
{ {
if (this.rotationPointX == 0.0F && this.rotationPointY == 0.0F && this.rotationPointZ == 0.0F) if (this.rotationPointX == 0.0F && this.rotationPointY == 0.0F && this.rotationPointZ == 0.0F)
{ {
GL46.glCallList(this.displayList); GL46C.glCallList(this.displayList);
if (this.childModels != null) if (this.childModels != null)
{ {
@ -191,8 +191,8 @@ public class ModelRenderer
} }
else else
{ {
GL46.glTranslatef(this.rotationPointX * p_78785_1_, this.rotationPointY * p_78785_1_, this.rotationPointZ * p_78785_1_); GL46C.glTranslatef(this.rotationPointX * p_78785_1_, this.rotationPointY * p_78785_1_, this.rotationPointZ * p_78785_1_);
GL46.glCallList(this.displayList); GL46C.glCallList(this.displayList);
if (this.childModels != null) if (this.childModels != null)
{ {
@ -202,30 +202,30 @@ public class ModelRenderer
} }
} }
GL46.glTranslatef(-this.rotationPointX * p_78785_1_, -this.rotationPointY * p_78785_1_, -this.rotationPointZ * p_78785_1_); GL46C.glTranslatef(-this.rotationPointX * p_78785_1_, -this.rotationPointY * p_78785_1_, -this.rotationPointZ * p_78785_1_);
} }
} }
else else
{ {
GL46.glPushMatrix(); GL46C.glPushMatrix();
GL46.glTranslatef(this.rotationPointX * p_78785_1_, this.rotationPointY * p_78785_1_, this.rotationPointZ * p_78785_1_); GL46C.glTranslatef(this.rotationPointX * p_78785_1_, this.rotationPointY * p_78785_1_, this.rotationPointZ * p_78785_1_);
if (this.rotateAngleZ != 0.0F) if (this.rotateAngleZ != 0.0F)
{ {
GL46.glRotatef(this.rotateAngleZ * (180F / (float)Math.PI), 0.0F, 0.0F, 1.0F); GL46C.glRotatef(this.rotateAngleZ * (180F / (float)Math.PI), 0.0F, 0.0F, 1.0F);
} }
if (this.rotateAngleY != 0.0F) if (this.rotateAngleY != 0.0F)
{ {
GL46.glRotatef(this.rotateAngleY * (180F / (float)Math.PI), 0.0F, 1.0F, 0.0F); GL46C.glRotatef(this.rotateAngleY * (180F / (float)Math.PI), 0.0F, 1.0F, 0.0F);
} }
if (this.rotateAngleX != 0.0F) if (this.rotateAngleX != 0.0F)
{ {
GL46.glRotatef(this.rotateAngleX * (180F / (float)Math.PI), 1.0F, 0.0F, 0.0F); GL46C.glRotatef(this.rotateAngleX * (180F / (float)Math.PI), 1.0F, 0.0F, 0.0F);
} }
GL46.glCallList(this.displayList); GL46C.glCallList(this.displayList);
if (this.childModels != null) if (this.childModels != null)
{ {
@ -235,10 +235,10 @@ public class ModelRenderer
} }
} }
GL46.glPopMatrix(); GL46C.glPopMatrix();
} }
GL46.glTranslatef(-this.offsetX, -this.offsetY, -this.offsetZ); GL46C.glTranslatef(-this.offsetX, -this.offsetY, -this.offsetZ);
} }
} }
} }
@ -254,26 +254,26 @@ public class ModelRenderer
this.compileDisplayList(p_78791_1_); this.compileDisplayList(p_78791_1_);
} }
GL46.glPushMatrix(); GL46C.glPushMatrix();
GL46.glTranslatef(this.rotationPointX * p_78791_1_, this.rotationPointY * p_78791_1_, this.rotationPointZ * p_78791_1_); GL46C.glTranslatef(this.rotationPointX * p_78791_1_, this.rotationPointY * p_78791_1_, this.rotationPointZ * p_78791_1_);
if (this.rotateAngleY != 0.0F) if (this.rotateAngleY != 0.0F)
{ {
GL46.glRotatef(this.rotateAngleY * (180F / (float)Math.PI), 0.0F, 1.0F, 0.0F); GL46C.glRotatef(this.rotateAngleY * (180F / (float)Math.PI), 0.0F, 1.0F, 0.0F);
} }
if (this.rotateAngleX != 0.0F) if (this.rotateAngleX != 0.0F)
{ {
GL46.glRotatef(this.rotateAngleX * (180F / (float)Math.PI), 1.0F, 0.0F, 0.0F); GL46C.glRotatef(this.rotateAngleX * (180F / (float)Math.PI), 1.0F, 0.0F, 0.0F);
} }
if (this.rotateAngleZ != 0.0F) if (this.rotateAngleZ != 0.0F)
{ {
GL46.glRotatef(this.rotateAngleZ * (180F / (float)Math.PI), 0.0F, 0.0F, 1.0F); GL46C.glRotatef(this.rotateAngleZ * (180F / (float)Math.PI), 0.0F, 0.0F, 1.0F);
} }
GL46.glCallList(this.displayList); GL46C.glCallList(this.displayList);
GL46.glPopMatrix(); GL46C.glPopMatrix();
} }
} }
} }
@ -296,26 +296,26 @@ public class ModelRenderer
{ {
if (this.rotationPointX != 0.0F || this.rotationPointY != 0.0F || this.rotationPointZ != 0.0F) if (this.rotationPointX != 0.0F || this.rotationPointY != 0.0F || this.rotationPointZ != 0.0F)
{ {
GL46.glTranslatef(this.rotationPointX * scale, this.rotationPointY * scale, this.rotationPointZ * scale); GL46C.glTranslatef(this.rotationPointX * scale, this.rotationPointY * scale, this.rotationPointZ * scale);
} }
} }
else else
{ {
GL46.glTranslatef(this.rotationPointX * scale, this.rotationPointY * scale, this.rotationPointZ * scale); GL46C.glTranslatef(this.rotationPointX * scale, this.rotationPointY * scale, this.rotationPointZ * scale);
if (this.rotateAngleZ != 0.0F) if (this.rotateAngleZ != 0.0F)
{ {
GL46.glRotatef(this.rotateAngleZ * (180F / (float)Math.PI), 0.0F, 0.0F, 1.0F); GL46C.glRotatef(this.rotateAngleZ * (180F / (float)Math.PI), 0.0F, 0.0F, 1.0F);
} }
if (this.rotateAngleY != 0.0F) if (this.rotateAngleY != 0.0F)
{ {
GL46.glRotatef(this.rotateAngleY * (180F / (float)Math.PI), 0.0F, 1.0F, 0.0F); GL46C.glRotatef(this.rotateAngleY * (180F / (float)Math.PI), 0.0F, 1.0F, 0.0F);
} }
if (this.rotateAngleX != 0.0F) if (this.rotateAngleX != 0.0F)
{ {
GL46.glRotatef(this.rotateAngleX * (180F / (float)Math.PI), 1.0F, 0.0F, 0.0F); GL46C.glRotatef(this.rotateAngleX * (180F / (float)Math.PI), 1.0F, 0.0F, 0.0F);
} }
} }
} }
@ -337,26 +337,26 @@ public class ModelRenderer
{ {
if (this.rotationPointX + x != 0.0F || this.rotationPointY + y != 0.0F || this.rotationPointZ + z != 0.0F) if (this.rotationPointX + x != 0.0F || this.rotationPointY + y != 0.0F || this.rotationPointZ + z != 0.0F)
{ {
GL46.glTranslatef((this.rotationPointX + x) * scale, (this.rotationPointY + y) * scale, (this.rotationPointZ + z) * scale); GL46C.glTranslatef((this.rotationPointX + x) * scale, (this.rotationPointY + y) * scale, (this.rotationPointZ + z) * scale);
} }
} }
else else
{ {
GL46.glTranslatef((this.rotationPointX + x) * scale, (this.rotationPointY + y) * scale, (this.rotationPointZ + z) * scale); GL46C.glTranslatef((this.rotationPointX + x) * scale, (this.rotationPointY + y) * scale, (this.rotationPointZ + z) * scale);
if (this.rotateAngleZ != 0.0F) if (this.rotateAngleZ != 0.0F)
{ {
GL46.glRotatef(this.rotateAngleZ * (180F / (float)Math.PI), 0.0F, 0.0F, 1.0F); GL46C.glRotatef(this.rotateAngleZ * (180F / (float)Math.PI), 0.0F, 0.0F, 1.0F);
} }
if (this.rotateAngleY != 0.0F) if (this.rotateAngleY != 0.0F)
{ {
GL46.glRotatef(this.rotateAngleY * (180F / (float)Math.PI), 0.0F, 1.0F, 0.0F); GL46C.glRotatef(this.rotateAngleY * (180F / (float)Math.PI), 0.0F, 1.0F, 0.0F);
} }
if (this.rotateAngleX != 0.0F) if (this.rotateAngleX != 0.0F)
{ {
GL46.glRotatef(this.rotateAngleX * (180F / (float)Math.PI), 1.0F, 0.0F, 0.0F); GL46C.glRotatef(this.rotateAngleX * (180F / (float)Math.PI), 1.0F, 0.0F, 0.0F);
} }
} }
} }
@ -365,8 +365,8 @@ public class ModelRenderer
private void compileDisplayList(float scale) private void compileDisplayList(float scale)
{ {
this.displayList = GL46.glGenLists(1); this.displayList = GL46C.glGenLists(1);
GL46.glNewList(this.displayList, GL46.GL_COMPILE); GL46C.glNewList(this.displayList, GL46C.GL_COMPILE);
// Tessellator.getInstance(); // Tessellator.getInstance();
RenderBuffer worldrenderer = Tessellator.getBuffer(); RenderBuffer worldrenderer = Tessellator.getBuffer();
@ -375,13 +375,13 @@ public class ModelRenderer
((ModelBox)this.cubeList.get(i)).makeList(worldrenderer, scale); ((ModelBox)this.cubeList.get(i)).makeList(worldrenderer, scale);
} }
GL46.glEndList(); GL46C.glEndList();
this.compiled = true; this.compiled = true;
} }
public void deleteDisplayList() { public void deleteDisplayList() {
if(this.displayList != 0) if(this.displayList != 0)
GL46.glDeleteLists(this.displayList, 1); GL46C.glDeleteLists(this.displayList, 1);
this.displayList = 0; this.displayList = 0;
} }

View file

@ -1,6 +1,6 @@
package client.renderer.model; package client.renderer.model;
import org.lwjgl.opengl.GL46; import org.lwjgl.opengl.GL46C;
import common.entity.Entity; import common.entity.Entity;
import common.entity.animal.EntityWolf; import common.entity.animal.EntityWolf;
@ -77,13 +77,13 @@ public class ModelWolf extends ModelBase
if (this.isChild) if (this.isChild)
{ {
float f = 2.0F; float f = 2.0F;
GL46.glPushMatrix(); GL46C.glPushMatrix();
GL46.glTranslatef(0.0F, 5.0F * scale, 2.0F * scale); GL46C.glTranslatef(0.0F, 5.0F * scale, 2.0F * scale);
this.wolfHeadMain.renderWithRotation(scale); this.wolfHeadMain.renderWithRotation(scale);
GL46.glPopMatrix(); GL46C.glPopMatrix();
GL46.glPushMatrix(); GL46C.glPushMatrix();
GL46.glScalef(1.0F / f, 1.0F / f, 1.0F / f); GL46C.glScalef(1.0F / f, 1.0F / f, 1.0F / f);
GL46.glTranslatef(0.0F, 24.0F * scale, 0.0F); GL46C.glTranslatef(0.0F, 24.0F * scale, 0.0F);
this.wolfBody.render(scale); this.wolfBody.render(scale);
this.wolfLeg1.render(scale); this.wolfLeg1.render(scale);
this.wolfLeg2.render(scale); this.wolfLeg2.render(scale);
@ -91,7 +91,7 @@ public class ModelWolf extends ModelBase
this.wolfLeg4.render(scale); this.wolfLeg4.render(scale);
this.wolfTail.renderWithRotation(scale); this.wolfTail.renderWithRotation(scale);
this.wolfMane.render(scale); this.wolfMane.render(scale);
GL46.glPopMatrix(); GL46C.glPopMatrix();
} }
else else
{ {

View file

@ -1,6 +1,6 @@
package client.renderer.model; package client.renderer.model;
import org.lwjgl.opengl.GL46; import org.lwjgl.opengl.GL46C;
import client.renderer.DefaultVertexFormats; import client.renderer.DefaultVertexFormats;
import client.renderer.RenderBuffer; import client.renderer.RenderBuffer;
@ -59,7 +59,7 @@ public class TexturedQuad
// ny = -ny; // ny = -ny;
// nz = -nz; // nz = -nz;
// } // }
renderer.begin(GL46.GL_QUADS, DefaultVertexFormats.OLDMODEL_POSITION_TEX_NORMAL); renderer.begin(GL46C.GL_QUADS, DefaultVertexFormats.OLDMODEL_POSITION_TEX_NORMAL);
for (int i = 0; i < 4; ++i) for (int i = 0; i < 4; ++i)
{ {
PositionTextureVertex vertex = this.vertices[i]; PositionTextureVertex vertex = this.vertices[i];

View file

@ -2,7 +2,7 @@ package client.renderer.texture;
import java.io.IOException; import java.io.IOException;
import org.lwjgl.opengl.GL46; import org.lwjgl.opengl.GL46C;
import client.renderer.GlState; import client.renderer.GlState;
@ -11,7 +11,7 @@ public abstract class Texture {
public final int getGlTextureId() { public final int getGlTextureId() {
if(this.id == -1) if(this.id == -1)
this.id = GL46.glGenTextures(); this.id = GL46C.glGenTextures();
return this.id; return this.id;
} }

View file

@ -7,7 +7,7 @@ import java.util.List;
import java.util.Map; import java.util.Map;
import java.util.Set; import java.util.Set;
import org.lwjgl.opengl.GL46; import org.lwjgl.opengl.GL46C;
import java.util.Map.Entry; import java.util.Map.Entry;
@ -190,7 +190,7 @@ public class TextureMap extends Texture
textureatlassprite.updateAnimation(); textureatlassprite.updateAnimation();
} }
GL46.glGenerateMipmap(GL46.GL_TEXTURE_2D); GL46C.glGenerateMipmap(GL46C.GL_TEXTURE_2D);
} }
private Sprite registerSprite(String location) private Sprite registerSprite(String location)

View file

@ -11,7 +11,7 @@ import java.nio.IntBuffer;
import javax.imageio.ImageIO; import javax.imageio.ImageIO;
import org.lwjgl.opengl.GL46; import org.lwjgl.opengl.GL46C;
import client.renderer.GlState; import client.renderer.GlState;
import client.util.FileUtils; import client.util.FileUtils;
@ -23,11 +23,11 @@ public class TextureUtil
public static final int[] MISSING_DATA = MISSING.getData(); public static final int[] MISSING_DATA = MISSING.getData();
public static void setParams(boolean filter, boolean mips, boolean linear, float aniso) { public static void setParams(boolean filter, boolean mips, boolean linear, float aniso) {
GL46.glTexParameteri(GL46.GL_TEXTURE_2D, GL46.GL_TEXTURE_MIN_FILTER, filter ? (mips ? (linear ? GL46.GL_LINEAR_MIPMAP_LINEAR : GL46.GL_LINEAR_MIPMAP_NEAREST) : GL46.GL_LINEAR) : (mips ? (linear ? GL46.GL_NEAREST_MIPMAP_LINEAR : GL46.GL_NEAREST_MIPMAP_NEAREST) : GL46.GL_NEAREST)); GL46C.glTexParameteri(GL46C.GL_TEXTURE_2D, GL46C.GL_TEXTURE_MIN_FILTER, filter ? (mips ? (linear ? GL46C.GL_LINEAR_MIPMAP_LINEAR : GL46C.GL_LINEAR_MIPMAP_NEAREST) : GL46C.GL_LINEAR) : (mips ? (linear ? GL46C.GL_NEAREST_MIPMAP_LINEAR : GL46C.GL_NEAREST_MIPMAP_NEAREST) : GL46C.GL_NEAREST));
GL46.glTexParameteri(GL46.GL_TEXTURE_2D, GL46.GL_TEXTURE_MAG_FILTER, filter ? GL46.GL_LINEAR : GL46.GL_NEAREST); GL46C.glTexParameteri(GL46C.GL_TEXTURE_2D, GL46C.GL_TEXTURE_MAG_FILTER, filter ? GL46C.GL_LINEAR : GL46C.GL_NEAREST);
GL46.glTexParameteri(GL46.GL_TEXTURE_2D, GL46.GL_TEXTURE_WRAP_S, GL46.GL_REPEAT); GL46C.glTexParameteri(GL46C.GL_TEXTURE_2D, GL46C.GL_TEXTURE_WRAP_S, GL46C.GL_REPEAT);
GL46.glTexParameteri(GL46.GL_TEXTURE_2D, GL46.GL_TEXTURE_WRAP_T, GL46.GL_REPEAT); GL46C.glTexParameteri(GL46C.GL_TEXTURE_2D, GL46C.GL_TEXTURE_WRAP_T, GL46C.GL_REPEAT);
GL46.glTexParameterf(GL46.GL_TEXTURE_2D, GL46.GL_TEXTURE_MAX_ANISOTROPY, aniso); GL46C.glTexParameterf(GL46C.GL_TEXTURE_2D, GL46C.GL_TEXTURE_MAX_ANISOTROPY, aniso);
} }
public static void uploadTexture(int[] data, int w, int h, int x, int y, boolean params) public static void uploadTexture(int[] data, int w, int h, int x, int y, boolean params)
@ -45,7 +45,7 @@ public class TextureUtil
BUFFER.clear(); BUFFER.clear();
BUFFER.put(data, j, i1); BUFFER.put(data, j, i1);
BUFFER.position(0).limit(i1); BUFFER.position(0).limit(i1);
GL46.glTexSubImage2D(GL46.GL_TEXTURE_2D, 0, x, y + k, w, l, GL46.GL_BGRA, GL46.GL_UNSIGNED_INT_8_8_8_8_REV, BUFFER); GL46C.glTexSubImage2D(GL46C.GL_TEXTURE_2D, 0, x, y + k, w, l, GL46C.GL_BGRA, GL46C.GL_UNSIGNED_INT_8_8_8_8_REV, BUFFER);
} }
} }
@ -68,7 +68,7 @@ public class TextureUtil
BUFFER.clear(); BUFFER.clear();
BUFFER.put(data, 0, k1); BUFFER.put(data, 0, k1);
BUFFER.position(0).limit(k1); BUFFER.position(0).limit(k1);
GL46.glTexSubImage2D(GL46.GL_TEXTURE_2D, 0, 0, i1, w, j1, GL46.GL_BGRA, GL46.GL_UNSIGNED_INT_8_8_8_8_REV, BUFFER); GL46C.glTexSubImage2D(GL46C.GL_TEXTURE_2D, 0, 0, i1, w, j1, GL46C.GL_BGRA, GL46C.GL_UNSIGNED_INT_8_8_8_8_REV, BUFFER);
} }
return id; return id;
} }
@ -77,7 +77,7 @@ public class TextureUtil
{ {
// GlState.deleteTexture(id); //TODO: check needed // GlState.deleteTexture(id); //TODO: check needed
GlState.bindTexture(id); GlState.bindTexture(id);
GL46.nglTexImage2D(GL46.GL_TEXTURE_2D, 0, GL46.GL_RGBA, width, height, 0, GL46.GL_BGRA, GL46.GL_UNSIGNED_INT_8_8_8_8_REV, NULL); GL46C.nglTexImage2D(GL46C.GL_TEXTURE_2D, 0, GL46C.GL_RGBA, width, height, 0, GL46C.GL_BGRA, GL46C.GL_UNSIGNED_INT_8_8_8_8_REV, NULL);
} }
public static int[] readImageData(String loc) throws IOException public static int[] readImageData(String loc) throws IOException

View file

@ -3,7 +3,7 @@ package client.renderer.tileentity;
import java.util.Iterator; import java.util.Iterator;
import java.util.Map; import java.util.Map;
import org.lwjgl.opengl.GL46; import org.lwjgl.opengl.GL46C;
import client.Client; import client.Client;
import client.renderer.Drawing; import client.renderer.Drawing;
@ -92,18 +92,18 @@ public class DisplayRenderer extends ElementRenderer<TileEntityDisplay> {
else if(dir == Facing.EAST) else if(dir == Facing.EAST)
rot = -90.0F; rot = -90.0F;
GL46.glPushMatrix(); GL46C.glPushMatrix();
GL46.glTranslatef((float)x + 0.5F, (float)y + 1.0f, (float)z + 0.5F); GL46C.glTranslatef((float)x + 0.5F, (float)y + 1.0f, (float)z + 0.5F);
GL46.glRotatef(-rot, 0.0F, 1.0F, 0.0F); GL46C.glRotatef(-rot, 0.0F, 1.0F, 0.0F);
GL46.glTranslatef(-0.5F, 0.0f, -0.5f + 0.0625f + 0.005f); GL46C.glTranslatef(-0.5F, 0.0f, -0.5f + 0.0625f + 0.005f);
float density = 1.0f / (float)(te.density / 16); float density = 1.0f / (float)(te.density / 16);
GL46.glScalef(0.0625f * density, -0.0625f * density, 0.0625f * density); GL46C.glScalef(0.0625f * density, -0.0625f * density, 0.0625f * density);
GlState.disableLighting(); GlState.disableLighting();
Drawing.drawTexturedRect(Client.CLIENT, getTexture(te), te.density, te.density, 0, 0, 0, 0, te.density, te.density); Drawing.drawTexturedRect(Client.CLIENT, getTexture(te), te.density, te.density, 0, 0, 0, 0, te.density, te.density);
GlState.enableLighting(); GlState.enableLighting();
GlState.color(1.0F, 1.0F, 1.0F, 1.0F); GlState.color(1.0F, 1.0F, 1.0F, 1.0F);
GL46.glPopMatrix(); GL46C.glPopMatrix();
} }
} }

View file

@ -1,6 +1,6 @@
package client.renderer.tileentity; package client.renderer.tileentity;
import org.lwjgl.opengl.GL46; import org.lwjgl.opengl.GL46C;
import client.Client; import client.Client;
import client.renderer.GlState; import client.renderer.GlState;
@ -17,17 +17,17 @@ public class ItemPipeRenderer extends ElementRenderer<TileEntityItemPipe> {
return; return;
Client.CLIENT.getTextureManager().bindTexture(TextureMap.BLOCKS); Client.CLIENT.getTextureManager().bindTexture(TextureMap.BLOCKS);
GlState.enableRescaleNormal(); GlState.enableRescaleNormal();
GlState.alphaFunc(GL46.GL_GREATER, 0.1F); GlState.alphaFunc(GL46C.GL_GREATER, 0.1F);
GlState.enableBlend(); GlState.enableBlend();
GlState.tryBlendFuncSeparate(GL46.GL_SRC_ALPHA, GL46.GL_ONE_MINUS_SRC_ALPHA, GL46.GL_ONE, GL46.GL_ZERO); GlState.tryBlendFuncSeparate(GL46C.GL_SRC_ALPHA, GL46C.GL_ONE_MINUS_SRC_ALPHA, GL46C.GL_ONE, GL46C.GL_ZERO);
RenderItem itemRenderer = Client.CLIENT.getRenderItem(); RenderItem itemRenderer = Client.CLIENT.getRenderItem();
IBakedModel ibakedmodel = itemRenderer.getItemModelMesher().getItemModel(itemstack); IBakedModel ibakedmodel = itemRenderer.getItemModelMesher().getItemModel(itemstack);
GL46.glPushMatrix(); GL46C.glPushMatrix();
GL46.glTranslatef((float)x + 0.5F, (float)y + 0.5f, (float)z + 0.5F); GL46C.glTranslatef((float)x + 0.5F, (float)y + 0.5f, (float)z + 0.5F);
if(ibakedmodel.isGui3d()) if(ibakedmodel.isGui3d())
GL46.glScalef(0.5F, 0.5F, 0.5F); GL46C.glScalef(0.5F, 0.5F, 0.5F);
itemRenderer.renderItem(itemstack, ibakedmodel); itemRenderer.renderItem(itemstack, ibakedmodel);
GL46.glPopMatrix(); GL46C.glPopMatrix();
GlState.disableRescaleNormal(); GlState.disableRescaleNormal();
GlState.disableBlend(); GlState.disableBlend();
} }

View file

@ -1,6 +1,6 @@
package client.renderer.tileentity; package client.renderer.tileentity;
import org.lwjgl.opengl.GL46; import org.lwjgl.opengl.GL46C;
import client.renderer.Drawing; import client.renderer.Drawing;
import client.renderer.GlState; import client.renderer.GlState;
@ -14,13 +14,13 @@ public class SignRenderer extends ElementRenderer<TileEntitySign>
{ {
public void renderElements(TileEntitySign te, double x, double y, double z, float partialTicks) public void renderElements(TileEntitySign te, double x, double y, double z, float partialTicks)
{ {
GL46.glPushMatrix(); GL46C.glPushMatrix();
float f = 0.6666667F; float f = 0.6666667F;
State state = te.getState(); State state = te.getState();
if (state.getBlock() instanceof BlockStandingSign) if (state.getBlock() instanceof BlockStandingSign)
{ {
GL46.glTranslatef((float)x + 0.5F, (float)y + 0.75F * f, (float)z + 0.5F); GL46C.glTranslatef((float)x + 0.5F, (float)y + 0.75F * f, (float)z + 0.5F);
int r = state.getValue(BlockStandingSign.FACING).getIndex(); int r = state.getValue(BlockStandingSign.FACING).getIndex();
float f1 = 0.0F; float f1 = 0.0F;
@ -38,8 +38,8 @@ public class SignRenderer extends ElementRenderer<TileEntitySign>
{ {
f1 = -90.0F; f1 = -90.0F;
} }
GL46.glRotatef(-f1, 0.0F, 1.0F, 0.0F); GL46C.glRotatef(-f1, 0.0F, 1.0F, 0.0F);
GL46.glTranslatef(0.0F, f * -0.0625f * 2.0f, 0.0F); GL46C.glTranslatef(0.0F, f * -0.0625f * 2.0f, 0.0F);
} }
else else
{ {
@ -61,16 +61,16 @@ public class SignRenderer extends ElementRenderer<TileEntitySign>
f2 = -90.0F; f2 = -90.0F;
} }
GL46.glTranslatef((float)x + 0.5F, (float)y + 0.75F * f, (float)z + 0.5F); GL46C.glTranslatef((float)x + 0.5F, (float)y + 0.75F * f, (float)z + 0.5F);
GL46.glRotatef(-f2, 0.0F, 1.0F, 0.0F); GL46C.glRotatef(-f2, 0.0F, 1.0F, 0.0F);
GL46.glTranslatef(0.0F, -0.3125F - f * 0.0625f * 0.5f, -0.4375F); GL46C.glTranslatef(0.0F, -0.3125F - f * 0.0625f * 0.5f, -0.4375F);
} }
GlState.enableRescaleNormal(); GlState.enableRescaleNormal();
float f3 = 0.015625F * f; float f3 = 0.015625F * f;
GL46.glTranslatef(0.0F, 0.5F * f, 0.1F * f); GL46C.glTranslatef(0.0F, 0.5F * f, 0.1F * f);
GL46.glScalef(f3, -f3, f3); GL46C.glScalef(f3, -f3, f3);
GL46.glNormal3f(0.0F, 0.0F, -1.0F * f3); GL46C.glNormal3f(0.0F, 0.0F, -1.0F * f3);
GlState.depthMask(false); GlState.depthMask(false);
for (int j = 0; j < te.text.length; ++j) for (int j = 0; j < te.text.length; ++j)
@ -78,15 +78,15 @@ public class SignRenderer extends ElementRenderer<TileEntitySign>
if (te.text[j] != null && !te.text[j].isEmpty()) if (te.text[j] != null && !te.text[j].isEmpty())
{ {
String s = te.text[j].length() > 50 ? te.text[j].substring(0, 50) : te.text[j]; String s = te.text[j].length() > 50 ? te.text[j].substring(0, 50) : te.text[j];
GL46.glPushMatrix(); GL46C.glPushMatrix();
GL46.glScalef(0.75f, 0.75f, 0.75f); GL46C.glScalef(0.75f, 0.75f, 0.75f);
Drawing.drawTextCenteredN(s, 0, j * (18 - 3) - 30, 0xff000000); Drawing.drawTextCentered3d(s, 0, j * (18 - 3) - 30, 0xff000000);
GL46.glPopMatrix(); GL46C.glPopMatrix();
} }
} }
GlState.depthMask(true); GlState.depthMask(true);
GlState.color(1.0F, 1.0F, 1.0F, 1.0F); GlState.color(1.0F, 1.0F, 1.0F, 1.0F);
GL46.glPopMatrix(); GL46C.glPopMatrix();
} }
} }

View file

@ -2,7 +2,7 @@ package client.renderer.tileentity;
import java.util.Map; import java.util.Map;
import org.lwjgl.opengl.GL46; import org.lwjgl.opengl.GL46C;
import client.renderer.GlState; import client.renderer.GlState;
import common.collect.Maps; import common.collect.Maps;
@ -58,7 +58,7 @@ public class SpecialRenderer {
int light = this.world.getCombinedLight(tile.getPos()); int light = this.world.getCombinedLight(tile.getPos());
int block = light % 65536; int block = light % 65536;
int sky = light / 65536; int sky = light / 65536;
GL46.glMultiTexCoord2f(GL46.GL_TEXTURE1, (float)block / 1.0F, (float)sky / 1.0F); GL46C.glMultiTexCoord2f(GL46C.GL_TEXTURE1, (float)block / 1.0F, (float)sky / 1.0F);
GlState.color(1.0F, 1.0F, 1.0F, 1.0F); GlState.color(1.0F, 1.0F, 1.0F, 1.0F);
BlockPos pos = tile.getPos(); BlockPos pos = tile.getPos();
this.render(tile, (double)pos.getX() - entityX, (double)pos.getY() - entityY, (double)pos.getZ() - entityZ, partial); this.render(tile, (double)pos.getX() - entityX, (double)pos.getY() - entityY, (double)pos.getZ() - entityZ, partial);

View file

@ -0,0 +1,7 @@
out vec4 FragColor;
in vec4 tex_color;
void main() {
FragColor = tex_color;
}

View file

@ -0,0 +1,13 @@
layout (location = 0) in vec3 pos;
layout (location = 1) in vec4 norm;
layout (location = 2) in vec2 coord;
layout (location = 3) in vec4 color;
out vec4 tex_color;
uniform vec2 screen_size;
void main() {
tex_color = color;
gl_Position = vec4(-1.0 + pos.x / screen_size.x * 2.0, -1.0 + pos.y / screen_size.y * 2.0, 0.0, 1.0);
}

View file

@ -0,0 +1,10 @@
out vec4 FragColor;
in vec2 tex_coord;
in vec4 tex_color;
uniform sampler2D tex;
void main() {
FragColor = texture(tex, tex_coord) * tex_color;
}

View file

@ -0,0 +1,15 @@
layout (location = 0) in vec3 pos;
layout (location = 1) in vec4 norm;
layout (location = 2) in vec2 coord;
layout (location = 3) in vec4 color;
out vec2 tex_coord;
out vec4 tex_color;
uniform vec2 screen_size;
void main() {
tex_coord = coord;
tex_color = color;
gl_Position = vec4(pos.x, pos.y, 0.0, 1.0);
}

View file

@ -8,5 +8,5 @@ public interface IWorldAccess extends IBlockAccess
{ {
TileEntity getTileEntity(BlockPos pos); TileEntity getTileEntity(BlockPos pos);
@Clientside @Clientside
int getCombinedLight(BlockPos pos); int getWorldLight(BlockPos pos);
} }

View file

@ -187,7 +187,7 @@ public abstract class World implements IWorldAccess {
public void checkBlockLight(BlockPos pos) { public void checkBlockLight(BlockPos pos) {
} }
public int getCombinedLight(BlockPos pos) { public int getWorldLight(BlockPos pos) {
return 0; return 0;
} }