Start of the texture rewrite
This commit is contained in:
parent
e1d827223d
commit
7a87adb695
|
@ -2,6 +2,8 @@ package speiger.src.coreengine.rendering.textures.base;
|
|||
|
||||
import org.lwjgl.opengl.GL11;
|
||||
|
||||
import speiger.src.coreengine.rendering.utils.GLStateTracker;
|
||||
|
||||
public abstract class BaseTexture implements ITexture {
|
||||
protected int id;
|
||||
|
||||
|
@ -11,66 +13,26 @@ public abstract class BaseTexture implements ITexture {
|
|||
|
||||
protected BaseTexture(int id) {
|
||||
this.id = id;
|
||||
track();
|
||||
}
|
||||
|
||||
protected void track() {
|
||||
GLStateTracker.TEXTURE_TRACKER.registerTexture(this);
|
||||
}
|
||||
|
||||
@Override
|
||||
public int id() {
|
||||
// TODO Auto-generated method stub
|
||||
return 0;
|
||||
return id;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void bind() {
|
||||
// TODO Auto-generated method stub
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
public void reload() {
|
||||
// TODO Auto-generated method stub
|
||||
|
||||
public void bind(int unit) {
|
||||
GLStateTracker.TEXTURES.bind(unit, id);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void delete() {
|
||||
// TODO Auto-generated method stub
|
||||
|
||||
GL11.glDeleteTextures(id);
|
||||
GLStateTracker.TEXTURE_TRACKER.deleteTexture(this);
|
||||
}
|
||||
|
||||
@Override
|
||||
public int width() {
|
||||
// TODO Auto-generated method stub
|
||||
return 0;
|
||||
}
|
||||
|
||||
@Override
|
||||
public int height() {
|
||||
// TODO Auto-generated method stub
|
||||
return 0;
|
||||
}
|
||||
|
||||
@Override
|
||||
public float minU() {
|
||||
// TODO Auto-generated method stub
|
||||
return 0;
|
||||
}
|
||||
|
||||
@Override
|
||||
public float minV() {
|
||||
// TODO Auto-generated method stub
|
||||
return 0;
|
||||
}
|
||||
|
||||
@Override
|
||||
public float maxU() {
|
||||
// TODO Auto-generated method stub
|
||||
return 0;
|
||||
}
|
||||
|
||||
@Override
|
||||
public float maxV() {
|
||||
// TODO Auto-generated method stub
|
||||
return 0;
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
@ -2,15 +2,16 @@ package speiger.src.coreengine.rendering.textures.base;
|
|||
|
||||
public interface ITexture {
|
||||
public int id();
|
||||
public void bind();
|
||||
public default void bind() { bind(0); }
|
||||
public void bind(int unit);
|
||||
public void reload();
|
||||
public void delete();
|
||||
|
||||
public int width();
|
||||
public int height();
|
||||
|
||||
public float minU();
|
||||
public float minV();
|
||||
public float maxU();
|
||||
public float maxV();
|
||||
public default float minU() { return 0F; }
|
||||
public default float minV() { return 0F; }
|
||||
public default float maxU() { return 1F; }
|
||||
public default float maxV() { return 1F; }
|
||||
}
|
||||
|
|
|
@ -0,0 +1,9 @@
|
|||
package speiger.src.coreengine.rendering.textures.base;
|
||||
|
||||
public class TextureMetadata {
|
||||
int textureType;
|
||||
int dataFormat;
|
||||
int textureFormat;
|
||||
|
||||
|
||||
}
|
|
@ -35,7 +35,7 @@ public class TextureTracker implements ISimpleRealodableAsset, IManagedAsset {
|
|||
|
||||
@Override
|
||||
public void onAssetsReloaded(IAssetProvider provider) {
|
||||
textures.filter(((Predicate<ITexture>)reloadable::contains).negate()).forEach(ITexture::delete);
|
||||
textures.filter(Predicate.not(reloadable::contains)).forEach(ITexture::delete);
|
||||
textures.clear();
|
||||
reloadable.peek(ITexture::reload).forEach(textures::add);
|
||||
}
|
||||
|
|
|
@ -0,0 +1,34 @@
|
|||
package speiger.src.coreengine.rendering.textures.simple;
|
||||
|
||||
import org.lwjgl.stb.STBImage;
|
||||
import org.lwjgl.system.MemoryUtil;
|
||||
|
||||
import speiger.src.coreengine.rendering.textures.base.BaseTexture;
|
||||
|
||||
public class SimpleTexture extends BaseTexture {
|
||||
int width;
|
||||
int height;
|
||||
long imageData;
|
||||
|
||||
@Override
|
||||
public void reload() {
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
public void delete() {
|
||||
super.delete();
|
||||
if(imageData == 0L) return;
|
||||
STBImage.nstbi_image_free(imageData);
|
||||
imageData = 0L;
|
||||
}
|
||||
|
||||
@Override
|
||||
public int width() { return width; }
|
||||
@Override
|
||||
public int height() { return width; }
|
||||
|
||||
private void loadTexture() {
|
||||
|
||||
}
|
||||
}
|
|
@ -0,0 +1,5 @@
|
|||
package speiger.src.coreengine.rendering.utils.values;
|
||||
|
||||
public enum GLTextureType {
|
||||
|
||||
}
|
Loading…
Reference in New Issue