summaryrefslogtreecommitdiffstats
path: root/src/net/java/joglutils/msg/elements/GLTextureElement.java
diff options
context:
space:
mode:
Diffstat (limited to 'src/net/java/joglutils/msg/elements/GLTextureElement.java')
-rw-r--r--src/net/java/joglutils/msg/elements/GLTextureElement.java63
1 files changed, 32 insertions, 31 deletions
diff --git a/src/net/java/joglutils/msg/elements/GLTextureElement.java b/src/net/java/joglutils/msg/elements/GLTextureElement.java
index 7f903c3..e5259bc 100644
--- a/src/net/java/joglutils/msg/elements/GLTextureElement.java
+++ b/src/net/java/joglutils/msg/elements/GLTextureElement.java
@@ -1,21 +1,21 @@
/*
* Copyright (c) 2007 Sun Microsystems, Inc. All Rights Reserved.
- *
+ *
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions are
* met:
- *
+ *
* - Redistribution of source code must retain the above copyright
* notice, this list of conditions and the following disclaimer.
- *
+ *
* - Redistribution in binary form must reproduce the above copyright
* notice, this list of conditions and the following disclaimer in the
* documentation and/or other materials provided with the distribution.
- *
+ *
* Neither the name of Sun Microsystems, Inc. or the names of
* contributors may be used to endorse or promote products derived from
* this software without specific prior written permission.
- *
+ *
* This software is provided "AS IS," without a warranty of any kind. ALL
* EXPRESS OR IMPLIED CONDITIONS, REPRESENTATIONS AND WARRANTIES,
* INCLUDING ANY IMPLIED WARRANTY OF MERCHANTABILITY, FITNESS FOR A
@@ -28,22 +28,23 @@
* DAMAGES, HOWEVER CAUSED AND REGARDLESS OF THE THEORY OF LIABILITY,
* ARISING OUT OF THE USE OF OR INABILITY TO USE THIS SOFTWARE, EVEN IF
* SUN HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES.
- *
+ *
* You acknowledge that this software is not designed or intended for use
* in the design, construction, operation or maintenance of any nuclear
* facility.
- *
+ *
*/
package net.java.joglutils.msg.elements;
-import java.nio.*;
-import javax.media.opengl.*;
-import javax.media.opengl.glu.*;
-import com.sun.opengl.util.texture.*;
+import com.jogamp.opengl.GL;
+import com.jogamp.opengl.GL2;
+import com.jogamp.opengl.GL2ES1;
+import com.jogamp.opengl.glu.GLU;
+import com.jogamp.opengl.util.texture.Texture;
-import net.java.joglutils.msg.misc.*;
-import net.java.joglutils.msg.nodes.*;
+import net.java.joglutils.msg.misc.State;
+import net.java.joglutils.msg.nodes.Texture2;
/** Represents the current texture, which is applied to any drawn
geometry if texture coordinates are also supplied, and performs
@@ -54,54 +55,54 @@ public class GLTextureElement extends TextureElement {
public Element newInstance() {
return new GLTextureElement();
}
- public static GLTextureElement getInstance(State state) {
+ public static GLTextureElement getInstance(final State state) {
return (GLTextureElement) TextureElement.getInstance(state);
}
- public static void enable(State defaultState) {
- Element tmp = new GLTextureElement();
+ public static void enable(final State defaultState) {
+ final Element tmp = new GLTextureElement();
defaultState.setElement(tmp.getStateIndex(), tmp);
}
- public void pop(State state, Element previousTopElement) {
+ public void pop(final State state, final Element previousTopElement) {
// Put things back the way they were
switchTextures(((GLTextureElement) previousTopElement).texture, texture);
}
- public void setElt(Texture2 texture) {
- Texture2 prev = this.texture;
+ public void setElt(final Texture2 texture) {
+ final Texture2 prev = this.texture;
super.setElt(texture);
switchTextures(prev, texture);
}
- private void switchTextures(Texture2 prev, Texture2 texture) {
- GL2 gl = GLU.getCurrentGL().getGL2();
+ private void switchTextures(final Texture2 prev, final Texture2 texture) {
+ final GL2 gl = GLU.getCurrentGL().getGL2();
Texture prevTexture = null;
Texture curTexture = null;
int texEnvMode = 0;
if (prev != null) {
- prevTexture = prev.getTexture();
+ prevTexture = prev.getTexture(gl);
}
if (texture != null) {
- curTexture = texture.getTexture();
+ curTexture = texture.getTexture(gl);
texEnvMode = texture.getTexEnvMode();
}
// FIXME: should be smarter about this; if the target is the same
// for the previous and current textures, just bind the new one
if (prevTexture != null) {
- prevTexture.disable();
+ prevTexture.disable(gl);
}
if (curTexture != null) {
- curTexture.enable();
- curTexture.bind();
+ curTexture.enable(gl);
+ curTexture.bind(gl);
int glEnvMode = 0;
switch (texEnvMode) {
- case Texture2.MODULATE: glEnvMode = GL2.GL_MODULATE; break;
- case Texture2.DECAL: glEnvMode = GL2.GL_DECAL; break;
- case Texture2.BLEND: glEnvMode = GL2.GL_BLEND; break;
- case Texture2.REPLACE: glEnvMode = GL2.GL_REPLACE; break;
+ case Texture2.MODULATE: glEnvMode = GL2ES1.GL_MODULATE; break;
+ case Texture2.DECAL: glEnvMode = GL2ES1.GL_DECAL; break;
+ case Texture2.BLEND: glEnvMode = GL.GL_BLEND; break;
+ case Texture2.REPLACE: glEnvMode = GL.GL_REPLACE; break;
}
- gl.glTexEnvi(GL2.GL_TEXTURE_ENV, GL2.GL_TEXTURE_ENV_MODE, glEnvMode);
+ gl.glTexEnvi(GL2ES1.GL_TEXTURE_ENV, GL2ES1.GL_TEXTURE_ENV_MODE, glEnvMode);
}
}
}