texture class cleanup work
All checks were successful
studiorailgun/Renderer/pipeline/head This commit looks good
All checks were successful
studiorailgun/Renderer/pipeline/head This commit looks good
This commit is contained in:
parent
85bba23cef
commit
7c8bc871e1
@ -1889,6 +1889,7 @@ New door furniture item
|
|||||||
Commenting rendering classes
|
Commenting rendering classes
|
||||||
Convert Mesh.java to only use GL45
|
Convert Mesh.java to only use GL45
|
||||||
Material and Mesh cleanup work
|
Material and Mesh cleanup work
|
||||||
|
Texture class cleanup work
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@ -13,18 +13,11 @@ import java.nio.ByteBuffer;
|
|||||||
import java.nio.IntBuffer;
|
import java.nio.IntBuffer;
|
||||||
|
|
||||||
import org.lwjgl.BufferUtils;
|
import org.lwjgl.BufferUtils;
|
||||||
import org.lwjgl.opengl.GL40;
|
|
||||||
import org.lwjgl.opengl.GL45;
|
import org.lwjgl.opengl.GL45;
|
||||||
import org.lwjgl.stb.STBImage;
|
import org.lwjgl.stb.STBImage;
|
||||||
import org.lwjgl.system.MemoryStack;
|
import org.lwjgl.system.MemoryStack;
|
||||||
import org.lwjgl.system.MemoryUtil;
|
import org.lwjgl.system.MemoryUtil;
|
||||||
|
|
||||||
import static org.lwjgl.opengl.GL11.*;
|
|
||||||
import static org.lwjgl.opengl.GL12.GL_CLAMP_TO_EDGE;
|
|
||||||
import static org.lwjgl.opengl.GL13.GL_TEXTURE0;
|
|
||||||
import static org.lwjgl.opengl.GL14.*;
|
|
||||||
import static org.lwjgl.opengl.GL30.*;
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* A opengl in texture
|
* A opengl in texture
|
||||||
*/
|
*/
|
||||||
@ -74,7 +67,7 @@ public class Texture {
|
|||||||
* Creates a texture with a new opengl texture object
|
* Creates a texture with a new opengl texture object
|
||||||
*/
|
*/
|
||||||
public Texture(){
|
public Texture(){
|
||||||
this.texturePointer = GL40.glGenTextures();
|
this.texturePointer = GL45.glGenTextures();
|
||||||
Globals.renderingEngine.checkError();
|
Globals.renderingEngine.checkError();
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -84,18 +77,18 @@ public class Texture {
|
|||||||
* @param data The pre-parsed buffer of data from the buffered image
|
* @param data The pre-parsed buffer of data from the buffered image
|
||||||
*/
|
*/
|
||||||
public Texture(OpenGLState openGlState, BufferedImage bufferedImage, ByteBuffer data){
|
public Texture(OpenGLState openGlState, BufferedImage bufferedImage, ByteBuffer data){
|
||||||
this.texturePointer = GL40.glGenTextures();
|
this.texturePointer = GL45.glGenTextures();
|
||||||
Globals.renderingEngine.checkError();
|
Globals.renderingEngine.checkError();
|
||||||
//bind the new texture
|
//bind the new texture
|
||||||
openGlState.glBindTexture(GL_TEXTURE_2D, texturePointer);
|
openGlState.glBindTexture(GL45.GL_TEXTURE_2D, texturePointer);
|
||||||
//how are we gonna wrap the texture??
|
//how are we gonna wrap the texture??
|
||||||
this.setWrap(openGlState, GL_TEXTURE_WRAP_S, GL_MIRRORED_REPEAT);
|
this.setWrap(openGlState, GL45.GL_TEXTURE_WRAP_S, GL45.GL_MIRRORED_REPEAT);
|
||||||
this.setWrap(openGlState, GL_TEXTURE_WRAP_T, GL_MIRRORED_REPEAT);
|
this.setWrap(openGlState, GL45.GL_TEXTURE_WRAP_T, GL45.GL_MIRRORED_REPEAT);
|
||||||
//set the border color to black
|
//set the border color to black
|
||||||
this.setBorderColor(openGlState, new float[]{ 0.0f, 0.0f, 0.0f, 1.0f });
|
this.setBorderColor(openGlState, new float[]{ 0.0f, 0.0f, 0.0f, 1.0f });
|
||||||
//set magnification and minification operation sampling strategies
|
//set magnification and minification operation sampling strategies
|
||||||
this.setMinFilter(openGlState, GL_LINEAR);
|
this.setMinFilter(openGlState, GL45.GL_LINEAR);
|
||||||
this.setMagFilter(openGlState, GL_LINEAR);
|
this.setMagFilter(openGlState, GL45.GL_LINEAR);
|
||||||
//load the image here
|
//load the image here
|
||||||
BufferedImage image_data = bufferedImage;
|
BufferedImage image_data = bufferedImage;
|
||||||
if (
|
if (
|
||||||
@ -113,25 +106,25 @@ public class Texture {
|
|||||||
height = image_data.getHeight();
|
height = image_data.getHeight();
|
||||||
//call if width != height so opengl figures out how to unpack it properly
|
//call if width != height so opengl figures out how to unpack it properly
|
||||||
if(width != height){
|
if(width != height){
|
||||||
glPixelStorei(GL_UNPACK_ALIGNMENT, 1);
|
GL45.glPixelStorei(GL45.GL_UNPACK_ALIGNMENT, 1);
|
||||||
}
|
}
|
||||||
//buffer the texture information
|
//buffer the texture information
|
||||||
if(hasTransparency){
|
if(hasTransparency){
|
||||||
this.pixelFormat = GL_RGBA;
|
this.pixelFormat = GL45.GL_RGBA;
|
||||||
this.datatype = GL_UNSIGNED_BYTE;
|
this.datatype = GL45.GL_UNSIGNED_BYTE;
|
||||||
this.glTexImage2D(openGlState, width, height, GL_RGBA, GL_UNSIGNED_BYTE, data);
|
this.glTexImage2D(openGlState, width, height, GL45.GL_RGBA, GL45.GL_UNSIGNED_BYTE, data);
|
||||||
} else {
|
} else {
|
||||||
this.pixelFormat = GL_RGB;
|
this.pixelFormat = GL45.GL_RGB;
|
||||||
this.datatype = GL_UNSIGNED_BYTE;
|
this.datatype = GL45.GL_UNSIGNED_BYTE;
|
||||||
this.glTexImage2D(openGlState, width, height, GL_RGB, GL_UNSIGNED_BYTE, data);
|
this.glTexImage2D(openGlState, width, height, GL45.GL_RGB, GL45.GL_UNSIGNED_BYTE, data);
|
||||||
}
|
}
|
||||||
glGenerateMipmap(GL_TEXTURE_2D);
|
GL45.glGenerateMipmap(GL45.GL_TEXTURE_2D);
|
||||||
//check build status
|
//check build status
|
||||||
String errorMessage = RenderingEngine.getErrorInEnglish(Globals.renderingEngine.getError());
|
String errorMessage = RenderingEngine.getErrorInEnglish(Globals.renderingEngine.getError());
|
||||||
if(errorMessage != null){
|
if(errorMessage != null){
|
||||||
LoggerInterface.loggerRenderer.ERROR(new IllegalStateException("Texture Constructor[from bufferedimage]: " + errorMessage));
|
LoggerInterface.loggerRenderer.ERROR(new IllegalStateException("Texture Constructor[from bufferedimage]: " + errorMessage));
|
||||||
}
|
}
|
||||||
openGlState.glBindTexture(GL_TEXTURE_2D, 0);
|
openGlState.glBindTexture(GL45.GL_TEXTURE_2D, 0);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -150,18 +143,18 @@ public class Texture {
|
|||||||
if(!EngineState.EngineFlags.HEADLESS){
|
if(!EngineState.EngineFlags.HEADLESS){
|
||||||
LoggerInterface.loggerRenderer.DEBUG("Setup texture object");
|
LoggerInterface.loggerRenderer.DEBUG("Setup texture object");
|
||||||
//generate the texture object on gpu
|
//generate the texture object on gpu
|
||||||
this.texturePointer = GL40.glGenTextures();
|
this.texturePointer = GL45.glGenTextures();
|
||||||
Globals.renderingEngine.checkError();
|
Globals.renderingEngine.checkError();
|
||||||
//bind the new texture
|
//bind the new texture
|
||||||
openGlState.glBindTexture(GL_TEXTURE_2D, texturePointer);
|
openGlState.glBindTexture(GL45.GL_TEXTURE_2D, texturePointer);
|
||||||
//how are we gonna wrap the texture??
|
//how are we gonna wrap the texture??
|
||||||
this.setWrap(openGlState, GL_TEXTURE_WRAP_S, GL_MIRRORED_REPEAT);
|
this.setWrap(openGlState, GL45.GL_TEXTURE_WRAP_S, GL45.GL_MIRRORED_REPEAT);
|
||||||
this.setWrap(openGlState, GL_TEXTURE_WRAP_T, GL_MIRRORED_REPEAT);
|
this.setWrap(openGlState, GL45.GL_TEXTURE_WRAP_T, GL45.GL_MIRRORED_REPEAT);
|
||||||
//set the border color to black
|
//set the border color to black
|
||||||
this.setBorderColor(openGlState, new float[]{ 0.0f, 0.0f, 0.0f, 1.0f });
|
this.setBorderColor(openGlState, new float[]{ 0.0f, 0.0f, 0.0f, 1.0f });
|
||||||
//set magnification and minification operation sampling strategies
|
//set magnification and minification operation sampling strategies
|
||||||
this.setMinFilter(openGlState, GL_LINEAR);
|
this.setMinFilter(openGlState, GL45.GL_LINEAR);
|
||||||
this.setMagFilter(openGlState, GL_LINEAR);
|
this.setMagFilter(openGlState, GL45.GL_LINEAR);
|
||||||
|
|
||||||
LoggerInterface.loggerRenderer.DEBUG("Create texture data buffers");
|
LoggerInterface.loggerRenderer.DEBUG("Create texture data buffers");
|
||||||
//load the image here
|
//load the image here
|
||||||
@ -199,23 +192,23 @@ public class Texture {
|
|||||||
|
|
||||||
//call if width != height so opengl figures out how to unpack it properly
|
//call if width != height so opengl figures out how to unpack it properly
|
||||||
if(width != height){
|
if(width != height){
|
||||||
glPixelStorei(GL_UNPACK_ALIGNMENT, 1);
|
GL45.glPixelStorei(GL45.GL_UNPACK_ALIGNMENT, 1);
|
||||||
}
|
}
|
||||||
|
|
||||||
LoggerInterface.loggerRenderer.DEBUG("Upload texture buffer");
|
LoggerInterface.loggerRenderer.DEBUG("Upload texture buffer");
|
||||||
//buffer the texture information
|
//buffer the texture information
|
||||||
if(hasTransparency){
|
if(hasTransparency){
|
||||||
this.pixelFormat = GL_RGBA;
|
this.pixelFormat = GL45.GL_RGBA;
|
||||||
this.datatype = GL_UNSIGNED_BYTE;
|
this.datatype = GL45.GL_UNSIGNED_BYTE;
|
||||||
this.glTexImage2D(openGlState, width, height, GL_RGBA, GL_UNSIGNED_BYTE, data);
|
this.glTexImage2D(openGlState, width, height, GL45.GL_RGBA, GL45.GL_UNSIGNED_BYTE, data);
|
||||||
} else {
|
} else {
|
||||||
this.pixelFormat = GL_RGB;
|
this.pixelFormat = GL45.GL_RGB;
|
||||||
this.datatype = GL_UNSIGNED_BYTE;
|
this.datatype = GL45.GL_UNSIGNED_BYTE;
|
||||||
this.glTexImage2D(openGlState, width, height, GL_RGB, GL_UNSIGNED_BYTE, data);
|
this.glTexImage2D(openGlState, width, height, GL45.GL_RGB, GL45.GL_UNSIGNED_BYTE, data);
|
||||||
}
|
}
|
||||||
|
|
||||||
LoggerInterface.loggerRenderer.DEBUG("Generate Mipmap");
|
LoggerInterface.loggerRenderer.DEBUG("Generate Mipmap");
|
||||||
GL40.glGenerateMipmap(GL_TEXTURE_2D);
|
GL45.glGenerateMipmap(GL45.GL_TEXTURE_2D);
|
||||||
Globals.renderingEngine.checkError();
|
Globals.renderingEngine.checkError();
|
||||||
//OPTIONAL free the original image data now that it's on the gpu
|
//OPTIONAL free the original image data now that it's on the gpu
|
||||||
// System.gc();
|
// System.gc();
|
||||||
@ -236,22 +229,22 @@ public class Texture {
|
|||||||
public Texture(OpenGLState openGlState, ByteBuffer buffer, int width, int height){
|
public Texture(OpenGLState openGlState, ByteBuffer buffer, int width, int height){
|
||||||
if(!EngineState.EngineFlags.HEADLESS){
|
if(!EngineState.EngineFlags.HEADLESS){
|
||||||
//generate the texture object on gpu
|
//generate the texture object on gpu
|
||||||
this.texturePointer = GL40.glGenTextures();
|
this.texturePointer = GL45.glGenTextures();
|
||||||
Globals.renderingEngine.checkError();
|
Globals.renderingEngine.checkError();
|
||||||
//bind the new texture
|
//bind the new texture
|
||||||
openGlState.glBindTexture(GL_TEXTURE_2D, texturePointer);
|
openGlState.glBindTexture(GL45.GL_TEXTURE_2D, texturePointer);
|
||||||
//how are we gonna wrap the texture??
|
//how are we gonna wrap the texture??
|
||||||
this.setWrap(openGlState, GL_TEXTURE_WRAP_S, GL_CLAMP_TO_EDGE);
|
this.setWrap(openGlState, GL45.GL_TEXTURE_WRAP_S, GL45.GL_CLAMP_TO_EDGE);
|
||||||
this.setWrap(openGlState, GL_TEXTURE_WRAP_T, GL_CLAMP_TO_EDGE);
|
this.setWrap(openGlState, GL45.GL_TEXTURE_WRAP_T, GL45.GL_CLAMP_TO_EDGE);
|
||||||
//disable mipmap
|
//disable mipmap
|
||||||
this.setMinFilter(openGlState, GL_LINEAR);
|
this.setMinFilter(openGlState, GL45.GL_LINEAR);
|
||||||
//call if width != height so opengl figures out how to unpack it properly
|
//call if width != height so opengl figures out how to unpack it properly
|
||||||
glPixelStorei(GL_UNPACK_ALIGNMENT, 4);
|
GL45.glPixelStorei(GL45.GL_UNPACK_ALIGNMENT, 4);
|
||||||
//GL_RED = 32bit r value
|
//GL_RED = 32bit r value
|
||||||
//buffer the texture information
|
//buffer the texture information
|
||||||
this.pixelFormat = GL_RED;
|
this.pixelFormat = GL45.GL_RED;
|
||||||
this.datatype = GL_FLOAT;
|
this.datatype = GL45.GL_FLOAT;
|
||||||
this.glTexImage2D(openGlState, GL_R32F, width, height, GL_RED, GL_FLOAT, buffer);
|
this.glTexImage2D(openGlState, GL45.GL_R32F, width, height, GL45.GL_RED, GL45.GL_FLOAT, buffer);
|
||||||
//check build status
|
//check build status
|
||||||
String errorMessage = RenderingEngine.getErrorInEnglish(Globals.renderingEngine.getError());
|
String errorMessage = RenderingEngine.getErrorInEnglish(Globals.renderingEngine.getError());
|
||||||
if(errorMessage != null){
|
if(errorMessage != null){
|
||||||
@ -272,23 +265,23 @@ public class Texture {
|
|||||||
if(!EngineState.EngineFlags.HEADLESS){
|
if(!EngineState.EngineFlags.HEADLESS){
|
||||||
rVal = new Texture();
|
rVal = new Texture();
|
||||||
//generate the texture object on gpu
|
//generate the texture object on gpu
|
||||||
rVal.texturePointer = GL40.glGenTextures();
|
rVal.texturePointer = GL45.glGenTextures();
|
||||||
Globals.renderingEngine.checkError();
|
Globals.renderingEngine.checkError();
|
||||||
//bind the new texture
|
//bind the new texture
|
||||||
openGlState.glBindTexture(GL_TEXTURE_2D, rVal.getTexturePointer());
|
openGlState.glBindTexture(GL45.GL_TEXTURE_2D, rVal.getTexturePointer());
|
||||||
//how are we gonna wrap the texture??
|
//how are we gonna wrap the texture??
|
||||||
rVal.setWrap(openGlState, GL_TEXTURE_WRAP_S, GL_CLAMP_TO_EDGE);
|
rVal.setWrap(openGlState, GL45.GL_TEXTURE_WRAP_S, GL45.GL_CLAMP_TO_EDGE);
|
||||||
rVal.setWrap(openGlState, GL_TEXTURE_WRAP_T, GL_CLAMP_TO_EDGE);
|
rVal.setWrap(openGlState, GL45.GL_TEXTURE_WRAP_T, GL45.GL_CLAMP_TO_EDGE);
|
||||||
//disable mipmap
|
//disable mipmap
|
||||||
rVal.setMinFilter(openGlState, GL_LINEAR);
|
rVal.setMinFilter(openGlState, GL45.GL_LINEAR);
|
||||||
rVal.setMagFilter(openGlState, GL_LINEAR);
|
rVal.setMagFilter(openGlState, GL45.GL_LINEAR);
|
||||||
//call if width != height so opengl figures out how to unpack it properly
|
//call if width != height so opengl figures out how to unpack it properly
|
||||||
glPixelStorei(GL_UNPACK_ALIGNMENT, 4);
|
GL45.glPixelStorei(GL45.GL_UNPACK_ALIGNMENT, 4);
|
||||||
//GL_RED = 32bit r value
|
//GL_RED = 32bit r value
|
||||||
//buffer the texture information
|
//buffer the texture information
|
||||||
rVal.pixelFormat = GL_RED;
|
rVal.pixelFormat = GL45.GL_RED;
|
||||||
rVal.datatype = GL_FLOAT;
|
rVal.datatype = GL45.GL_FLOAT;
|
||||||
rVal.glTexImage2D(openGlState, GL40.GL_RED, width, height, GL40.GL_RED, GL40.GL_UNSIGNED_BYTE, buffer);
|
rVal.glTexImage2D(openGlState, GL45.GL_RED, width, height, GL45.GL_RED, GL45.GL_UNSIGNED_BYTE, buffer);
|
||||||
//check build status
|
//check build status
|
||||||
String errorMessage = RenderingEngine.getErrorInEnglish(Globals.renderingEngine.getError());
|
String errorMessage = RenderingEngine.getErrorInEnglish(Globals.renderingEngine.getError());
|
||||||
if(errorMessage != null){
|
if(errorMessage != null){
|
||||||
@ -311,7 +304,7 @@ public class Texture {
|
|||||||
}
|
}
|
||||||
// openGLState.glActiveTexture(GL_TEXTURE0);
|
// openGLState.glActiveTexture(GL_TEXTURE0);
|
||||||
// openGLState.glBindTexture(GL_TEXTURE_2D, texturePointer);
|
// openGLState.glBindTexture(GL_TEXTURE_2D, texturePointer);
|
||||||
openGLState.glBindTextureUnit(GL_TEXTURE0,this.texturePointer,GL_TEXTURE_2D);
|
openGLState.glBindTextureUnit(GL45.GL_TEXTURE0,this.texturePointer,GL45.GL_TEXTURE_2D);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -326,7 +319,7 @@ public class Texture {
|
|||||||
if(texturePointer == 0){
|
if(texturePointer == 0){
|
||||||
LoggerInterface.loggerRenderer.ERROR(new IllegalStateException("Trying to bind texture object that has texturepointer of 0"));
|
LoggerInterface.loggerRenderer.ERROR(new IllegalStateException("Trying to bind texture object that has texturepointer of 0"));
|
||||||
}
|
}
|
||||||
openGLState.glBindTextureUnit(GL_TEXTURE0 + attrib_val,this.texturePointer,GL_TEXTURE_2D);
|
openGLState.glBindTextureUnit(GL45.GL_TEXTURE0 + attrib_val,this.texturePointer,GL45.GL_TEXTURE_2D);
|
||||||
Globals.renderingEngine.checkError();
|
Globals.renderingEngine.checkError();
|
||||||
// openGLState.glActiveTexture(GL_TEXTURE0 + attrib_val);
|
// openGLState.glActiveTexture(GL_TEXTURE0 + attrib_val);
|
||||||
// openGLState.glBindTexture(GL_TEXTURE_2D, texturePointer);
|
// openGLState.glBindTexture(GL_TEXTURE_2D, texturePointer);
|
||||||
@ -363,9 +356,9 @@ public class Texture {
|
|||||||
*/
|
*/
|
||||||
public void setWrap(OpenGLState openGlState, int wrapDir, int wrapType){
|
public void setWrap(OpenGLState openGlState, int wrapDir, int wrapType){
|
||||||
//TODO: store wrap type for the direction in this object
|
//TODO: store wrap type for the direction in this object
|
||||||
openGlState.glBindTexture(GL_TEXTURE_2D,texturePointer);
|
openGlState.glBindTexture(GL45.GL_TEXTURE_2D,texturePointer);
|
||||||
Globals.renderingEngine.checkError();
|
Globals.renderingEngine.checkError();
|
||||||
glTexParameteri(GL_TEXTURE_2D, wrapDir, wrapType);
|
GL45.glTexParameteri(GL45.GL_TEXTURE_2D, wrapDir, wrapType);
|
||||||
Globals.renderingEngine.checkError();
|
Globals.renderingEngine.checkError();
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -375,9 +368,9 @@ public class Texture {
|
|||||||
*/
|
*/
|
||||||
public void setBorderColor(OpenGLState openGlState, float borderColor[]){
|
public void setBorderColor(OpenGLState openGlState, float borderColor[]){
|
||||||
this.borderColor = borderColor;
|
this.borderColor = borderColor;
|
||||||
openGlState.glBindTexture(GL_TEXTURE_2D,texturePointer);
|
openGlState.glBindTexture(GL45.GL_TEXTURE_2D,texturePointer);
|
||||||
Globals.renderingEngine.checkError();
|
Globals.renderingEngine.checkError();
|
||||||
glTexParameterfv(GL_TEXTURE_2D, GL_TEXTURE_BORDER_COLOR, borderColor);
|
GL45.glTexParameterfv(GL45.GL_TEXTURE_2D, GL45.GL_TEXTURE_BORDER_COLOR, borderColor);
|
||||||
Globals.renderingEngine.checkError();
|
Globals.renderingEngine.checkError();
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -387,9 +380,9 @@ public class Texture {
|
|||||||
*/
|
*/
|
||||||
public void setMinFilter(OpenGLState openGlState, int minFilter){
|
public void setMinFilter(OpenGLState openGlState, int minFilter){
|
||||||
this.minFilter = minFilter;
|
this.minFilter = minFilter;
|
||||||
openGlState.glBindTexture(GL_TEXTURE_2D,texturePointer);
|
openGlState.glBindTexture(GL45.GL_TEXTURE_2D,texturePointer);
|
||||||
Globals.renderingEngine.checkError();
|
Globals.renderingEngine.checkError();
|
||||||
glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, minFilter);
|
GL45.glTexParameteri(GL45.GL_TEXTURE_2D, GL45.GL_TEXTURE_MIN_FILTER, minFilter);
|
||||||
Globals.renderingEngine.checkError();
|
Globals.renderingEngine.checkError();
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -399,9 +392,9 @@ public class Texture {
|
|||||||
*/
|
*/
|
||||||
public void setMagFilter(OpenGLState openGlState, int maxFilter){
|
public void setMagFilter(OpenGLState openGlState, int maxFilter){
|
||||||
this.maxFilter = maxFilter;
|
this.maxFilter = maxFilter;
|
||||||
openGlState.glBindTexture(GL_TEXTURE_2D,texturePointer);
|
openGlState.glBindTexture(GL45.GL_TEXTURE_2D,texturePointer);
|
||||||
Globals.renderingEngine.checkError();
|
Globals.renderingEngine.checkError();
|
||||||
glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, maxFilter);
|
GL45.glTexParameteri(GL45.GL_TEXTURE_2D, GL45.GL_TEXTURE_MAG_FILTER, maxFilter);
|
||||||
Globals.renderingEngine.checkError();
|
Globals.renderingEngine.checkError();
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -432,9 +425,9 @@ public class Texture {
|
|||||||
//static values going into call
|
//static values going into call
|
||||||
int level = 0;
|
int level = 0;
|
||||||
int border = 0; //this must be 0 according to docs
|
int border = 0; //this must be 0 according to docs
|
||||||
openGLState.glBindTexture(GL_TEXTURE_2D,texturePointer);
|
openGLState.glBindTexture(GL45.GL_TEXTURE_2D,texturePointer);
|
||||||
Globals.renderingEngine.checkError();
|
Globals.renderingEngine.checkError();
|
||||||
GL40.glTexImage2D(GL_TEXTURE_2D, level, internalFormat, width, height, border, format, datatype, MemoryUtil.NULL);
|
GL45.glTexImage2D(GL45.GL_TEXTURE_2D, level, internalFormat, width, height, border, format, datatype, MemoryUtil.NULL);
|
||||||
Globals.renderingEngine.checkError();
|
Globals.renderingEngine.checkError();
|
||||||
int[] storage = new int[1];
|
int[] storage = new int[1];
|
||||||
int discoveredWidth = 0;
|
int discoveredWidth = 0;
|
||||||
@ -493,9 +486,9 @@ public class Texture {
|
|||||||
int level = 0;
|
int level = 0;
|
||||||
int border = 0; //this must be 0 according to docs
|
int border = 0; //this must be 0 according to docs
|
||||||
int internalFormat = format;
|
int internalFormat = format;
|
||||||
openGLState.glBindTexture(GL_TEXTURE_2D,texturePointer);
|
openGLState.glBindTexture(GL45.GL_TEXTURE_2D,texturePointer);
|
||||||
Globals.renderingEngine.checkError();
|
Globals.renderingEngine.checkError();
|
||||||
GL40.glTexImage2D(GL_TEXTURE_2D, level, internalFormat, width, height, border, format, datatype, data);
|
GL45.glTexImage2D(GL45.GL_TEXTURE_2D, level, internalFormat, width, height, border, format, datatype, data);
|
||||||
Globals.renderingEngine.checkError();
|
Globals.renderingEngine.checkError();
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -522,9 +515,9 @@ public class Texture {
|
|||||||
//static values going into call
|
//static values going into call
|
||||||
int level = 0;
|
int level = 0;
|
||||||
int border = 0; //this must be 0 according to docs
|
int border = 0; //this must be 0 according to docs
|
||||||
openGLState.glBindTexture(GL_TEXTURE_2D,texturePointer);
|
openGLState.glBindTexture(GL45.GL_TEXTURE_2D,texturePointer);
|
||||||
Globals.renderingEngine.checkError();
|
Globals.renderingEngine.checkError();
|
||||||
GL40.glTexImage2D(GL_TEXTURE_2D, level, internalFormat, width, height, border, format, datatype, data);
|
GL45.glTexImage2D(GL45.GL_TEXTURE_2D, level, internalFormat, width, height, border, format, datatype, data);
|
||||||
Globals.renderingEngine.checkError();
|
Globals.renderingEngine.checkError();
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -592,9 +585,9 @@ public class Texture {
|
|||||||
//try bind approach
|
//try bind approach
|
||||||
this.bind(state);
|
this.bind(state);
|
||||||
int errorCode = Globals.renderingEngine.getError();
|
int errorCode = Globals.renderingEngine.getError();
|
||||||
if(errorCode != GL40.GL_NO_ERROR){
|
if(errorCode != GL45.GL_NO_ERROR){
|
||||||
switch(errorCode){
|
switch(errorCode){
|
||||||
case GL40.GL_INVALID_VALUE: {
|
case GL45.GL_INVALID_VALUE: {
|
||||||
if(this.width < 0){
|
if(this.width < 0){
|
||||||
LoggerInterface.loggerRenderer.ERROR("Texture has width less than 0", new IllegalStateException("Texture has width less than 0"));
|
LoggerInterface.loggerRenderer.ERROR("Texture has width less than 0", new IllegalStateException("Texture has width less than 0"));
|
||||||
}
|
}
|
||||||
@ -602,7 +595,7 @@ public class Texture {
|
|||||||
LoggerInterface.loggerRenderer.ERROR("Texture is greater width than environment allows", new IllegalStateException("Texture is greater width than environment allows"));
|
LoggerInterface.loggerRenderer.ERROR("Texture is greater width than environment allows", new IllegalStateException("Texture is greater width than environment allows"));
|
||||||
}
|
}
|
||||||
} break;
|
} break;
|
||||||
case GL40.GL_INVALID_ENUM: {
|
case GL45.GL_INVALID_ENUM: {
|
||||||
|
|
||||||
} break;
|
} break;
|
||||||
default: {
|
default: {
|
||||||
@ -612,7 +605,7 @@ public class Texture {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
//try dedicated approach
|
//try dedicated approach
|
||||||
boolean isTexture = GL40.glIsTexture(this.texturePointer);
|
boolean isTexture = GL45.glIsTexture(this.texturePointer);
|
||||||
if(!isTexture){
|
if(!isTexture){
|
||||||
String message = "Texture is not complete!";
|
String message = "Texture is not complete!";
|
||||||
LoggerInterface.loggerRenderer.ERROR(new IllegalStateException(message));
|
LoggerInterface.loggerRenderer.ERROR(new IllegalStateException(message));
|
||||||
@ -623,7 +616,7 @@ public class Texture {
|
|||||||
* Frees the texture
|
* Frees the texture
|
||||||
*/
|
*/
|
||||||
public void free(){
|
public void free(){
|
||||||
GL40.glDeleteTextures(this.texturePointer);
|
GL45.glDeleteTextures(this.texturePointer);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user