Engine : added texture type hint to the texture key

git-svn-id: https://jmonkeyengine.googlecode.com/svn/trunk@8012 75d07b2b-3a1a-0410-a2c5-0572b91ccdca
3.0
rem..om 13 years ago
parent c77f1c6cfb
commit 70af91d981
  1. 9
      engine/src/core-plugins/com/jme3/texture/plugins/DDSLoader.java
  2. 11
      engine/src/core/com/jme3/asset/TextureKey.java

@ -36,6 +36,7 @@ import com.jme3.asset.AssetLoader;
import com.jme3.asset.TextureKey;
import com.jme3.texture.Image;
import com.jme3.texture.Image.Format;
import com.jme3.texture.Texture.Type;
import com.jme3.util.BufferUtils;
import com.jme3.util.LittleEndien;
import java.io.DataInput;
@ -124,7 +125,11 @@ public class DDSLoader implements AssetLoader {
InputStream stream = info.openStream();
in = new LittleEndien(stream);
loadHeader();
if (texture3D) {
((TextureKey) info.getKey()).setTextureTypeHint(Type.ThreeDimensional);
} else if (depth > 1) {
((TextureKey) info.getKey()).setTextureTypeHint(Type.CubeMap);
}
ArrayList<ByteBuffer> data = readData(((TextureKey) info.getKey()).isFlipY());
stream.close();
return new Image(pixelFormat, width, height, depth, data, sizes);
@ -189,7 +194,7 @@ public class DDSLoader implements AssetLoader {
caps1 = in.readInt();
caps2 = in.readInt();
in.skipBytes(12);
texture3D = false;
if (!directx10) {
if (!is(caps1, DDSCAPS_TEXTURE)) {

@ -37,6 +37,7 @@ import com.jme3.export.InputCapsule;
import com.jme3.export.OutputCapsule;
import com.jme3.texture.Image;
import com.jme3.texture.Texture;
import com.jme3.texture.Texture.Type;
import com.jme3.texture.Texture2D;
import com.jme3.texture.Texture3D;
import com.jme3.texture.TextureCubeMap;
@ -50,6 +51,7 @@ public class TextureKey extends AssetKey<Texture> {
private boolean asCube;
private boolean asTexture3D;
private int anisotropy;
private Texture.Type textureTypeHint=Texture.Type.TwoDimensional;
public TextureKey(String name, boolean flipY) {
super(name);
@ -162,6 +164,15 @@ public class TextureKey extends AssetKey<Texture> {
return super.equals(other) && isFlipY() == ((TextureKey) other).isFlipY();
}
public Type getTextureTypeHint() {
return textureTypeHint;
}
public void setTextureTypeHint(Type textureTypeHint) {
this.textureTypeHint = textureTypeHint;
}
public void write(JmeExporter ex) throws IOException {
super.write(ex);
OutputCapsule oc = ex.getCapsule(this);

Loading…
Cancel
Save