|
|
|
@ -18,7 +18,9 @@ import com.jme3.texture.Texture; |
|
|
|
|
import java.awt.Component; |
|
|
|
|
import java.awt.Graphics2D; |
|
|
|
|
import java.awt.image.BufferedImage; |
|
|
|
|
import java.util.concurrent.ScheduledThreadPoolExecutor; |
|
|
|
|
import javax.swing.Icon; |
|
|
|
|
import javax.swing.SwingUtilities; |
|
|
|
|
import jme3tools.converters.ImageToAwt; |
|
|
|
|
import org.openide.util.ImageUtilities; |
|
|
|
|
|
|
|
|
@ -34,6 +36,7 @@ public class TexturePanel extends MaterialPropertyWidget { |
|
|
|
|
private boolean repeat = false; |
|
|
|
|
private String textureName = null; |
|
|
|
|
private DDSPreview ddsPreview; |
|
|
|
|
private final ScheduledThreadPoolExecutor exec = new ScheduledThreadPoolExecutor(1); |
|
|
|
|
|
|
|
|
|
/** Creates new form SelectionPanel */ |
|
|
|
|
public TexturePanel(ProjectAssetManager manager) { |
|
|
|
@ -44,17 +47,26 @@ public class TexturePanel extends MaterialPropertyWidget { |
|
|
|
|
|
|
|
|
|
private void displayPreview() { |
|
|
|
|
if (!"".equals(textureName)) { |
|
|
|
|
Texture tex = manager.loadTexture(textureName); |
|
|
|
|
Icon newicon = null; |
|
|
|
|
if (textureName.toLowerCase().endsWith(".dds")) { |
|
|
|
|
if (ddsPreview == null) { |
|
|
|
|
ddsPreview = new DDSPreview(manager); |
|
|
|
|
exec.execute(new Runnable() { |
|
|
|
|
|
|
|
|
|
public void run() { |
|
|
|
|
|
|
|
|
|
Texture tex = manager.loadTexture(textureName); |
|
|
|
|
if (textureName.toLowerCase().endsWith(".dds")) { |
|
|
|
|
if (ddsPreview == null) { |
|
|
|
|
ddsPreview = new DDSPreview(manager); |
|
|
|
|
} |
|
|
|
|
ddsPreview.requestPreview(textureName, "", 80, 80, texturePreview, null); |
|
|
|
|
} else { |
|
|
|
|
final Icon newicon = ImageUtilities.image2Icon(resizeImage(ImageToAwt.convert(tex.getImage(), false, true, 0))); |
|
|
|
|
SwingUtilities.invokeLater(new Runnable() { |
|
|
|
|
public void run() { |
|
|
|
|
texturePreview.setIcon(newicon); |
|
|
|
|
} |
|
|
|
|
}); |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
ddsPreview.requestPreview(textureName, "", 80, 80, texturePreview, null); |
|
|
|
|
} else { |
|
|
|
|
newicon = ImageUtilities.image2Icon(resizeImage(ImageToAwt.convert(tex.getImage(), false, true, 0))); |
|
|
|
|
} |
|
|
|
|
texturePreview.setIcon(newicon); |
|
|
|
|
}); |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
|
|
|
|
@ -302,6 +314,7 @@ public class TexturePanel extends MaterialPropertyWidget { |
|
|
|
|
if (ddsPreview != null) { |
|
|
|
|
ddsPreview.cleanUp(); |
|
|
|
|
} |
|
|
|
|
exec.shutdownNow(); |
|
|
|
|
} |
|
|
|
|
// Variables declaration - do not modify//GEN-BEGIN:variables
|
|
|
|
|
private javax.swing.JButton jButton1; |
|
|
|
|