public QuadCore(String vertShader, String fragShader) {
super(vertShader, fragShader);
uScreenSize = prog.getUniform2f("u_ScreenSize");
uData = prog.getUniform4fv("u_Data");
aVertex = prog.getAttrib("a_Vertex", VERTEX_SIZE, GL20.GL_SHORT);
vertices = ctx.createShortBuffer(maxQuads*VERTICES_PER_QUAD*VERTEX_SIZE);
elements = ctx.createShortBuffer(maxQuads*ELEMENTS_PER_QUAD);
for (int ii = 0; ii < maxQuads; ii++) {
vertices.add(0, 0).add(ii);
vertices.add(1, 0).add(ii);
vertices.add(0, 1).add(ii);
vertices.add(1, 1).add(ii);
int base = ii * VERTICES_PER_QUAD;
elements.add(base+0).add(base+1).add(base+2);
elements.add(base+1).add(base+3).add(base+2);
}
data = ctx.createFloatBuffer(maxQuads*vec4sPerQuad()*4);
vertices.bind(GL20.GL_ARRAY_BUFFER);
vertices.send(GL20.GL_ARRAY_BUFFER, GL20.GL_STATIC_DRAW);
elements.bind(GL20.GL_ELEMENT_ARRAY_BUFFER);
elements.send(GL20.GL_ELEMENT_ARRAY_BUFFER, GL20.GL_STATIC_DRAW);
}