package javaforce.gl;
/**
* UV Map - texture coords (see GLObject)
*
* @author pquiring
*/
import javaforce.JFArrayFloat;
import static javaforce.gl.GL.*;
public class GLUVMap {
public JFArrayFloat uvl; //texture coords list (UV)
public String name;
public int textureIndex = -1;
public boolean texloaded = false;
public int uvb = -1; //GL buffer
public int idx; //map index
public GLUVMap(int idx) {
uvl = new JFArrayFloat();
this.idx = idx;
if (idx > 1) {
System.out.println("GLUVMap:Warning:More than 2 UVMaps not supported");
}
}
public void addText(float uv[]) {
uvl.append(uv);
}
public void copyBuffers() {
int ids[] = new int[1];
if (uvb == -1) {
glGenBuffers(1, ids);
uvb = ids[0];
}
glBindBuffer(GL.GL_ARRAY_BUFFER, uvb);
glBufferData(GL.GL_ARRAY_BUFFER, uvl.size() * 4, uvl.toArray(), GL.GL_STATIC_DRAW);
}
public void bindBuffers(GLScene scene) {
glBindBuffer(GL.GL_ARRAY_BUFFER, uvb);
glVertexAttribPointer(scene.tca[idx], 2, GL.GL_FLOAT, GL.GL_FALSE, 0, 0);
}
}