fixes part 2.5

This commit is contained in:
lax1dude 2023-10-13 21:15:36 -07:00
parent 60fc4bc096
commit d2ff714cf1
11 changed files with 64 additions and 108 deletions

View File

@ -1,6 +1,5 @@
// copyright (c) 2020-2023 lax1dude
// creative commons BY-NC 4.0
#line 7

View File

@ -1,5 +1,7 @@
package net.lax1dude.eaglercraft;
import java.lang.management.ManagementFactory;
import javax.swing.JOptionPane;
import net.minecraft.client.Minecraft;
@ -9,7 +11,7 @@ public class MinecraftMain {
public static void main(String[] par0ArrayOfStr) {
JOptionPane.showMessageDialog(null, "launch renderdoc (optionally) and press ok to continue", "eaglercraft", JOptionPane.PLAIN_MESSAGE);
JOptionPane.showMessageDialog(null, "launch renderdoc (optionally) and press ok to continue", "eaglercraft: " + ManagementFactory.getRuntimeMXBean().getName(), JOptionPane.PLAIN_MESSAGE);
EaglerAdapter.initializeContext();
LocalStorageManager.loadStorage();

File diff suppressed because one or more lines are too long

View File

@ -169,7 +169,7 @@ public class TextureTerrainMap implements IconRegister {
EaglerAdapter.glBindTexture(EaglerAdapter.GL_TEXTURE_2D, -1);
frames = EaglerAdapter._wglGenTextures();
EaglerAdapter._wglBindTexture(EaglerAdapter.GL_TEXTURE_2D, frames);
EaglerAdapter.glBindTexture(EaglerAdapter.GL_TEXTURE_2D, frames);
EaglerImage mipLvl = populateAlpha(img);
uploadBuffer.clear();
@ -499,7 +499,7 @@ public class TextureTerrainMap implements IconRegister {
EaglerAdapter._wglBindFramebuffer(EaglerAdapter._wGL_FRAMEBUFFER, copyFramebuffer);
EaglerAdapter._wglReadBuffer(EaglerAdapter._wGL_COLOR_ATTACHMENT0);
for(int i = 0; i < 5; i++) {
EaglerAdapter._wglBindTexture(EaglerAdapter.GL_TEXTURE_2D, icon.frames);
EaglerAdapter.glBindTexture(EaglerAdapter.GL_TEXTURE_2D, icon.frames);
EaglerAdapter._wglFramebufferTexture2D(EaglerAdapter._wGL_COLOR_ATTACHMENT0, icon.frames, i);
EaglerAdapter.glBindTexture(EaglerAdapter.GL_TEXTURE_2D, texture);

View File

@ -180,7 +180,8 @@ public class EaglerAdapterGL30 extends EaglerAdapterImpl2 {
static int selectedTex = 0;
static int selectedClientTex = 0;
static int[] boundTex = new int[2];
static int[] boundTexI = new int[2];
static TextureGL[] boundTex = new TextureGL[2];
static int tex0Serial = 0;
static float tex0X = 0;
static float tex0Y = 0;
@ -772,11 +773,26 @@ public class EaglerAdapterGL30 extends EaglerAdapterImpl2 {
}
public static final void glBindTexture(int p1, int p2) {
if(boundTex[selectedTex] != p2) {
if(boundTexI[selectedTex] != p2) {
TextureGL t = texObjects.get(p2);
_wglBindTexture(_wGL_TEXTURE_2D, t);
if(boundTex[selectedTex] != t) {
_wglBindTexture(_wGL_TEXTURE_2D, t);
if (selectedTex == 0) {
boundTexture0 = t;
updateAnisotropicPatch();
}
boundTex[selectedTex] = t;
}
boundTexI[selectedTex] = p2;
}
}
public static final void glBindTexture(int p1, TextureGL p2) {
boundTexI[selectedTex] = -1;
if(boundTex[selectedTex] != p2) {
_wglBindTexture(_wGL_TEXTURE_2D, p2);
if (selectedTex == 0) {
boundTexture0 = t;
boundTexture0 = p2;
updateAnisotropicPatch();
}
boundTex[selectedTex] = p2;
@ -1443,12 +1459,16 @@ public class EaglerAdapterGL30 extends EaglerAdapterImpl2 {
public static final void glActiveTexture(int p1) {
switch (p1) {
case GL_TEXTURE0:
selectedTex = 0;
_wglActiveTexture(_wGL_TEXTURE0);
if(selectedTex != 0) {
selectedTex = 0;
_wglActiveTexture(_wGL_TEXTURE0);
}
break;
case GL_TEXTURE1:
selectedTex = 1;
_wglActiveTexture(_wGL_TEXTURE1);
if(selectedTex != 1) {
selectedTex = 1;
_wglActiveTexture(_wGL_TEXTURE1);
}
break;
default:
System.err.println("only two texture units implemented");

View File

@ -86,7 +86,7 @@ public class EffectPipeline {
noiseCounter = _wglGetUniformLocation(noiseProgram, "counter");
noiseSourceTexture = _wglGenTextures();
_wglBindTexture(_wGL_TEXTURE_2D, noiseSourceTexture);
glBindTexture(_wGL_TEXTURE_2D, noiseSourceTexture);
_wglTexParameteri(_wGL_TEXTURE_2D, _wGL_TEXTURE_MAG_FILTER, _wGL_NEAREST);
_wglTexParameteri(_wGL_TEXTURE_2D, _wGL_TEXTURE_MIN_FILTER, _wGL_NEAREST);
_wglTexParameteri(_wGL_TEXTURE_2D, _wGL_TEXTURE_WRAP_S, _wGL_REPEAT);
@ -106,7 +106,7 @@ public class EffectPipeline {
noiseGenFramebuffer = _wglCreateFramebuffer();
noiseGenTexture = _wglGenTextures();
_wglBindTexture(_wGL_TEXTURE_2D, noiseGenTexture);
glBindTexture(_wGL_TEXTURE_2D, noiseGenTexture);
_wglTexParameteri(_wGL_TEXTURE_2D, _wGL_TEXTURE_MAG_FILTER, _wGL_LINEAR);
_wglTexParameteri(_wGL_TEXTURE_2D, _wGL_TEXTURE_MIN_FILTER, _wGL_LINEAR);
_wglTexParameteri(_wGL_TEXTURE_2D, _wGL_TEXTURE_WRAP_S, _wGL_REPEAT);
@ -137,7 +137,7 @@ public class EffectPipeline {
_wglBindVertexArray0(renderQuadArray);
glActiveTexture(_wGL_TEXTURE0);
_wglBindTexture(_wGL_TEXTURE_2D, noiseSourceTexture);
glBindTexture(_wGL_TEXTURE_2D, noiseSourceTexture);
glDisable(GL_DEPTH_TEST);
glDisable(GL_CULL_FACE);
glDisable(GL_BLEND);
@ -162,10 +162,8 @@ public class EffectPipeline {
return;
}
// three guesses to figure out what this does
glActiveTexture(_wGL_TEXTURE0);
_wglBindTexture(_wGL_TEXTURE_2D, noiseGenTexture);
glBindTexture(_wGL_TEXTURE_2D, noiseGenTexture);
glEnable(GL_TEXTURE_2D);
glEnable(GL_BLEND);
glDisable(GL_ALPHA_TEST);

View File

@ -97,7 +97,7 @@ public class EffectPipelineFXAA {
framebuffer = _wglCreateFramebuffer();
fxaaSourceTexture = _wglGenTextures();
_wglBindTexture(_wGL_TEXTURE_2D, fxaaSourceTexture);
glBindTexture(_wGL_TEXTURE_2D, fxaaSourceTexture);
_wglTexParameteri(_wGL_TEXTURE_2D, _wGL_TEXTURE_MAG_FILTER, _wGL_NEAREST);
_wglTexParameteri(_wGL_TEXTURE_2D, _wGL_TEXTURE_MIN_FILTER, _wGL_NEAREST);
_wglTexParameteri(_wGL_TEXTURE_2D, _wGL_TEXTURE_WRAP_S, _wGL_CLAMP);
@ -173,7 +173,7 @@ public class EffectPipelineFXAA {
if(isUsingFXAA == false) {
initFXAA();
}else {
_wglBindTexture(_wGL_TEXTURE_2D, fxaaSourceTexture);
glBindTexture(_wGL_TEXTURE_2D, fxaaSourceTexture);
_wglTexImage2D(_wGL_TEXTURE_2D, 0, _wGL_RGB8, width, height, 0, _wGL_RGB, _wGL_UNSIGNED_BYTE, (ByteBuffer)null);
_wglBindRenderbuffer(framebuffer_depth);
_wglRenderbufferStorage(_wGL_DEPTH_COMPONENT32F, width, height);
@ -205,17 +205,17 @@ public class EffectPipelineFXAA {
_wglClear(_wGL_COLOR_BUFFER_BIT | _wGL_DEPTH_BUFFER_BIT);
if(state == 1) {
_wglViewport(originalViewport[0], originalViewport[1], originalViewport[2], originalViewport[3]);
_wglActiveTexture(_wGL_TEXTURE0);
_wglBindTexture(_wGL_TEXTURE_2D, fxaaSourceTexture);
_wglDisable(_wGL_DEPTH_TEST);
_wglDisable(_wGL_CULL_FACE);
_wglDepthMask(false);
glActiveTexture(GL_TEXTURE0);
glBindTexture(_wGL_TEXTURE_2D, fxaaSourceTexture);
glDisable(GL_DEPTH_TEST);
glDisable(GL_CULL_FACE);
glDepthMask(false);
_wglUseProgram(fxaaProgram);
_wglUniform2f(fxaaScreenSize, 1.0f / width, 1.0f / height);
_wglBindVertexArray0(renderQuadArray);
_wglDrawArrays(_wGL_TRIANGLES, 0, 6);
_wglEnable(_wGL_DEPTH_TEST);
_wglDepthMask(true);
glEnable(GL_DEPTH_TEST);
glDepthMask(true);
}else if(state == 2 || state == 3) {
if(!EaglerAdapter.isWebGL) {
_wglDisable(_wGL_MULTISAMPLE);

View File

@ -313,7 +313,7 @@ public class FixedFunctionShader {
u_texCoordV1 = _wglGetUniformLocation(globject, "texCoordV1");
streamBuffer = new StreamBuffer(0x8000, 3, 8, (vertexArray, vertexBuffer) -> {
_wglBindVertexArray(vertexArray);
_wglBindVertexArray0(vertexArray);
_wglBindBuffer(_wGL_ARRAY_BUFFER, vertexBuffer);
setupArrayForProgram();
});

View File

@ -21,7 +21,7 @@ public class GameOverlayFramebuffer {
depthBuffer = _wglCreateRenderBuffer();
framebufferColor = _wglGenTextures();
_wglBindFramebuffer(_wGL_FRAMEBUFFER, framebuffer);
_wglBindTexture(_wGL_TEXTURE_2D, framebufferColor);
glBindTexture(_wGL_TEXTURE_2D, framebufferColor);
_wglTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_NEAREST);
_wglTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_NEAREST);
_wglTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_S, GL_CLAMP);
@ -34,7 +34,7 @@ public class GameOverlayFramebuffer {
if(currentWidth != width || currentHeight != height) {
currentWidth = width;
currentHeight = height;
_wglBindTexture(_wGL_TEXTURE_2D, framebufferColor);
glBindTexture(_wGL_TEXTURE_2D, framebufferColor);
_wglTexImage2D(_wGL_TEXTURE_2D, 0, _wGL_RGBA8, width, height, 0, _wGL_RGBA, _wGL_UNSIGNED_BYTE, (ByteBuffer)null);
_wglBindRenderbuffer(depthBuffer);
_wglRenderbufferStorage(0x81A5, width, height);
@ -53,7 +53,7 @@ public class GameOverlayFramebuffer {
}
public void bindTexture() {
_wglBindTexture(_wGL_TEXTURE_2D, framebufferColor);
glBindTexture(_wGL_TEXTURE_2D, framebufferColor);
}
public void destroy() {

View File

@ -1,6 +1,6 @@
package net.lax1dude.eaglercraft.glemu;
import static net.lax1dude.eaglercraft.adapter.EaglerAdapterImpl2.*;
import static net.lax1dude.eaglercraft.EaglerAdapter.*;
import java.io.ByteArrayInputStream;
import java.io.DataInputStream;
@ -88,7 +88,7 @@ public class HighPolyMesh {
}
BufferArrayGL vertexArray = _wglCreateVertexArray();
_wglBindVertexArray(vertexArray);
_wglBindVertexArray0(vertexArray);
up1.position(0).limit(intsOfVertex);

View File

@ -106,15 +106,6 @@ public class GuiIngameMenu extends GuiScreen {
this.drawCenteredString(this.fontRenderer, "Game menu", this.width / 2, 40, 16777215);
super.drawScreen(par1, par2, par3);
StringTranslate var1 = StringTranslate.getInstance();
if(par1 >= 3 && par1 < 123 && par2 >= 3 && par2 < 23) {
int c = 0xCCCC66;
EaglerAdapter.glPushMatrix();
EaglerAdapter.glTranslatef(126.0f, 6.0f, 0.0f);
EaglerAdapter.glScalef(0.8f, 0.8f, 0.8f);
this.drawString(fontRenderer, var1.translateKey("menu.skinCapeSettingsNote0"), 0, 0, c);
this.drawString(fontRenderer, var1.translateKey("menu.skinCapeSettingsNote1"), 0, 9, c);
EaglerAdapter.glPopMatrix();
}
drawString(fontRenderer, "Eaglercraft: " + ConfigConstants.version, 6, 27, 0x999999);