/**
* Copyright 2008 - 2011
*
* Licensed under the Apache License, Version 2.0 (the "License"); you may not
* use this file except in compliance with the License. You may obtain a copy of
* the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
* WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
* License for the specific language governing permissions and limitations under
* the License.
*
* @project loon
* @author cping
* @email:javachenpeng@yahoo.com
* @version 0.1
*/
package loon;
import java.nio.Buffer;
import java.nio.ByteBuffer;
import java.nio.DoubleBuffer;
import java.nio.FloatBuffer;
import java.nio.IntBuffer;
import java.nio.ShortBuffer;
import org.lwjgl.opengl.ARBVertexBufferObject;
import org.lwjgl.opengl.GL11;
import org.lwjgl.opengl.GL14;
import org.lwjgl.opengl.GL15;
public class JavaSEGL11 extends JavaSEGL10 implements loon.core.graphics.opengl.GL11 {
public JavaSEGL11() {
super();
}
public void glBindBuffer(int target, int buffer) {
ARBVertexBufferObject.glBindBufferARB(target, buffer);
}
public void glBufferData(int target, int size, Buffer data, int usage) {
if (data instanceof ByteBuffer)
GL15.glBufferData(target, (ByteBuffer) data, usage);
else if (data instanceof IntBuffer)
GL15.glBufferData(target, (IntBuffer) data, usage);
else if (data instanceof FloatBuffer)
GL15.glBufferData(target, (FloatBuffer) data, usage);
else if (data instanceof DoubleBuffer)
GL15.glBufferData(target, (DoubleBuffer) data, usage);
else if (data instanceof ShortBuffer)
GL15.glBufferData(target, (ShortBuffer) data, usage);
else if (data == null)
GL15.glBufferData(target, size, usage);
}
public void glBufferSubData(int target, int offset, int size, Buffer data) {
if (data instanceof ByteBuffer)
GL15.glBufferSubData(target, offset, (ByteBuffer) data);
else if (data instanceof IntBuffer)
GL15.glBufferSubData(target, offset, (IntBuffer) data);
else if (data instanceof FloatBuffer)
GL15.glBufferSubData(target, offset, (FloatBuffer) data);
else if (data instanceof DoubleBuffer)
GL15.glBufferSubData(target, offset, (DoubleBuffer) data);
else if (data instanceof ShortBuffer) //
GL15.glBufferSubData(target, offset, (ShortBuffer) data);
}
public void glClipPlanef(int plane, float[] equation, int offset) {
throw new UnsupportedOperationException("not implemented");
}
public void glClipPlanef(int plane, FloatBuffer equation) {
throw new UnsupportedOperationException("not implemented");
}
public void glColor4ub(byte red, byte green, byte blue, byte alpha) {
throw new UnsupportedOperationException("not implemented");
}
public void glDeleteBuffers(int n, int[] buffers, int offset) {
GL15.glDeleteBuffers(toBuffer(n, buffers, offset));
}
public void glDeleteBuffers(int n, IntBuffer buffers) {
GL15.glDeleteBuffers(buffers);
}
public void glGenBuffers(int n, int[] buffers, int offset) {
for (int i = offset; i < offset + n; i++)
buffers[offset] = GL15.glGenBuffers();
}
public void glGenBuffers(int n, IntBuffer buffers) {
GL15.glGenBuffers(buffers);
}
public void glGetBooleanv(int pname, boolean[] params, int offset) {
throw new UnsupportedOperationException("not implemented");
}
public void glGetBooleanv(int pname, IntBuffer params) {
throw new UnsupportedOperationException("not implemented");
}
public void glGetBufferParameteriv(int target, int pname, int[] params,
int offset) {
throw new UnsupportedOperationException("not implemented");
}
public void glGetBufferParameteriv(int target, int pname, IntBuffer params) {
GL15.glGetBufferParameter(target, pname, params);
}
public void glGetClipPlanef(int pname, float[] eqn, int offset) {
throw new UnsupportedOperationException("not implemented");
}
public void glGetClipPlanef(int pname, FloatBuffer eqn) {
throw new UnsupportedOperationException("not implemented");
}
public void glGetFixedv(int pname, int[] params, int offset) {
throw new UnsupportedOperationException("not implemented");
}
public void glGetFixedv(int pname, IntBuffer params) {
throw new UnsupportedOperationException("not implemented");
}
public void glGetFloatv(int pname, float[] params, int offset) {
throw new UnsupportedOperationException("not implemented");
}
public void glGetFloatv(int pname, FloatBuffer params) {
GL11.glGetFloat(pname, params);
}
public void glGetLightfv(int light, int pname, float[] params, int offset) {
throw new UnsupportedOperationException("not implemented");
}
public void glGetLightfv(int light, int pname, FloatBuffer params) {
GL11.glGetLight(light, pname, params);
}
public void glGetLightxv(int light, int pname, int[] params, int offset) {
throw new UnsupportedOperationException("not implemented");
}
public void glGetLightxv(int light, int pname, IntBuffer params) {
throw new UnsupportedOperationException("not implemented");
}
public void glGetMaterialfv(int face, int pname, float[] params, int offset) {
throw new UnsupportedOperationException("not implemented");
}
public void glGetMaterialfv(int face, int pname, FloatBuffer params) {
GL11.glGetMaterial(face, pname, params);
}
public void glGetMaterialxv(int face, int pname, int[] params, int offset) {
throw new UnsupportedOperationException("not implemented");
}
public void glGetMaterialxv(int face, int pname, IntBuffer params) {
throw new UnsupportedOperationException("not implemented");
}
public void glGetPointerv(int pname, Buffer[] params) {
throw new UnsupportedOperationException("not implemented");
}
public void glGetTexEnviv(int env, int pname, int[] params, int offset) {
throw new UnsupportedOperationException("not implemented");
}
public void glGetTexEnviv(int env, int pname, IntBuffer params) {
GL11.glGetTexEnv(env, pname, params);
}
public void glGetTexEnvxv(int env, int pname, int[] params, int offset) {
throw new UnsupportedOperationException("not implemented");
}
public void glGetTexEnvxv(int env, int pname, IntBuffer params) {
throw new UnsupportedOperationException("not implemented");
}
public void glGetTexParameterfv(int target, int pname, float[] params,
int offset) {
throw new UnsupportedOperationException("not implemented");
}
public void glGetTexParameterfv(int target, int pname, FloatBuffer params) {
GL11.glGetTexParameter(target, pname, params);
}
public void glGetTexParameteriv(int target, int pname, int[] params,
int offset) {
throw new UnsupportedOperationException("not implemented");
}
public void glGetTexParameteriv(int target, int pname, IntBuffer params) {
GL11.glGetTexParameter(target, pname, params);
}
public void glGetTexParameterxv(int target, int pname, int[] params,
int offset) {
throw new UnsupportedOperationException("not implemented");
}
public void glGetTexParameterxv(int target, int pname, IntBuffer params) {
throw new UnsupportedOperationException("not implemented");
}
public boolean glIsBuffer(int buffer) {
return GL15.glIsBuffer(buffer);
}
public boolean glIsEnabled(int cap) {
return GL11.glIsEnabled(cap);
}
public boolean glIsTexture(int texture) {
return GL11.glIsTexture(texture);
}
public void glPointParameterf(int pname, float param) {
GL14.glPointParameterf(pname, param);
}
public void glPointParameterfv(int pname, float[] params, int offset) {
throw new UnsupportedOperationException("not implemented");
}
public void glPointParameterfv(int pname, FloatBuffer params) {
GL14.glPointParameter(pname, params);
}
public void glPointSizePointerOES(int type, int stride, Buffer pointer) {
throw new UnsupportedOperationException("not implemented");
}
public void glTexEnvi(int target, int pname, int param) {
GL11.glTexEnvi(target, pname, param);
}
public void glTexEnviv(int target, int pname, int[] params, int offset) {
GL11.glTexEnv(target, pname, toBuffer(params, offset));
}
public void glTexEnviv(int target, int pname, IntBuffer params) {
GL11.glTexEnv(target, pname, params);
}
public void glColorPointer(int size, int type, int stride, int pointer) {
GL11.glColorPointer(size, type, stride, pointer);
}
public void glNormalPointer(int type, int stride, int pointer) {
GL11.glNormalPointer(type, stride, pointer);
}
public void glTexCoordPointer(int size, int type, int stride, int pointer) {
GL11.glTexCoordPointer(size, type, stride, pointer);
}
public void glVertexPointer(int size, int type, int stride, int pointer) {
GL11.glVertexPointer(size, type, stride, pointer);
}
public void glDrawElements(int mode, int count, int type, int indices) {
GL11.glDrawElements(mode, count, type, indices);
}
}