Fix preview trying to read argb when there is only rgb
This commit is contained in:
@@ -19,7 +19,6 @@ import org.lwjgl.util.ReadableDimension;
|
|||||||
import java.awt.*;
|
import java.awt.*;
|
||||||
import java.io.IOException;
|
import java.io.IOException;
|
||||||
import java.nio.ByteBuffer;
|
import java.nio.ByteBuffer;
|
||||||
import java.nio.ByteOrder;
|
|
||||||
|
|
||||||
import static net.minecraft.client.renderer.GlStateManager.bindTexture;
|
import static net.minecraft.client.renderer.GlStateManager.bindTexture;
|
||||||
import static net.minecraft.client.renderer.GlStateManager.color;
|
import static net.minecraft.client.renderer.GlStateManager.color;
|
||||||
@@ -239,20 +238,13 @@ public class GuiVideoRenderer extends GuiScreen {
|
|||||||
ByteBuffer buffer = frame.getByteBuffer();
|
ByteBuffer buffer = frame.getByteBuffer();
|
||||||
buffer.mark();
|
buffer.mark();
|
||||||
synchronized (this) {
|
synchronized (this) {
|
||||||
swapEndianness(buffer);
|
int[] data = previewTexture.getTextureData();
|
||||||
buffer.asIntBuffer().get(previewTexture.getTextureData());
|
for (int i = 0; i < data.length; i++) {
|
||||||
swapEndianness(buffer);
|
data[i] = 0xff << 24 | (buffer.get() & 0xff) << 16 | (buffer.get() & 0xff) << 8 | (buffer.get() & 0xff);
|
||||||
|
}
|
||||||
previewTextureDirty = true;
|
previewTextureDirty = true;
|
||||||
}
|
}
|
||||||
buffer.reset();
|
buffer.reset();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private void swapEndianness(ByteBuffer buffer) {
|
|
||||||
if (buffer.order() == ByteOrder.BIG_ENDIAN) {
|
|
||||||
buffer.order(ByteOrder.LITTLE_ENDIAN);
|
|
||||||
} else {
|
|
||||||
buffer.order(ByteOrder.BIG_ENDIAN);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user