diff --git a/src/java/org/lwjgl/opengl/ARBBufferObject.java b/src/java/org/lwjgl/opengl/ARBBufferObject.java index f7501de3..c45696e6 100644 --- a/src/java/org/lwjgl/opengl/ARBBufferObject.java +++ b/src/java/org/lwjgl/opengl/ARBBufferObject.java @@ -31,14 +31,10 @@ */ package org.lwjgl.opengl; -import java.nio.Buffer; -import java.nio.ByteBuffer; -import java.nio.FloatBuffer; -import java.nio.IntBuffer; -import java.nio.ShortBuffer; - -import org.lwjgl.LWJGLException; import org.lwjgl.BufferChecks; +import org.lwjgl.LWJGLException; + +import java.nio.*; public abstract class ARBBufferObject { @@ -75,11 +71,17 @@ public abstract class ARBBufferObject { public static void glBindBufferARB(int target, int buffer) { switch ( target ) { + case ARBVertexBufferObject.GL_ARRAY_BUFFER_ARB: + VBOTracker.getVBOArrayStack().setState(buffer); + break; case ARBVertexBufferObject.GL_ELEMENT_ARRAY_BUFFER_ARB: VBOTracker.getVBOElementStack().setState(buffer); break; - case ARBVertexBufferObject.GL_ARRAY_BUFFER_ARB: - VBOTracker.getVBOArrayStack().setState(buffer); + case ARBPixelBufferObject.GL_PIXEL_PACK_BUFFER_ARB: + VBOTracker.getPBOPackStack().setState(buffer); + break; + case ARBPixelBufferObject.GL_PIXEL_UNPACK_BUFFER_ARB: + VBOTracker.getPBOUnpackStack().setState(buffer); break; default: throw new IllegalArgumentException("Unsupported VBO target " + target); @@ -92,10 +94,14 @@ public abstract class ARBBufferObject { public static void glDeleteBuffersARB(IntBuffer buffers) { for ( int i = buffers.position(); i < buffers.limit(); i++ ) { int buffer_handle = buffers.get(i); - if ( VBOTracker.getVBOElementStack().getState() == buffer_handle ) - VBOTracker.getVBOElementStack().setState(0); if ( VBOTracker.getVBOArrayStack().getState() == buffer_handle ) VBOTracker.getVBOArrayStack().setState(0); + if ( VBOTracker.getVBOElementStack().getState() == buffer_handle ) + VBOTracker.getVBOElementStack().setState(0); + if ( VBOTracker.getPBOPackStack().getState() == buffer_handle ) + VBOTracker.getPBOPackStack().setState(0); + if ( VBOTracker.getPBOUnpackStack().getState() == buffer_handle ) + VBOTracker.getPBOUnpackStack().setState(0); } BufferChecks.checkDirect(buffers); nglDeleteBuffersARB(buffers.remaining(), buffers, buffers.position()); @@ -179,7 +185,10 @@ public abstract class ARBBufferObject { private static native void nglGetBufferSubDataARB(int target, int offset, int size, Buffer data, int data_offset); /** - * glMapBufferARB maps a gl vertex buffer buffer to a ByteBuffer. The oldBuffer argument can be null, in which case a new ByteBuffer will be created, pointing to the returned memory. If oldBuffer is non-null, it will be returned if it points to the same mapped memory, otherwise a new ByteBuffer is created. That way, an application will normally use glMapBufferARB like this: + * glMapBufferARB maps a gl vertex buffer buffer to a ByteBuffer. The oldBuffer argument can be null, + * in which case a new ByteBuffer will be created, pointing to the returned memory. If oldBuffer is non-null, + * it will be returned if it points to the same mapped memory, otherwise a new ByteBuffer is created. That + * way, an application will normally use glMapBufferARB like this: *

* ByteBuffer mapped_buffer; mapped_buffer = glMapBufferARB(..., ..., ..., null); ... // Another map on the same buffer mapped_buffer = glMapBufferARB(..., ..., ..., mapped_buffer); * diff --git a/src/java/org/lwjgl/opengl/ARBImaging.java b/src/java/org/lwjgl/opengl/ARBImaging.java index a42207f6..3a091667 100644 --- a/src/java/org/lwjgl/opengl/ARBImaging.java +++ b/src/java/org/lwjgl/opengl/ARBImaging.java @@ -133,72 +133,84 @@ public final class ARBImaging { static native void initNativeStubs() throws LWJGLException; + // --------------------------- public static void glColorTable(int target, int internalFormat, int width, int format, int type, ByteBuffer data) { + GLBufferChecks.ensureUnpackPBOdisabled(); BufferChecks.checkBuffer(data, 256); nglColorTable(target, internalFormat, width, format, type, data, data.position()); } - public static void glColorTable(int target, int internalFormat, int width, int format, int type, FloatBuffer data) { + GLBufferChecks.ensureUnpackPBOdisabled(); BufferChecks.checkBuffer(data, 256); nglColorTable(target, internalFormat, width, format, type, data, data.position() << 2); } - private static native void nglColorTable(int target, int internalFormat, int width, int format, int type, Buffer data, int data_offset); + public static void glColorTable(int target, int internalFormat, int width, int format, int type, int buffer_offset) { + GLBufferChecks.ensureUnpackPBOenabled(); + nglColorTableBO(target, internalFormat, width, format, type, buffer_offset); + } + private static native void nglColorTableBO(int target, int internalFormat, int width, int format, int type, int buffer_offset); + // --------------------------- + + // --------------------------- public static void glColorSubTable(int target, int start, int count, int format, int type, ByteBuffer data) { + GLBufferChecks.ensureUnpackPBOdisabled(); BufferChecks.checkBuffer(data, 256); nglColorSubTable(target, start, count, format, type, data, data.position()); } - public static void glColorSubTable(int target, int start, int count, int format, int type, FloatBuffer data) { + GLBufferChecks.ensureUnpackPBOdisabled(); BufferChecks.checkBuffer(data, 256); nglColorSubTable(target, start, count, format, type, data, data.position() << 2); } - private static native void nglColorSubTable(int target, int start, int count, int format, int type, Buffer data, int data_offset); + public static void glColorSubTable(int target, int start, int count, int format, int type, int buffer_offset) { + GLBufferChecks.ensureUnpackPBOenabled(); + nglColorSubTableBO(target, start, count, format, type, buffer_offset); + } + private static native void nglColorSubTableBO(int target, int start, int count, int format, int type, int buffer_offset); + // --------------------------- + public static void glColorTableParameter(int target, int pname, IntBuffer params) { BufferChecks.checkBuffer(params); nglColorTableParameteriv(target, pname, params, params.position()); } - private static native void nglColorTableParameteriv(int target, int pname, IntBuffer params, int data_offset); public static void glColorTableParameter(int target, int pname, FloatBuffer params) { BufferChecks.checkBuffer(params); nglColorTableParameterfv(target, pname, params, params.position()); } - private static native void nglColorTableParameterfv(int target, int pname, FloatBuffer params, int data_offset); public static native void glCopyColorSubTable(int target, int start, int x, int y, int width); public static native void glCopyColorTable(int target, int internalformat, int x, int y, int width); + // --------------------------- public static void glGetColorTable(int target, int format, int type, ByteBuffer data) { BufferChecks.checkBuffer(data, 256); nglGetColorTable(target, format, type, data, data.position()); } - public static void glGetColorTable(int target, int format, int type, FloatBuffer data) { BufferChecks.checkBuffer(data, 256); nglGetColorTable(target, format, type, data, data.position()); } - private static native void nglGetColorTable(int target, int format, int type, Buffer data, int data_offset); + // --------------------------- public static void glGetColorTableParameter(int target, int pname, IntBuffer params) { BufferChecks.checkBuffer(params); nglGetColorTableParameteriv(target, pname, params, params.position()); } - private static native void nglGetColorTableParameteriv(int target, int pname, IntBuffer params, int params_offset); public static void glGetColorTableParameter(int target, int pname, FloatBuffer params) { BufferChecks.checkBuffer(params); nglGetColorTableParameterfv(target, pname, params, params.position()); } - private static native void nglGetColorTableParameterfv(int target, int pname, FloatBuffer params, int params_offset); public static native void glBlendEquation(int mode); @@ -209,128 +221,155 @@ public final class ARBImaging { public static native void glResetHistogram(int target); + // --------------------------- public static void glGetHistogram(int target, boolean reset, int format, int type, ByteBuffer values) { + GLBufferChecks.ensurePackPBOdisabled(); BufferChecks.checkBuffer(values, 256); nglGetHistogram(target, reset, format, type, values, values.position()); } - public static void glGetHistogram(int target, boolean reset, int format, int type, ShortBuffer values) { + GLBufferChecks.ensurePackPBOdisabled(); BufferChecks.checkBuffer(values, 256); nglGetHistogram(target, reset, format, type, values, values.position() << 1); } - public static void glGetHistogram(int target, boolean reset, int format, int type, IntBuffer values) { + GLBufferChecks.ensurePackPBOdisabled(); BufferChecks.checkBuffer(values, 256); nglGetHistogram(target, reset, format, type, values, values.position() << 2); } - public static void glGetHistogram(int target, boolean reset, int format, int type, FloatBuffer values) { + GLBufferChecks.ensurePackPBOdisabled(); BufferChecks.checkBuffer(values, 256); nglGetHistogram(target, reset, format, type, values, values.position() << 2); } - private static native void nglGetHistogram(int target, boolean reset, int format, int type, Buffer values, int values_offset); + public static void glGetHistogram(int target, boolean reset, int format, int type, int buffer_offset) { + GLBufferChecks.ensurePackPBOenabled(); + nglGetHistogramBO(target, reset, format, type, buffer_offset); + } + private static native void nglGetHistogramBO(int target, boolean reset, int format, int type, int buffer_offset); + // --------------------------- + public static void glGetHistogramParameter(int target, int pname, FloatBuffer params) { BufferChecks.checkBuffer(params, 256); nglGetHistogramParameterfv(target, pname, params, params.position()); } - private static native void nglGetHistogramParameterfv(int target, int pname, FloatBuffer params, int params_offset); public static void glGetHistogramParameter(int target, int pname, IntBuffer params) { BufferChecks.checkBuffer(params); nglGetHistogramParameteriv(target, pname, params, params.position()); } - private static native void nglGetHistogramParameteriv(int target, int pname, IntBuffer params, int params_offset); public static native void glMinmax(int target, int internalformat, boolean sink); public static native void glResetMinmax(int target); + // --------------------------- public static void glGetMinmax(int target, boolean reset, int format, int types, ByteBuffer values) { + GLBufferChecks.ensurePackPBOdisabled(); BufferChecks.checkBuffer(values); nglGetMinmax(target, reset, format, types, values, values.position()); } - public static void glGetMinmax(int target, boolean reset, int format, int types, ShortBuffer values) { + GLBufferChecks.ensurePackPBOdisabled(); BufferChecks.checkBuffer(values); nglGetMinmax(target, reset, format, types, values, values.position() << 1); } - public static void glGetMinmax(int target, boolean reset, int format, int types, IntBuffer values) { + GLBufferChecks.ensurePackPBOdisabled(); BufferChecks.checkBuffer(values); nglGetMinmax(target, reset, format, types, values, values.position() << 2); } - public static void glGetMinmax(int target, boolean reset, int format, int types, FloatBuffer values) { + GLBufferChecks.ensurePackPBOdisabled(); BufferChecks.checkBuffer(values); nglGetMinmax(target, reset, format, types, values, values.position() << 2); } - private static native void nglGetMinmax(int target, boolean reset, int format, int types, Buffer values, int values_offset); + public static void glGetMinmax(int target, boolean reset, int format, int types, int buffer_offset) { + GLBufferChecks.ensurePackPBOenabled(); + nglGetMinmaxBO(target, reset, format, types, buffer_offset); + } + private static native void nglGetMinmaxBO(int target, boolean reset, int format, int types, int buffer_offset); + // --------------------------- + public static void glGetMinmaxParameter(int target, int pname, FloatBuffer params) { BufferChecks.checkBuffer(params); nglGetMinmaxParameterfv(target, pname, params, params.position()); } - private static native void nglGetMinmaxParameterfv(int target, int pname, FloatBuffer params, int params_offset); public static void glGetMinmaxParameter(int target, int pname, IntBuffer params) { BufferChecks.checkBuffer(params); nglGetMinmaxParameteriv(target, pname, params, params.position()); } - private static native void nglGetMinmaxParameteriv(int target, int pname, IntBuffer params, int params_offset); + // --------------------------- public static void glConvolutionFilter1D(int target, int internalformat, int width, int format, int type, ByteBuffer image) { + GLBufferChecks.ensureUnpackPBOdisabled(); BufferChecks.checkBuffer(image, GLBufferChecks.calculateImageStorage(format, type, width, 1, 1)); nglConvolutionFilter1D(target, internalformat, width, format, type, image, image.position()); } - public static void glConvolutionFilter1D(int target, int internalformat, int width, int format, int type, ShortBuffer image) { + GLBufferChecks.ensureUnpackPBOdisabled(); BufferChecks.checkBuffer(image, GLBufferChecks.calculateImageStorage(format, type, width, 1, 1) >> 1); nglConvolutionFilter1D(target, internalformat, width, format, type, image, image.position()); } - public static void glConvolutionFilter1D(int target, int internalformat, int width, int format, int type, IntBuffer image) { + GLBufferChecks.ensureUnpackPBOdisabled(); BufferChecks.checkBuffer(image, GLBufferChecks.calculateImageStorage(format, type, width, 1, 1) >> 2); nglConvolutionFilter1D(target, internalformat, width, format, type, image, image.position()); } - public static void glConvolutionFilter1D(int target, int internalformat, int width, int format, int type, FloatBuffer image) { + GLBufferChecks.ensureUnpackPBOdisabled(); BufferChecks.checkBuffer(image, GLBufferChecks.calculateImageStorage(format, type, width, 1, 1) >> 2); nglConvolutionFilter1D(target, internalformat, width, format, type, image, image.position()); } - private static native void nglConvolutionFilter1D(int target, int internalformat, int width, int format, int type, Buffer image, int image_offset); + public static void glConvolutionFilter1D(int target, int internalformat, int width, int format, int type, int buffer_offset) { + GLBufferChecks.ensureUnpackPBOenabled(); + nglConvolutionFilter1DBO(target, internalformat, width, format, type, buffer_offset); + } + private static native void nglConvolutionFilter1DBO(int target, int internalformat, int width, int format, int type, int buffer_offset); + // --------------------------- + + // --------------------------- public static void glConvolutionFilter2D(int target, int internalformat, int width, int height, int format, int type, ByteBuffer image) { + GLBufferChecks.ensureUnpackPBOdisabled(); BufferChecks.checkBuffer(image, GLBufferChecks.calculateImageStorage(format, type, width, height, 1)); nglConvolutionFilter2D(target, internalformat, width, height, format, type, image, image.position()); } - public static void glConvolutionFilter2D(int target, int internalformat, int width, int height, int format, int type, ShortBuffer image) { + GLBufferChecks.ensureUnpackPBOdisabled(); BufferChecks.checkBuffer(image, GLBufferChecks.calculateImageStorage(format, type, width, height, 1) >> 1); nglConvolutionFilter2D(target, internalformat, width, height, format, type, image, image.position() << 1); } - public static void glConvolutionFilter2D(int target, int internalformat, int width, int height, int format, int type, IntBuffer image) { + GLBufferChecks.ensureUnpackPBOdisabled(); BufferChecks.checkBuffer(image, GLBufferChecks.calculateImageStorage(format, type, width, height, 1) >> 2); nglConvolutionFilter2D(target, internalformat, width, height, format, type, image, image.position() << 2); } - private static native void nglConvolutionFilter2D(int target, int internalformat, int width, int height, int format, int type, Buffer image, int image_offset); + public static void glConvolutionFilter2D(int target, int internalformat, int width, int height, int format, int type, int buffer_offset) { + GLBufferChecks.ensureUnpackPBOenabled(); + nglConvolutionFilter2DBO(target, internalformat, width, height, format, type, buffer_offset); + } + private static native void nglConvolutionFilter2DBO(int target, int internalformat, int width, int height, int format, int type, int buffer_offset); + // --------------------------- + public static native void glConvolutionParameterf(int target, int pname, float params); public static void glConvolutionParameter(int target, int pname, FloatBuffer params) { BufferChecks.checkBuffer(params); nglConvolutionParameterfv(target, pname, params, params.position()); } - private static native void nglConvolutionParameterfv(int target, int pname, FloatBuffer params, int params_offset); public static native void glConvolutionParameteri(int target, int pname, int params); @@ -339,70 +378,91 @@ public final class ARBImaging { BufferChecks.checkBuffer(params); nglConvolutionParameteriv(target, pname, params, params.position()); } - private static native void nglConvolutionParameteriv(int target, int pname, IntBuffer params, int params_offset); public static native void glCopyConvolutionFilter1D(int target, int internalformat, int x, int y, int width); public static native void glCopyConvolutionFilter2D(int target, int internalformat, int x, int y, int width, int height); + // --------------------------- public static void glGetConvolutionFilter(int target, int format, int type, ByteBuffer image) { + GLBufferChecks.ensurePackPBOdisabled(); BufferChecks.checkDirect(image); // TODO: check buffer size valid nglGetConvolutionFilter(target, format, type, image, image.position()); } - public static void glGetConvolutionFilter(int target, int format, int type, ShortBuffer image) { + GLBufferChecks.ensurePackPBOdisabled(); BufferChecks.checkDirect(image); // TODO: check buffer size valid nglGetConvolutionFilter(target, format, type, image, image.position() << 1); } - public static void glGetConvolutionFilter(int target, int format, int type, IntBuffer image) { + GLBufferChecks.ensurePackPBOdisabled(); BufferChecks.checkDirect(image); // TODO: check buffer size valid nglGetConvolutionFilter(target, format, type, image, image.position() << 2); } - public static void glGetConvolutionFilter(int target, int format, int type, FloatBuffer image) { + GLBufferChecks.ensurePackPBOdisabled(); BufferChecks.checkDirect(image); // TODO: check buffer size valid nglGetConvolutionFilter(target, format, type, image, image.position() << 2); } - private static native void nglGetConvolutionFilter(int target, int format, int type, Buffer image, int image_offset); + public static void glGetConvolutionFilter(int target, int format, int type, int buffer_offset) { + GLBufferChecks.ensurePackPBOenabled(); + nglGetConvolutionFilterBO(target, format, type, buffer_offset); + } + private static native void nglGetConvolutionFilterBO(int target, int format, int type, int buffer_offset); + // --------------------------- + public static void glGetConvolutionParameter(int target, int pname, FloatBuffer params) { BufferChecks.checkBuffer(params); nglGetConvolutionParameterfv(target, pname, params, params.position()); } - private static native void nglGetConvolutionParameterfv(int target, int pname, FloatBuffer params, int params_offset); public static void glGetConvolutionParameter(int target, int pname, IntBuffer params) { BufferChecks.checkBuffer(params); nglGetConvolutionParameteriv(target, pname, params, params.position()); } - private static native void nglGetConvolutionParameteriv(int target, int pname, IntBuffer params, int params_offset); + // --------------------------- public static void glSeparableFilter2D(int target, int internalformat, int width, int height, int format, int type, Buffer row, Buffer column) { + GLBufferChecks.ensureUnpackPBOdisabled(); BufferChecks.checkDirectBuffer(row); BufferChecks.checkDirectBuffer(column); // TODO: check buffer size valid nglSeparableFilter2D(target, internalformat, width, height, format, type, row, BufferUtils.getOffset(row), column, BufferUtils.getOffset(column)); } - private static native void nglSeparableFilter2D(int target, int internalformat, int width, int height, int format, int type, Buffer row, int row_offset, Buffer column, int column_offset); + public static void glSeparableFilter2D(int target, int internalformat, int width, int height, int format, int type, int row_offset, int column_offset) { + GLBufferChecks.ensureUnpackPBOenabled(); + nglSeparableFilter2DBO(target, internalformat, width, height, format, type, row_offset, column_offset); + } + private static native void nglSeparableFilter2DBO(int target, int internalformat, int width, int height, int format, int type, int row_offset, int column_offset); + // --------------------------- + + // --------------------------- public static void glGetSeparableFilter(int target, int format, int type, Buffer row, Buffer column, Buffer span) { + GLBufferChecks.ensurePackPBOdisabled(); BufferChecks.checkDirectBuffer(row); BufferChecks.checkDirectBuffer(column); BufferChecks.checkDirectBuffer(span); // TODO: check buffer size valid nglGetSeparableFilter(target, format, type, row, BufferUtils.getOffset(row), column, BufferUtils.getOffset(column), span, BufferUtils.getOffset(span)); } - private static native void nglGetSeparableFilter(int target, int format, int type, Buffer row, int row_offset, Buffer column, int column_offset, Buffer span, int span_offset); + + public static void glGetSeparableFilter(int target, int format, int type, int row_offset, int column_offset, int span_offset) { + GLBufferChecks.ensurePackPBOenabled(); + nglGetSeparableFilterBO(target, format, type, row_offset, column_offset, span_offset); + } + private static native void nglGetSeparableFilterBO(int target, int format, int type, int row_offset, int column_offset, int span_offset); + // --------------------------- } diff --git a/src/java/org/lwjgl/opengl/GL11.java b/src/java/org/lwjgl/opengl/GL11.java index f57b095a..d5aaf2d2 100644 --- a/src/java/org/lwjgl/opengl/GL11.java +++ b/src/java/org/lwjgl/opengl/GL11.java @@ -731,6 +731,8 @@ public final class GL11 { public static native void glClearColor(float red, float green, float blue, float alpha); public static native void glClearAccum(float red, float green, float blue, float alpha); public static native void glClear(int mask); + + // --------------------------- public static void glCallLists(ByteBuffer lists) { BufferChecks.checkDirect(lists); nglCallLists(lists.remaining(), GL_UNSIGNED_BYTE, lists, lists.position()); @@ -744,24 +746,39 @@ public final class GL11 { nglCallLists(lists.remaining(), GL_UNSIGNED_INT, lists, lists.position() << 2); } private static native void nglCallLists(int n, int type, Buffer lists, int lists_offset); + // --------------------------- + public static native void glCallList(int list); public static native void glBlendFunc(int sfactor, int dfactor); + + // --------------------------- public static void glBitmap(int width, int height, float xorig, float yorig, float xmove, float ymove, ByteBuffer bitmap) { - BufferChecks.checkBuffer(bitmap, ((width+7)/8) * height); + GLBufferChecks.ensureUnpackPBOdisabled(); + BufferChecks.checkBuffer(bitmap, ((width + 7) / 8) * height); nglBitmap(width, height, xorig, yorig, xmove, ymove, bitmap, bitmap.position()); } private static native void nglBitmap(int width, int height, float xorig, float yorig, float xmove, float ymove, ByteBuffer bitmap, int bitmap_offset); + + public static void glBitmap(int width, int height, float xorig, float yorig, float xmove, float ymove, int buffer_offect) { + GLBufferChecks.ensureUnpackPBOenabled(); + nglBitmapBO(width, height, xorig, yorig, xmove, ymove, buffer_offect); + } + private static native void nglBitmapBO(int width, int height, float xorig, float yorig, float xmove, float ymove, int buffer_offset); + // --------------------------- + public static native void glBindTexture(int target, int texture); public static native void glBegin(int mode); public static native void glEnd(); public static native void glArrayElement(int i); public static native void glClearDepth(double depth); public static native void glDeleteLists(int list, int range); + public static void glDeleteTextures(IntBuffer textures) { BufferChecks.checkDirect(textures); nglDeleteTextures(textures.remaining(), textures, textures.position()); } private static native void nglDeleteTextures(int n, IntBuffer textures, int textures_offset); + public static native void glCullFace(int mode); public static native void glCopyTexSubImage2D(int target, int level, int xoffset, int yoffset, int x, int y, int width, int height); public static native void glCopyTexSubImage1D(int target, int level, int xoffset, int x, int y, int width); @@ -769,6 +786,7 @@ public final class GL11 { public static native void glCopyTexImage1D(int target, int level, int internalFormat, int x, int y, int width, int border); public static native void glCopyPixels(int x, int y, int width, int height, int type); + // --------------------------- public static void glColorPointer(int size, boolean unsigned, int stride, ByteBuffer pointer) { BufferChecks.checkDirect(pointer); GLBufferChecks.ensureArrayVBOdisabled(); @@ -780,11 +798,14 @@ public final class GL11 { nglColorPointer(size, GL_FLOAT, stride, pointer, pointer.position() << 2); } private static native void nglColorPointer(int size, int type, int stride, Buffer pointer, int pointer_offset); + public static void glColorPointer(int size, int type, int stride, int buffer_offset) { GLBufferChecks.ensureArrayVBOenabled(); nglColorPointerVBO(size, type, stride, buffer_offset); } private static native void nglColorPointerVBO(int size, int type, int stride, int buffer_offset); + // --------------------------- + public static native void glColorMaterial(int face, int mode); public static native void glColorMask(boolean red, boolean green, boolean blue, boolean alpha); public static native void glColor3b(byte red, byte green, byte blue); @@ -793,11 +814,13 @@ public final class GL11 { public static native void glColor4b(byte red, byte green, byte blue, byte alpha); public static native void glColor4f(float red, float green, float blue, float alpha); public static native void glColor4ub(byte red, byte green, byte blue, byte alpha); + public static void glClipPlane(int plane, DoubleBuffer equation) { BufferChecks.checkBuffer(equation, 4); nglClipPlane(plane, equation, equation.position() << 3); } private static native void nglClipPlane(int plane, DoubleBuffer equation, int equation_offset); + public static native void glClearStencil(int s); public static native void glClearIndex(float c); public static native void glEvalPoint1(int i); @@ -810,31 +833,50 @@ public final class GL11 { public static native void glDisableClientState(int cap); public static native void glEnable(int cap); public static native void glDisable(int cap); + + // --------------------------- public static void glEdgeFlagPointer(int stride, ByteBuffer pointer) { BufferChecks.checkDirect(pointer); GLBufferChecks.ensureArrayVBOdisabled(); nglEdgeFlagPointer(stride, pointer, pointer.position()); } private static native void nglEdgeFlagPointer(int stride, Buffer pointer, int pointer_offset); + public static void glEdgeFlagPointer(int stride, int buffer_offset) { GLBufferChecks.ensureArrayVBOenabled(); nglEdgeFlagPointerVBO(stride, buffer_offset); } private static native void nglEdgeFlagPointerVBO(int stride, int buffer_offset); + // --------------------------- + public static native void glEdgeFlag(boolean flag); + + // --------------------------- public static void glDrawPixels(int width, int height, int format, int type, ByteBuffer pixels) { + GLBufferChecks.ensureUnpackPBOdisabled(); BufferChecks.checkBuffer(pixels, GLBufferChecks.calculateImageStorage(format, type, width, height, 1)); nglDrawPixels(width, height, format, type, pixels, pixels.position()); } public static void glDrawPixels(int width, int height, int format, int type, ShortBuffer pixels) { + GLBufferChecks.ensureUnpackPBOdisabled(); BufferChecks.checkBuffer(pixels, GLBufferChecks.calculateImageStorage(format, type, width, height, 1)>>1); nglDrawPixels(width, height, format, type, pixels, pixels.position() << 1); } public static void glDrawPixels(int width, int height, int format, int type, IntBuffer pixels) { + GLBufferChecks.ensureUnpackPBOdisabled(); BufferChecks.checkBuffer(pixels, GLBufferChecks.calculateImageStorage(format, type, width, height, 1)>>2); nglDrawPixels(width, height, format, type, pixels, pixels.position() << 2); } private static native void nglDrawPixels(int width, int height, int format, int type, Buffer pixels, int pixels_offset); + + public static void glDrawPixels(int width, int height, int format, int type, int buffer_offset) { + GLBufferChecks.ensureUnpackPBOenabled(); + nglDrawPixelsBO(width, height, format, type, buffer_offset); + } + private static native void nglDrawPixelsBO(int width, int height, int format, int type, int buffer_offset); + // --------------------------- + + // --------------------------- public static void glDrawElements(int mode, ByteBuffer indices) { BufferChecks.checkDirect(indices); GLBufferChecks.ensureElementVBOdisabled(); @@ -851,113 +893,163 @@ public final class GL11 { nglDrawElements(mode, indices.remaining(), GL_UNSIGNED_INT, indices, indices.position() << 2); } private static native void nglDrawElements(int mode, int count, int type, Buffer indices, int indices_offset); + public static void glDrawElements(int mode, int count, int type, int buffer_offset) { GLBufferChecks.ensureElementVBOenabled(); nglDrawElementsVBO(mode, count, type, buffer_offset); } private static native void nglDrawElementsVBO(int mode, int count, int type, int buffer_offset); + // --------------------------- + public static native void glDrawBuffer(int mode); public static native void glDrawArrays(int mode, int first, int count); public static native void glDepthRange(double zNear, double zFar); public static native void glDepthMask(boolean flag); public static native void glDepthFunc(int func); + public static void glFeedbackBuffer(int type, FloatBuffer buffer) { BufferChecks.checkDirect(buffer); nglFeedbackBuffer(buffer.remaining(), type, buffer, buffer.position()); } private static native void nglFeedbackBuffer(int size, int type, FloatBuffer buffer, int buffer_offset); + // --------------------------- public static void glGetPixelMap(int map, FloatBuffer values) { + GLBufferChecks.ensurePackPBOdisabled(); BufferChecks.checkBuffer(values, 256); nglGetPixelMapfv(map, values, values.position()); } private static native void nglGetPixelMapfv(int map, FloatBuffer values, int values_offset); + + public static void glGetPixelMapfv(int map, int buffer_offset) { + GLBufferChecks.ensurePackPBOenabled(); + nglGetPixelMapfvBO(map, buffer_offset); + } + private static native void nglGetPixelMapfvBO(int map, int buffer_offset); + // --------------------------- + + // --------------------------- public static void glGetPixelMap(int map, IntBuffer values) { + GLBufferChecks.ensurePackPBOdisabled(); BufferChecks.checkBuffer(values, 256); nglGetPixelMapuiv(map, values, values.position()); } private static native void nglGetPixelMapuiv(int map, IntBuffer values, int values_offset); + + public static void glGetPixelMapuiv(int map, int buffer_offset) { + GLBufferChecks.ensurePackPBOenabled(); + nglGetPixelMapuivBO(map, buffer_offset); + } + private static native void nglGetPixelMapuivBO(int map, int buffer_offset); + // --------------------------- + + // --------------------------- public static void glGetPixelMap(int map, ShortBuffer values) { + GLBufferChecks.ensurePackPBOdisabled(); BufferChecks.checkBuffer(values, 256); nglGetPixelMapusv(map, values, values.position()); } private static native void nglGetPixelMapusv(int map, ShortBuffer values, int values_offset); + + public static void glGetPixelMapusv(int map, int buffer_offset) { + GLBufferChecks.ensurePackPBOenabled(); + nglGetPixelMapusvBO(map, buffer_offset); + } + private static native void nglGetPixelMapusvBO(int map, int buffer_offset); + // --------------------------- + public static void glGetMaterial(int face, int pname, FloatBuffer params) { BufferChecks.checkBuffer(params); nglGetMaterialfv(face, pname, params, params.position()); } private static native void nglGetMaterialfv(int face, int pname, FloatBuffer params, int params_offset); + public static void glGetMaterial(int face, int pname, IntBuffer params) { BufferChecks.checkBuffer(params); nglGetMaterialiv(face, pname, params, params.position()); } private static native void nglGetMaterialiv(int face, int pname, IntBuffer params, int params_offset); + public static void glGetMap(int target, int query, FloatBuffer v) { BufferChecks.checkBuffer(v, 256); nglGetMapfv(target, query, v, v.position()); } + private static native void nglGetMapfv(int target, int query, FloatBuffer v, int v_offset); + public static void glGetMap(int target, int query, IntBuffer v) { BufferChecks.checkBuffer(v, 256); nglGetMapiv(target, query, v, v.position()); } - private static native void nglGetMapfv(int target, int query, FloatBuffer v, int v_offset); private static native void nglGetMapiv(int target, int query, IntBuffer v, int v_offset); + public static void glGetLight(int light, int pname, FloatBuffer params) { BufferChecks.checkBuffer(params); nglGetLightfv(light, pname, params, params.position()); } private static native void nglGetLightfv(int light, int pname, FloatBuffer params, int params_offset); + public static void glGetLight(int light, int pname, IntBuffer params) { BufferChecks.checkBuffer(params); nglGetLightiv(light, pname, params, params.position()); } private static native void nglGetLightiv(int light, int pname, IntBuffer params, int params_offset); + public static native int glGetError(); + public static void glGetClipPlane(int plane, DoubleBuffer equation) { BufferChecks.checkBuffer(equation); nglGetClipPlane(plane, equation, equation.position()); } private static native void nglGetClipPlane(int plane, DoubleBuffer equation, int equation_offset); + public static void glGetBoolean(int pname, ByteBuffer params) { BufferChecks.checkBuffer(params, 16); nglGetBooleanv(pname, params, params.position()); } private static native void nglGetBooleanv(int pname, ByteBuffer params, int params_offset); + public static void glGetDouble(int pname, DoubleBuffer params) { BufferChecks.checkBuffer(params, 16); nglGetDoublev(pname, params, params.position()); } private static native void nglGetDoublev(int pname, DoubleBuffer params, int params_offset); + public static void glGetFloat(int pname, FloatBuffer params) { BufferChecks.checkBuffer(params, 16); nglGetFloatv(pname, params, params.position()); } private static native void nglGetFloatv(int pname, FloatBuffer params, int params_offset); + public static void glGetInteger(int pname, IntBuffer params) { BufferChecks.checkBuffer(params, 16); nglGetIntegerv(pname, params, params.position()); } private static native void nglGetIntegerv(int pname, IntBuffer params, int params_offset); + public static void glGenTextures(IntBuffer textures) { BufferChecks.checkDirect(textures); nglGenTextures(textures.remaining(), textures, textures.position()); } private static native void nglGenTextures(int n, IntBuffer textures, int textures_offset); + public static native int glGenLists(int range); public static native void glFrustum(double left, double right, double bottom, double top, double zNear, double zFar); public static native void glFrontFace(int mode); public static native void glFogf(int pname, float param); public static native void glFogi(int pname, int param); + public static void glFog(int pname, FloatBuffer params) { BufferChecks.checkBuffer(params); nglFogfv(pname, params, params.position()); } private static native void nglFogfv(int pname, FloatBuffer params, int params_offset); + public static void glFog(int pname, IntBuffer params) { BufferChecks.checkBuffer(params); nglFogiv(pname, params, params.position()); } private static native void nglFogiv(int pname, IntBuffer params, int params_offset); + public static native void glFlush(); public static native void glFinish(); /** @@ -969,6 +1061,8 @@ public final class GL11 { */ public static native ByteBuffer glGetPointerv(int pname, int size); public static native boolean glIsEnabled(int cap); + + // --------------------------- public static void glInterleavedArrays(int format, int stride, ByteBuffer pointer) { BufferChecks.checkDirect(pointer); GLBufferChecks.ensureArrayVBOdisabled(); @@ -990,56 +1084,66 @@ public final class GL11 { nglInterleavedArrays(format, stride, pointer, pointer.position() << 2); } private static native void nglInterleavedArrays(int format, int stride, Buffer pointer, int pointer_offset); + public static void glInterleavedArrays(int format, int stride, int buffer_offset) { GLBufferChecks.ensureArrayVBOenabled(); nglInterleavedArraysVBO(format, stride, buffer_offset); } private static native void nglInterleavedArraysVBO(int format, int stride, int buffer_offset); + // --------------------------- + public static native void glInitNames(); public static native void glHint(int target, int mode); + public static void glGetTexParameter(int target, int pname, FloatBuffer params) { BufferChecks.checkBuffer(params); nglGetTexParameterfv(target, pname, params, params.position()); } private static native void nglGetTexParameterfv(int target, int pname, FloatBuffer params, int params_offset); + public static void glGetTexParameter(int target, int pname, IntBuffer params) { BufferChecks.checkBuffer(params); nglGetTexParameteriv(target, pname, params, params.position()); } private static native void nglGetTexParameteriv(int target, int pname, IntBuffer params, int params_offset); + public static void glGetTexLevelParameter(int target, int level, int pname, FloatBuffer params) { BufferChecks.checkBuffer(params); nglGetTexLevelParameterfv(target, level, pname, params, params.position()); } private static native void nglGetTexLevelParameterfv(int target, int level, int pname, FloatBuffer params, int params_offset); + public static void glGetTexLevelParameter(int target, int level, int pname, IntBuffer params) { BufferChecks.checkBuffer(params); nglGetTexLevelParameteriv(target, level, pname, params, params.position()); } private static native void nglGetTexLevelParameteriv(int target, int level, int pname, IntBuffer params, int params_offset); + + // --------------------------- public static void glGetTexImage(int target, int level, int format, int type, ByteBuffer pixels) { - int width = 1; - int height = 1; - int depth = 1; - BufferChecks.checkBuffer(pixels, GLBufferChecks.calculateImageStorage(format, type, width, height, depth)); + GLBufferChecks.ensurePackPBOdisabled(); + BufferChecks.checkBuffer(pixels, GLBufferChecks.calculateImageStorage(format, type, 1, 1, 1)); nglGetTexImage(target, level, format, type, pixels, pixels.position()); } public static void glGetTexImage(int target, int level, int format, int type, ShortBuffer pixels) { - int width = 1; - int height = 1; - int depth = 1; - BufferChecks.checkBuffer(pixels, GLBufferChecks.calculateImageStorage(format, type, width, height, depth)>>1); + GLBufferChecks.ensurePackPBOdisabled(); + BufferChecks.checkBuffer(pixels, GLBufferChecks.calculateImageStorage(format, type, 1, 1, 1)>>1); nglGetTexImage(target, level, format, type, pixels, pixels.position() << 1); } public static void glGetTexImage(int target, int level, int format, int type, IntBuffer pixels) { - int width = 1; - int height = 1; - int depth = 1; - BufferChecks.checkBuffer(pixels, GLBufferChecks.calculateImageStorage(format, type, width, height, depth)>>2); + GLBufferChecks.ensurePackPBOdisabled(); + BufferChecks.checkBuffer(pixels, GLBufferChecks.calculateImageStorage(format, type, 1, 1, 1)>>2); nglGetTexImage(target, level, format, type, pixels, pixels.position() << 2); } private static native void nglGetTexImage(int target, int level, int format, int type, Buffer pixels, int pixels_offset); + public static void glGetTexImage(int target, int level, int format, int type, int buffer_offset) { + GLBufferChecks.ensurePackPBOenabled(); + nglGetTexImageBO(target, level, format, type, buffer_offset); + } + private static native void nglGetTexImageBO(int target, int level, int format, int type, int buffer_offset); + // --------------------------- + public static void glGetTexGen(int coord, int pname, IntBuffer params) { BufferChecks.checkBuffer(params); nglGetTexGeniv(coord, pname, params, params.position()); @@ -1057,6 +1161,7 @@ public final class GL11 { nglGetTexEnviv(coord, pname, params, params.position()); } private static native void nglGetTexEnviv(int coord, int pname, IntBuffer params, int params_offset); + public static void glGetTexEnv(int coord, int pname, FloatBuffer params) { BufferChecks.checkBuffer(params); nglGetTexEnvfv(coord, pname, params, params.position()); @@ -1064,80 +1169,116 @@ public final class GL11 { private static native void nglGetTexEnvfv(int coord, int pname, FloatBuffer params, int params_offset); public static native String glGetString(int name); + + // --------------------------- public static void glGetPolygonStipple(ByteBuffer mask) { + GLBufferChecks.ensurePackPBOdisabled(); BufferChecks.checkBuffer(mask, 1024); nglGetPolygonStipple(mask, mask.position()); } private static native void nglGetPolygonStipple(ByteBuffer mask, int mask_offset); + + public static void glGetPolygonStipple(int buffer_offset) { + GLBufferChecks.ensurePackPBOenabled(); + nglGetPolygonStippleBO(buffer_offset); + } + private static native void nglGetPolygonStippleBO(int buffer_offset); + // --------------------------- + public static native boolean glIsList(int list); public static native void glMaterialf(int face, int pname, float param); public static native void glMateriali(int face, int pname, int param); + public static void glMaterial(int face, int pname, FloatBuffer params) { BufferChecks.checkBuffer(params); nglMaterialfv(face, pname, params, params.position()); } private static native void nglMaterialfv(int face, int pname, FloatBuffer params, int params_offset); + public static void glMaterial(int face, int pname, IntBuffer params) { BufferChecks.checkBuffer(params); nglMaterialiv(face, pname, params, params.position()); } private static native void nglMaterialiv(int face, int pname, IntBuffer params, int params_offset); + public static native void glMapGrid1f(int un, float u1, float u2); public static native void glMapGrid2f(int un, float u1, float u2, int vn, float v1, float v2); + public static void glMap2f(int target, float u1, float u2, int ustride, int uorder, float v1, float v2, int vstride, int vorder, FloatBuffer points) { BufferChecks.checkDirect(points); // TODO: check buffer size valid nglMap2f(target, u1, u2, ustride, uorder, v1, v2, vstride, vorder, points, points.position()); } private static native void nglMap2f(int target, float u1, float u2, int ustride, int uorder, float v1, float v2, int vstride, int vorder, FloatBuffer points, int points_offset); + public static void glMap1f(int target, float u1, float u2, int stride, int order, FloatBuffer points) { BufferChecks.checkDirect(points); // TODO: check buffer size valid nglMap1f(target, u1, u2, stride, order, points, points.position()); } private static native void nglMap1f(int target, float u1, float u2, int stride, int order, FloatBuffer points, int points_offset); + public static native void glLogicOp(int opcode); public static native void glLoadName(int name); + public static void glLoadMatrix(FloatBuffer m) { BufferChecks.checkBuffer(m, 16); nglLoadMatrixf(m, m.position()); } private static native void nglLoadMatrixf(FloatBuffer m, int m_offset); + public static native void glLoadIdentity(); public static native void glListBase(int base); public static native void glLineWidth(float width); public static native void glLineStipple(int factor, short pattern); public static native void glLightModelf(int pname, float param); public static native void glLightModeli(int pname, int param); + public static void glLightModel(int pname, FloatBuffer params) { BufferChecks.checkBuffer(params); nglLightModelfv( pname, params, params.position()); } private static native void nglLightModelfv(int pname, FloatBuffer params, int params_offset); + public static void glLightModel(int pname, IntBuffer params) { BufferChecks.checkBuffer(params); nglLightModeliv(pname, params, params.position()); } private static native void nglLightModeliv(int pname, IntBuffer params, int params_offset); + public static native void glLightf(int light, int pname, float param); public static native void glLighti(int light, int pname, int param); + public static void glLight(int light, int pname, FloatBuffer params) { BufferChecks.checkBuffer(params); nglLightfv(light, pname, params, params.position()); } private static native void nglLightfv(int light, int pname, FloatBuffer params, int params_offset); + public static void glLight(int light, int pname, IntBuffer params) { BufferChecks.checkBuffer(params); nglLightiv(light, pname, params, params.position()); } private static native void nglLightiv(int light, int pname, IntBuffer params, int params_offset); + public static native boolean glIsTexture(int texture); public static native void glMatrixMode(int mode); + + // --------------------------- public static void glPolygonStipple(ByteBuffer mask) { + GLBufferChecks.ensureUnpackPBOdisabled(); BufferChecks.checkBuffer(mask, 1024); nglPolygonStipple(mask, mask.position()); } private static native void nglPolygonStipple(ByteBuffer mask, int mask_offset); + + public static void glPolygonStipple(int buffer_offset) { + GLBufferChecks.ensureUnpackPBOenabled(); + nglPolygonStippleBO(buffer_offset); + } + private static native void nglPolygonStippleBO(int buffer_offset); + // --------------------------- + public static native void glPolygonOffset(float factor, float units); public static native void glPolygonMode(int face, int mode); public static native void glPointSize(float size); @@ -1146,23 +1287,56 @@ public final class GL11 { public static native void glPixelTransferi(int pname, int param); public static native void glPixelStoref(int pname, float param); public static native void glPixelStorei(int pname, int param); + + // --------------------------- public static void glPixelMap(int map, FloatBuffer values) { + GLBufferChecks.ensureUnpackPBOdisabled(); BufferChecks.checkDirect(values); nglPixelMapfv(map, values.remaining(), values, values.position()); } private static native void nglPixelMapfv(int map, int mapsize, FloatBuffer values, int values_offset); + + public static void glPixelMapfv(int map, int mapsize, int buffer_offset) { + GLBufferChecks.ensureUnpackPBOenabled(); + nglPixelMapfvBO(map, mapsize, buffer_offset); + } + private static native void nglPixelMapfvBO(int map, int mapsize, int buffer_offset); + // --------------------------- + + // --------------------------- public static void glPixelMap(int map, IntBuffer values) { + GLBufferChecks.ensureUnpackPBOdisabled(); BufferChecks.checkDirect(values); nglPixelMapuiv(map, values.remaining(), values, values.position()); } private static native void nglPixelMapuiv(int map, int mapsize, IntBuffer values, int values_offset); + + public static void glPixelMapuiv(int map, int mapsize, int buffer_offset) { + GLBufferChecks.ensureUnpackPBOenabled(); + nglPixelMapuivBO(map, mapsize, buffer_offset); + } + private static native void nglPixelMapuivBO(int map, int mapsize, int buffer_offset); + // --------------------------- + + // --------------------------- public static void glPixelMap(int map, ShortBuffer values) { + GLBufferChecks.ensureUnpackPBOdisabled(); BufferChecks.checkDirect(values); nglPixelMapusv(map, values.remaining(), values, values.position()); } private static native void nglPixelMapusv(int map, int mapsize, ShortBuffer values, int values_offset); + + public static void glPixelMapusv(int map, int mapsize, int buffer_offset) { + GLBufferChecks.ensureUnpackPBOenabled(); + nglPixelMapusvBO(map, mapsize, buffer_offset); + } + private static native void nglPixelMapusvBO(int map, int mapsize, int buffer_offset); + // --------------------------- + public static native void glPassThrough(float token); public static native void glOrtho(double left, double right, double bottom, double top, double zNear, double zFar); + + // --------------------------- public static void glNormalPointer(int stride, ByteBuffer pointer) { BufferChecks.checkDirect(pointer); GLBufferChecks.ensureArrayVBOdisabled(); @@ -1179,46 +1353,66 @@ public final class GL11 { nglNormalPointer(GL_FLOAT, stride, pointer, pointer.position() << 2); } private static native void nglNormalPointer(int type, int stride, Buffer pointer, int pointer_offset); + public static void glNormalPointer(int type, int stride, int buffer_offset) { GLBufferChecks.ensureArrayVBOenabled(); nglNormalPointerVBO(type, stride, buffer_offset); } private static native void nglNormalPointerVBO(int type, int stride, int buffer_offset); + // --------------------------- + public static native void glNormal3b(byte nx, byte ny, byte nz); public static native void glNormal3f(float nx, float ny, float nz); public static native void glNormal3i(int nx, int ny, int nz); public static native void glNewList(int list, int mode); public static native void glEndList(); + public static void glMultMatrix(FloatBuffer m) { BufferChecks.checkBuffer(m, 16); nglMultMatrixf(m, m.position()); } private static native void nglMultMatrixf(FloatBuffer m, int m_offset); + public static native void glShadeModel(int mode); + public static void glSelectBuffer(IntBuffer buffer) { BufferChecks.checkDirect(buffer); nglSelectBuffer(buffer.remaining(), buffer, buffer.position()); } private static native void nglSelectBuffer(int size, IntBuffer buffer, int buffer_offset); + public static native void glScissor(int x, int y, int width, int height); public static native void glScalef(float x, float y, float z); public static native void glRotatef(float angle, float x, float y, float z); public static native int glRenderMode(int mode); public static native void glRectf(float x1, float y1, float x2, float y2); public static native void glRecti(int x1, int y1, int x2, int y2); + + // --------------------------- public static void glReadPixels(int x, int y, int width, int height, int format, int type, ByteBuffer pixels) { + GLBufferChecks.ensurePackPBOdisabled(); BufferChecks.checkBuffer(pixels, GLBufferChecks.calculateImageStorage(format, type, width, height, 1)); nglReadPixels(x, y, width, height, format, type, pixels, pixels.position()); } public static void glReadPixels(int x, int y, int width, int height, int format, int type, ShortBuffer pixels) { + GLBufferChecks.ensurePackPBOdisabled(); BufferChecks.checkBuffer(pixels, GLBufferChecks.calculateImageStorage(format, type, width, height, 1)>>1); nglReadPixels(x, y, width, height, format, type, pixels, pixels.position() << 1); } public static void glReadPixels(int x, int y, int width, int height, int format, int type, IntBuffer pixels) { + GLBufferChecks.ensurePackPBOdisabled(); BufferChecks.checkBuffer(pixels, GLBufferChecks.calculateImageStorage(format, type, width, height, 1)>>2); nglReadPixels(x, y, width, height, format, type, pixels, pixels.position() << 2); } private static native void nglReadPixels(int x, int y, int width, int height, int format, int type, Buffer pixels, int pixels_offset); + + public static void glReadPixels(int x, int y, int width, int height, int format, int type, int buffer_offset) { + GLBufferChecks.ensurePackPBOenabled(); + nglReadPixelsBO(x, y, width, height, format, type, buffer_offset); + } + private static native void nglReadPixelsBO(int x, int y, int width, int height, int format, int type, int buffer_offset); + // --------------------------- + public static native void glReadBuffer(int mode); public static native void glRasterPos2f(float x, float y); public static native void glRasterPos2i(int x, int y); @@ -1230,27 +1424,36 @@ public final class GL11 { public static native void glPopName(); public static native void glPushMatrix(); public static native void glPopMatrix(); + public static void glPushClientAttrib(int mask) { VBOTracker.getClientAttribStack().pushState(); VBOTracker.getClientAttribStack().setState(mask); if ((mask & GL_CLIENT_VERTEX_ARRAY_BIT) != 0) { VBOTracker.getVBOArrayStack().pushState(); VBOTracker.getVBOElementStack().pushState(); + VBOTracker.getPBOPackStack().pushState(); + VBOTracker.getPBOUnpackStack().pushState(); } nglPushClientAttrib(mask); } private static native void nglPushClientAttrib(int mask); + public static void glPopClientAttrib() { if ((VBOTracker.getClientAttribStack().popState() & GL_CLIENT_VERTEX_ARRAY_BIT) != 0) { VBOTracker.getVBOArrayStack().popState(); - VBOTracker.getVBOElementStack().popState(); + VBOTracker.getVBOElementStack().popState(); + VBOTracker.getPBOPackStack().popState(); + VBOTracker.getPBOUnpackStack().popState(); } nglPopClientAttrib(); } private static native void nglPopClientAttrib(); + public static native void glPushAttrib(int mask); public static native void glPopAttrib(); public static native void glStencilFunc(int func, int ref, int mask); + + // --------------------------- public static void glVertexPointer(int size, int stride, FloatBuffer pointer) { BufferChecks.checkDirect(pointer); GLBufferChecks.ensureArrayVBOdisabled(); @@ -1262,11 +1465,14 @@ public final class GL11 { nglVertexPointer(size, GL_INT, stride, pointer, pointer.position() << 2); } private static native void nglVertexPointer(int size, int type, int stride, Buffer pointer, int pointer_offset); + public static void glVertexPointer(int size, int type, int stride, int buffer_offset) { GLBufferChecks.ensureArrayVBOenabled(); nglVertexPointerVBO(size, type, stride, buffer_offset); } private static native void nglVertexPointerVBO(int size, int type, int stride, int buffer_offset); + // --------------------------- + public static native void glVertex2f(float x, float y); public static native void glVertex2i(int x, int y); public static native void glVertex3f(float x, float y, float z); @@ -1277,99 +1483,141 @@ public final class GL11 { // --------------------------- public static void glTexImage1D(int target, int level, int internalformat, int width, int border, int format, int type, ByteBuffer pixels) { + GLBufferChecks.ensureUnpackPBOdisabled(); if ( pixels != null ) BufferChecks.checkBuffer(pixels, GLBufferChecks.calculateTexImage1DStorage(format, type, width, border)); nglTexImage1D(target, level, internalformat, width, border, format, type, pixels, pixels != null ? pixels.position() : 0); } public static void glTexImage1D(int target, int level, int internalformat, int width, int border, int format, int type, ShortBuffer pixels) { + GLBufferChecks.ensureUnpackPBOdisabled(); if ( pixels != null ) BufferChecks.checkBuffer(pixels, GLBufferChecks.calculateTexImage1DStorage(format, type, width, border) >> 1); nglTexImage1D(target, level, internalformat, width, border, format, type, pixels, pixels != null ? pixels.position() << 1 : 0); } public static void glTexImage1D(int target, int level, int internalformat, int width, int border, int format, int type, IntBuffer pixels) { + GLBufferChecks.ensureUnpackPBOdisabled(); if ( pixels != null ) BufferChecks.checkBuffer(pixels, GLBufferChecks.calculateTexImage1DStorage(format, type, width, border) >> 2); nglTexImage1D(target, level, internalformat, width, border, format, type, pixels, pixels != null ? pixels.position() << 2 : 0); } public static void glTexImage1D(int target, int level, int internalformat, int width, int border, int format, int type, FloatBuffer pixels) { + GLBufferChecks.ensureUnpackPBOdisabled(); if ( pixels != null ) BufferChecks.checkBuffer(pixels, GLBufferChecks.calculateTexImage1DStorage(format, type, width, border) >> 2); nglTexImage1D(target, level, internalformat, width, border, format, type, pixels, pixels != null ? pixels.position() << 2 : 0); } private static native void nglTexImage1D(int target, int level, int internalformat, int width, int border, int format, int type, Buffer pixels, int pixels_offset); + + public static void glTexImage1D(int target, int level, int internalformat, int width, int border, int format, int type, int buffer_offset) { + GLBufferChecks.ensureUnpackPBOenabled(); + nglTexImage1DBO(target, level, internalformat, width, border, format, type, buffer_offset); + } + private static native void nglTexImage1DBO(int target, int level, int internalformat, int width, int border, int format, int type, int buffer_offset); // --------------------------- // --------------------------- public static void glTexImage2D(int target, int level, int internalformat, int width, int height, int border, int format, int type, ByteBuffer pixels) { + GLBufferChecks.ensureUnpackPBOdisabled(); if ( pixels != null ) BufferChecks.checkBuffer(pixels, GLBufferChecks.calculateTexImage2DStorage(format, type, width, height, border)); nglTexImage2D(target, level, internalformat, width, height, border, format, type, pixels, pixels != null ? pixels.position() : 0); } public static void glTexImage2D(int target, int level, int internalformat, int width, int height, int border, int format, int type, ShortBuffer pixels) { + GLBufferChecks.ensureUnpackPBOdisabled(); if ( pixels != null ) BufferChecks.checkBuffer(pixels, GLBufferChecks.calculateTexImage2DStorage(format, type, width, height, border) >> 1); nglTexImage2D(target, level, internalformat, width, height, border, format, type, pixels, pixels != null ? pixels.position() << 1 : 0); } public static void glTexImage2D(int target, int level, int internalformat, int width, int height, int border, int format, int type, IntBuffer pixels) { + GLBufferChecks.ensureUnpackPBOdisabled(); if ( pixels != null ) BufferChecks.checkBuffer(pixels, GLBufferChecks.calculateTexImage2DStorage(format, type, width, height, border) >> 2); nglTexImage2D(target, level, internalformat, width, height, border, format, type, pixels, pixels != null ? pixels.position() << 2 : 0); } public static void glTexImage2D(int target, int level, int internalformat, int width, int height, int border, int format, int type, FloatBuffer pixels) { + GLBufferChecks.ensureUnpackPBOdisabled(); if ( pixels != null ) BufferChecks.checkBuffer(pixels, GLBufferChecks.calculateTexImage2DStorage(format, type, width, height, border) >> 2); nglTexImage2D(target, level, internalformat, width, height, border, format, type, pixels, pixels != null ? pixels.position() << 2 : 0); } private static native void nglTexImage2D(int target, int level, int internalformat, int width, int height, int border, int format, int type, Buffer pixels, int pixels_offset); + + public static void glTexImage2D(int target, int level, int internalformat, int width, int height, int border, int format, int type, int buffer_offset) { + GLBufferChecks.ensureUnpackPBOenabled(); + nglTexImage2DBO(target, level, internalformat, width, height, border, format, type, buffer_offset); + } + private static native void nglTexImage2DBO(int target, int level, int internalformat, int width, int height, int border, int format, int type, int buffer_offset); // --------------------------- // --------------------------- public static void glTexSubImage1D(int target, int level, int xoffset, int width, int format, int type, ByteBuffer pixels) { + GLBufferChecks.ensureUnpackPBOdisabled(); BufferChecks.checkBuffer(pixels, GLBufferChecks.calculateImageStorage(format, type, width, 1, 1)); nglTexSubImage1D(target, level, xoffset, width, format, type, pixels, pixels.position()); } public static void glTexSubImage1D(int target, int level, int xoffset, int width, int format, int type, ShortBuffer pixels) { + GLBufferChecks.ensureUnpackPBOdisabled(); BufferChecks.checkBuffer(pixels, GLBufferChecks.calculateImageStorage(format, type, width, 1, 1) >> 1); nglTexSubImage1D(target, level, xoffset, width, format, type, pixels, pixels.position() << 1); } public static void glTexSubImage1D(int target, int level, int xoffset, int width, int format, int type, IntBuffer pixels) { + GLBufferChecks.ensureUnpackPBOdisabled(); BufferChecks.checkBuffer(pixels, GLBufferChecks.calculateImageStorage(format, type, width, 1, 1) >> 2); nglTexSubImage1D(target, level, xoffset, width, format, type, pixels, pixels.position() << 2); } public static void glTexSubImage1D(int target, int level, int xoffset, int width, int format, int type, FloatBuffer pixels) { + GLBufferChecks.ensureUnpackPBOdisabled(); BufferChecks.checkBuffer(pixels, GLBufferChecks.calculateImageStorage(format, type, width, 1, 1) >> 2); nglTexSubImage1D(target, level, xoffset, width, format, type, pixels, pixels.position() << 2); } private static native void nglTexSubImage1D(int target, int level, int xoffset, int width, int format, int type, Buffer pixels, int pixels_offset); + + public static void glTexSubImage1D(int target, int level, int xoffset, int width, int format, int type, int buffer_offset) { + GLBufferChecks.ensureUnpackPBOenabled(); + nglTexSubImage1DBO(target, level, xoffset, width, format, type, buffer_offset); + } + private static native void nglTexSubImage1DBO(int target, int level, int xoffset, int width, int format, int type, int buffer_offset); // --------------------------- // --------------------------- public static void glTexSubImage2D(int target, int level, int xoffset, int yoffset, int width, int height, int format, int type, ByteBuffer pixels) { + GLBufferChecks.ensureUnpackPBOdisabled(); BufferChecks.checkBuffer(pixels, GLBufferChecks.calculateImageStorage(format, type, width, height, 1)); nglTexSubImage2D(target, level, xoffset, yoffset, width, height, format, type, pixels, pixels.position()); } public static void glTexSubImage2D(int target, int level, int xoffset, int yoffset, int width, int height, int format, int type, ShortBuffer pixels) { + GLBufferChecks.ensureUnpackPBOdisabled(); BufferChecks.checkBuffer(pixels, GLBufferChecks.calculateImageStorage(format, type, width, height, 1)>>1); nglTexSubImage2D(target, level, xoffset, yoffset, width, height, format, type, pixels, pixels.position() << 1); } public static void glTexSubImage2D(int target, int level, int xoffset, int yoffset, int width, int height, int format, int type, IntBuffer pixels) { + GLBufferChecks.ensureUnpackPBOdisabled(); BufferChecks.checkBuffer(pixels, GLBufferChecks.calculateImageStorage(format, type, width, height, 1)>>2); nglTexSubImage2D(target, level, xoffset, yoffset, width, height, format, type, pixels, pixels.position() << 2); } public static void glTexSubImage2D(int target, int level, int xoffset, int yoffset, int width, int height, int format, int type, FloatBuffer pixels) { + GLBufferChecks.ensureUnpackPBOdisabled(); BufferChecks.checkBuffer(pixels, GLBufferChecks.calculateImageStorage(format, type, width, height, 1) >> 2); nglTexSubImage2D(target, level, xoffset, yoffset, width, height, format, type, pixels, pixels.position() << 2); } private static native void nglTexSubImage2D(int target, int level, int xoffset, int yoffset, int width, int height, int format, int type, Buffer pixels, int pixels_offset); + + public static void glTexSubImage2D(int target, int level, int xoffset, int yoffset, int width, int height, int format, int type, int buffer_offset) { + GLBufferChecks.ensureUnpackPBOenabled(); + nglTexSubImage2DBO(target, level, xoffset, yoffset, width, height, format, type, buffer_offset); + } + private static native void nglTexSubImage2DBO(int target, int level, int xoffset, int yoffset, int width, int height, int format, int type, int buffer_offset); // --------------------------- public static native void glTexParameterf(int target, int pname, float param); public static native void glTexParameteri(int target, int pname, int param); + public static void glTexParameter(int target, int pname, FloatBuffer param) { BufferChecks.checkBuffer(param); nglTexParameterfv(target, pname, param, param.position()); } private static native void nglTexParameterfv(int target, int pname, FloatBuffer param, int param_position); + public static void glTexParameter(int target, int pname, IntBuffer param) { BufferChecks.checkBuffer(param); nglTexParameteriv(target, pname, param, param.position()); @@ -1377,40 +1625,49 @@ public final class GL11 { private static native void nglTexParameteriv(int target, int pname, IntBuffer param, int param_position); public static native void glTexGenf(int coord, int pname, float param); + public static void glTexGen(int coord, int pname, FloatBuffer params) { BufferChecks.checkBuffer(params); nglTexGenfv(coord, pname, params, params.position()); } private static native void nglTexGenfv(int coord, int pname, FloatBuffer params, int params_offset); + public static native void glTexGeni(int coord, int pname, int param); + public static void glTexGen(int coord, int pname, IntBuffer params) { BufferChecks.checkBuffer(params); nglTexGeniv(coord, pname, params, params.position()); } private static native void nglTexGeniv(int coord, int pname, IntBuffer params, int params_offset); + public static native void glTexEnvf(int target, int pname, float param); public static native void glTexEnvi(int target, int pname, int param); + public static void glTexEnv(int target, int pname, FloatBuffer params) { BufferChecks.checkBuffer(params); nglTexEnvfv(target, pname, params, params.position()); } private static native void nglTexEnvfv(int target, int pname, FloatBuffer params, int params_offset); + public static void glTexEnv(int target, int pname, IntBuffer params) { BufferChecks.checkBuffer(params); nglTexEnviv(target, pname, params, params.position()); } private static native void nglTexEnviv(int target, int pname, IntBuffer params, int params_offset); + public static void glTexCoordPointer(int size, int stride, FloatBuffer pointer) { BufferChecks.checkDirect(pointer); GLBufferChecks.ensureArrayVBOdisabled(); nglTexCoordPointer(size, GL_FLOAT, stride, pointer, pointer.position() << 2); } private static native void nglTexCoordPointer(int size, int type, int stride, Buffer pointer, int pointer_offset); + public static void glTexCoordPointer(int size, int type, int stride, int buffer_offset) { GLBufferChecks.ensureArrayVBOenabled(); nglTexCoordPointerVBO(size, type, stride, buffer_offset); } private static native void nglTexCoordPointerVBO(int size, int type, int stride, int buffer_offset); + public static native void glTexCoord1f(float s); public static native void glTexCoord2f(float s, float t); public static native void glTexCoord3f(float s, float t, float r); @@ -1418,5 +1675,4 @@ public final class GL11 { public static native void glStencilOp(int fail, int zfail, int zpass); public static native void glStencilMask(int mask); public static native void glViewport(int x, int y, int width, int height); -} - +} \ No newline at end of file diff --git a/src/java/org/lwjgl/opengl/GL12.java b/src/java/org/lwjgl/opengl/GL12.java index bb07202a..34c6ebd2 100644 --- a/src/java/org/lwjgl/opengl/GL12.java +++ b/src/java/org/lwjgl/opengl/GL12.java @@ -126,54 +126,66 @@ public final class GL12 { // --------------------------- public static void glTexImage3D(int target, int level, int internalFormat, int width, int height, int depth, int border, int format, int type, ByteBuffer pixels) { + GLBufferChecks.ensureUnpackPBOdisabled(); if ( pixels != null ) BufferChecks.checkBuffer(pixels, GLBufferChecks.calculateTexImage3DStorage(format, type, width, height, depth, border)); nglTexImage3D(target, level, internalFormat, width, height, depth, border, format, type, pixels, pixels != null ? pixels.position() : 0); } - public static void glTexImage3D(int target, int level, int internalFormat, int width, int height, int depth, int border, int format, int type, ShortBuffer pixels) { + GLBufferChecks.ensureUnpackPBOdisabled(); if ( pixels != null ) BufferChecks.checkBuffer(pixels, GLBufferChecks.calculateTexImage3DStorage(format, type, width, height, depth, border) >> 1); nglTexImage3D(target, level, internalFormat, width, height, depth, border, format, type, pixels, pixels != null ? pixels.position() << 1 : 0); } - public static void glTexImage3D(int target, int level, int internalFormat, int width, int height, int depth, int border, int format, int type, IntBuffer pixels) { + GLBufferChecks.ensureUnpackPBOdisabled(); if ( pixels != null ) BufferChecks.checkBuffer(pixels, GLBufferChecks.calculateTexImage3DStorage(format, type, width, height, depth, border) >> 2); nglTexImage3D(target, level, internalFormat, width, height, depth, border, format, type, pixels, pixels != null ? pixels.position() << 2 : 0); } - public static void glTexImage3D(int target, int level, int internalFormat, int width, int height, int depth, int border, int format, int type, FloatBuffer pixels) { + GLBufferChecks.ensureUnpackPBOdisabled(); if ( pixels != null ) BufferChecks.checkBuffer(pixels, GLBufferChecks.calculateTexImage3DStorage(format, type, width, height, depth, border) >> 2); nglTexImage3D(target, level, internalFormat, width, height, depth, border, format, type, pixels, pixels != null ? pixels.position() << 2 : 0); } - private static native void nglTexImage3D(int target, int level, int internalFormat, int width, int height, int depth, int border, int format, int type, Buffer pixels, int pixels_offset); + + public static void glTexImage3D(int target, int level, int internalFormat, int width, int height, int depth, int border, int format, int type, int buffer_offset) { + GLBufferChecks.ensureUnpackPBOenabled(); + nglTexImage3DBO(target, level, internalFormat, width, height, depth, border, format, type, buffer_offset); + } + private static native void nglTexImage3DBO(int target, int level, int internalFormat, int width, int height, int depth, int border, int format, int type, int buffer_offset); // --------------------------- // --------------------------- public static void glTexSubImage3D(int target, int level, int xoffset, int yoffset, int zoffset, int width, int height, int depth, int format, int type, ByteBuffer pixels) { + GLBufferChecks.ensureUnpackPBOdisabled(); BufferChecks.checkBuffer(pixels, GLBufferChecks.calculateImageStorage(format, type, width, height, depth)); nglTexSubImage3D(target, level, xoffset, yoffset, zoffset, width, height, depth, format, type, pixels, pixels.position()); } - public static void glTexSubImage3D(int target, int level, int xoffset, int yoffset, int zoffset, int width, int height, int depth, int format, int type, ShortBuffer pixels) { + GLBufferChecks.ensureUnpackPBOdisabled(); BufferChecks.checkBuffer(pixels, GLBufferChecks.calculateImageStorage(format, type, width, height, depth) >> 1); nglTexSubImage3D(target, level, xoffset, yoffset, zoffset, width, height, depth, format, type, pixels, pixels.position() << 1); } - public static void glTexSubImage3D(int target, int level, int xoffset, int yoffset, int zoffset, int width, int height, int depth, int format, int type, IntBuffer pixels) { + GLBufferChecks.ensureUnpackPBOdisabled(); BufferChecks.checkBuffer(pixels, GLBufferChecks.calculateImageStorage(format, type, width, height, depth) >> 2); nglTexSubImage3D(target, level, xoffset, yoffset, zoffset, width, height, depth, format, type, pixels, pixels.position() << 2); } - public static void glTexSubImage3D(int target, int level, int xoffset, int yoffset, int zoffset, int width, int height, int depth, int format, int type, FloatBuffer pixels) { + GLBufferChecks.ensureUnpackPBOdisabled(); BufferChecks.checkBuffer(pixels, GLBufferChecks.calculateImageStorage(format, type, width, height, depth) >> 2); nglTexSubImage3D(target, level, xoffset, yoffset, zoffset, width, height, depth, format, type, pixels, pixels.position() << 2); } - private static native void nglTexSubImage3D(int target, int level, int xoffset, int yoffset, int zoffset, int width, int height, int depth, int format, int type, Buffer pixels, int pixels_offset); + + public static void glTexSubImage3D(int target, int level, int xoffset, int yoffset, int zoffset, int width, int height, int depth, int format, int type, int buffer_offset) { + GLBufferChecks.ensureUnpackPBOenabled(); + nglTexSubImage3DBO(target, level, xoffset, yoffset, zoffset, width, height, depth, format, type, buffer_offset); + } + private static native void nglTexSubImage3DBO(int target, int level, int xoffset, int yoffset, int zoffset, int width, int height, int depth, int format, int type, int buffer_offset); // --------------------------- public static native void glCopyTexSubImage3D(int target, int level, int xoffset, int yoffset, int zoffset, int x, int y, int width, int height); diff --git a/src/java/org/lwjgl/opengl/GL13.java b/src/java/org/lwjgl/opengl/GL13.java index 392e2447..84c527c4 100644 --- a/src/java/org/lwjgl/opengl/GL13.java +++ b/src/java/org/lwjgl/opengl/GL13.java @@ -161,158 +161,214 @@ public final class GL13 { public static native void glClientActiveTexture(int texture); + // --------------------------- public static void glCompressedTexImage1D(int target, int level, int internalformat, int width, int border, int imageSize, ByteBuffer data) { + GLBufferChecks.ensureUnpackPBOdisabled(); BufferChecks.checkDirect(data); nglCompressedTexImage1D(target, level, internalformat, width, border, imageSize, data, data.position()); } - public static void glCompressedTexImage1D(int target, int level, int internalformat, int width, int border, int imageSize, ShortBuffer data) { + GLBufferChecks.ensureUnpackPBOdisabled(); BufferChecks.checkDirect(data); nglCompressedTexImage1D(target, level, internalformat, width, border, imageSize, data, data.position() << 1); } - public static void glCompressedTexImage1D(int target, int level, int internalformat, int width, int border, int imageSize, IntBuffer data) { + GLBufferChecks.ensureUnpackPBOdisabled(); BufferChecks.checkDirect(data); nglCompressedTexImage1D(target, level, internalformat, width, border, imageSize, data, data.position() << 2); } - public static void glCompressedTexImage1D(int target, int level, int internalformat, int width, int border, int imageSize, FloatBuffer data) { + GLBufferChecks.ensureUnpackPBOdisabled(); BufferChecks.checkDirect(data); nglCompressedTexImage1D(target, level, internalformat, width, border, imageSize, data, data.position() << 2); } - private static native void nglCompressedTexImage1D(int target, int level, int internalformat, int width, int border, int imageSize, Buffer data, int data_offset); + public static void glCompressedTexImage1D(int target, int level, int internalformat, int width, int border, int imageSize, int buffer_offset) { + GLBufferChecks.ensureUnpackPBOenabled(); + nglCompressedTexImage1DBO(target, level, internalformat, width, border, imageSize, buffer_offset); + } + private static native void nglCompressedTexImage1DBO(int target, int level, int internalformat, int width, int border, int imageSize, int buffer_offset); + // --------------------------- + + // --------------------------- public static void glCompressedTexImage2D(int target, int level, int internalformat, int width, int height, int border, int imageSize, ByteBuffer data) { + GLBufferChecks.ensureUnpackPBOdisabled(); BufferChecks.checkDirect(data); nglCompressedTexImage2D(target, level, internalformat, width, height, border, imageSize, data, data.position()); } - public static void glCompressedTexImage2D(int target, int level, int internalformat, int width, int height, int border, int imageSize, ShortBuffer data) { + GLBufferChecks.ensureUnpackPBOdisabled(); BufferChecks.checkDirect(data); nglCompressedTexImage2D(target, level, internalformat, width, height, border, imageSize, data, data.position() << 1); } - public static void glCompressedTexImage2D(int target, int level, int internalformat, int width, int height, int border, int imageSize, IntBuffer data) { + GLBufferChecks.ensureUnpackPBOdisabled(); BufferChecks.checkDirect(data); nglCompressedTexImage2D(target, level, internalformat, width, height, border, imageSize, data, data.position() << 2); } - public static void glCompressedTexImage2D(int target, int level, int internalformat, int width, int height, int border, int imageSize, FloatBuffer data) { + GLBufferChecks.ensureUnpackPBOdisabled(); BufferChecks.checkDirect(data); nglCompressedTexImage2D(target, level, internalformat, width, height, border, imageSize, data, data.position() << 2); } - private static native void nglCompressedTexImage2D(int target, int level, int internalformat, int width, int height, int border, int imageSize, Buffer data, int data_offset); + public static void glCompressedTexImage2D(int target, int level, int internalformat, int width, int height, int border, int imageSize, int buffer_offset) { + GLBufferChecks.ensureUnpackPBOenabled(); + nglCompressedTexImage2DBO(target, level, internalformat, width, height, border, imageSize, buffer_offset); + } + private static native void nglCompressedTexImage2DBO(int target, int level, int internalformat, int width, int height, int border, int imageSize, int buffer_offset); + // --------------------------- + + // --------------------------- public static void glCompressedTexImage3D(int target, int level, int internalformat, int width, int height, int depth, int border, int imageSize, ByteBuffer data) { + GLBufferChecks.ensureUnpackPBOdisabled(); BufferChecks.checkDirect(data); nglCompressedTexImage3D(target, level, internalformat, width, height, depth, border, imageSize, data, data.position()); } - public static void glCompressedTexImage3D(int target, int level, int internalformat, int width, int height, int depth, int border, int imageSize, ShortBuffer data) { + GLBufferChecks.ensureUnpackPBOdisabled(); BufferChecks.checkDirect(data); nglCompressedTexImage3D(target, level, internalformat, width, height, depth, border, imageSize, data, data.position() << 1); } - public static void glCompressedTexImage3D(int target, int level, int internalformat, int width, int height, int depth, int border, int imageSize, IntBuffer data) { + GLBufferChecks.ensureUnpackPBOdisabled(); BufferChecks.checkDirect(data); nglCompressedTexImage3D(target, level, internalformat, width, height, depth, border, imageSize, data, data.position() << 2); } - public static void glCompressedTexImage3D(int target, int level, int internalformat, int width, int height, int depth, int border, int imageSize, FloatBuffer data) { + GLBufferChecks.ensureUnpackPBOdisabled(); BufferChecks.checkDirect(data); nglCompressedTexImage3D(target, level, internalformat, width, height, depth, border, imageSize, data, data.position() << 2); } - private static native void nglCompressedTexImage3D(int target, int level, int internalformat, int width, int height, int depth, int border, int imageSize, Buffer data, int data_offset); + public static void glCompressedTexImage3D(int target, int level, int internalformat, int width, int height, int depth, int border, int imageSize, int buffer_offset) { + GLBufferChecks.ensureUnpackPBOenabled(); + nglCompressedTexImage3DBO(target, level, internalformat, width, height, depth, border, imageSize, buffer_offset); + } + private static native void nglCompressedTexImage3DBO(int target, int level, int internalformat, int width, int height, int depth, int border, int imageSize, int buffer_offset); + // --------------------------- + + // --------------------------- public static void glCompressedTexSubImage1D(int target, int level, int xoffset, int width, int format, int imageSize, ByteBuffer data) { + GLBufferChecks.ensureUnpackPBOdisabled(); BufferChecks.checkDirect(data); nglCompressedTexSubImage1D(target, level, xoffset, width, format, imageSize, data, data.position()); } - public static void glCompressedTexSubImage1D(int target, int level, int xoffset, int width, int format, int imageSize, ShortBuffer data) { + GLBufferChecks.ensureUnpackPBOdisabled(); BufferChecks.checkDirect(data); nglCompressedTexSubImage1D(target, level, xoffset, width, format, imageSize, data, data.position() << 1); } - public static void glCompressedTexSubImage1D(int target, int level, int xoffset, int width, int format, int imageSize, IntBuffer data) { + GLBufferChecks.ensureUnpackPBOdisabled(); BufferChecks.checkDirect(data); nglCompressedTexSubImage1D(target, level, xoffset, width, format, imageSize, data, data.position() << 2); } - public static void glCompressedTexSubImage1D(int target, int level, int xoffset, int width, int format, int imageSize, FloatBuffer data) { + GLBufferChecks.ensureUnpackPBOdisabled(); BufferChecks.checkDirect(data); nglCompressedTexSubImage1D(target, level, xoffset, width, format, imageSize, data, data.position() << 2); } - private static native void nglCompressedTexSubImage1D(int target, int level, int xoffset, int width, int format, int imageSize, Buffer data, int data_offset); + public static void glCompressedTexSubImage1D(int target, int level, int xoffset, int width, int format, int imageSize, int buffer_offset) { + GLBufferChecks.ensureUnpackPBOenabled(); + nglCompressedTexSubImage1DBO(target, level, xoffset, width, format, imageSize, buffer_offset); + } + private static native void nglCompressedTexSubImage1DBO(int target, int level, int xoffset, int width, int format, int imageSize, int buffer_offset); + // --------------------------- + + // --------------------------- public static void glCompressedTexSubImage2D(int target, int level, int xoffset, int yoffset, int width, int height, int format, int imageSize, ByteBuffer data) { + GLBufferChecks.ensureUnpackPBOdisabled(); BufferChecks.checkDirect(data); nglCompressedTexSubImage2D(target, level, xoffset, yoffset, width, height, format, imageSize, data, data.position()); } - public static void glCompressedTexSubImage2D(int target, int level, int xoffset, int yoffset, int width, int height, int format, int imageSize, ShortBuffer data) { + GLBufferChecks.ensureUnpackPBOdisabled(); BufferChecks.checkDirect(data); nglCompressedTexSubImage2D(target, level, xoffset, yoffset, width, height, format, imageSize, data, data.position() << 1); } - public static void glCompressedTexSubImage2D(int target, int level, int xoffset, int yoffset, int width, int height, int format, int imageSize, IntBuffer data) { + GLBufferChecks.ensureUnpackPBOdisabled(); BufferChecks.checkDirect(data); nglCompressedTexSubImage2D(target, level, xoffset, yoffset, width, height, format, imageSize, data, data.position() << 2); } - public static void glCompressedTexSubImage2D(int target, int level, int xoffset, int yoffset, int width, int height, int format, int imageSize, FloatBuffer data) { + GLBufferChecks.ensureUnpackPBOdisabled(); BufferChecks.checkDirect(data); nglCompressedTexSubImage2D(target, level, xoffset, yoffset, width, height, format, imageSize, data, data.position() << 2); } - private static native void nglCompressedTexSubImage2D(int target, int level, int xoffset, int yoffset, int width, int height, int format, int imageSize, Buffer data, int data_offset); + public static void glCompressedTexSubImage2D(int target, int level, int xoffset, int yoffset, int width, int height, int format, int imageSize, int buffer_offset) { + GLBufferChecks.ensureUnpackPBOenabled(); + nglCompressedTexSubImage2DBO(target, level, xoffset, yoffset, width, height, format, imageSize, buffer_offset); + } + private static native void nglCompressedTexSubImage2DBO(int target, int level, int xoffset, int yoffset, int width, int height, int format, int imageSize, int buffer_offset); + // --------------------------- + + // --------------------------- public static void glCompressedTexSubImage3D(int target, int level, int xoffset, int yoffset, int zoffset, int width, int height, int depth, int format, int imageSize, ByteBuffer data) { + GLBufferChecks.ensureUnpackPBOdisabled(); BufferChecks.checkDirect(data); nglCompressedTexSubImage3D(target, level, xoffset, yoffset, zoffset, width, height, depth, format, imageSize, data, data.position()); } - public static void glCompressedTexSubImage3D(int target, int level, int xoffset, int yoffset, int zoffset, int width, int height, int depth, int format, int imageSize, ShortBuffer data) { + GLBufferChecks.ensureUnpackPBOdisabled(); BufferChecks.checkDirect(data); nglCompressedTexSubImage3D(target, level, xoffset, yoffset, zoffset, width, height, depth, format, imageSize, data, data.position() << 1); } - public static void glCompressedTexSubImage3D(int target, int level, int xoffset, int yoffset, int zoffset, int width, int height, int depth, int format, int imageSize, IntBuffer data) { + GLBufferChecks.ensureUnpackPBOdisabled(); BufferChecks.checkDirect(data); nglCompressedTexSubImage3D(target, level, xoffset, yoffset, zoffset, width, height, depth, format, imageSize, data, data.position() << 2); } - public static void glCompressedTexSubImage3D(int target, int level, int xoffset, int yoffset, int zoffset, int width, int height, int depth, int format, int imageSize, FloatBuffer data) { + GLBufferChecks.ensureUnpackPBOdisabled(); BufferChecks.checkDirect(data); nglCompressedTexSubImage3D(target, level, xoffset, yoffset, zoffset, width, height, depth, format, imageSize, data, data.position() << 2); } - private static native void nglCompressedTexSubImage3D(int target, int level, int xoffset, int yoffset, int zoffset, int width, int height, int depth, int format, int imageSize, Buffer data, int data_offset); + public static void glCompressedTexSubImage3D(int target, int level, int xoffset, int yoffset, int zoffset, int width, int height, int depth, int format, int imageSize, int buffer_offset) { + GLBufferChecks.ensureUnpackPBOenabled(); + nglCompressedTexSubImage3DBO(target, level, xoffset, yoffset, zoffset, width, height, depth, format, imageSize, buffer_offset); + } + private static native void nglCompressedTexSubImage3DBO(int target, int level, int xoffset, int yoffset, int zoffset, int width, int height, int depth, int format, int imageSize, int buffer_offset); + // --------------------------- + + // --------------------------- public static void glGetCompressedTexImage(int target, int lod, ByteBuffer img) { + GLBufferChecks.ensurePackPBOdisabled(); BufferChecks.checkDirect(img); // TODO: check buffer size valid nglGetCompressedTexImage(target, lod, img, img.position()); } - public static void glGetCompressedTexImage(int target, int lod, ShortBuffer img) { + GLBufferChecks.ensurePackPBOdisabled(); BufferChecks.checkDirect(img); // TODO: check buffer size valid nglGetCompressedTexImage(target, lod, img, img.position() << 1); } - public static void glGetCompressedTexImage(int target, int lod, IntBuffer img) { + GLBufferChecks.ensurePackPBOdisabled(); BufferChecks.checkDirect(img); // TODO: check buffer size valid nglGetCompressedTexImage(target, lod, img, img.position() << 2); } - private static native void nglGetCompressedTexImage(int target, int lod, Buffer img, int img_offset); + public static void glGetCompressedTexImage(int target, int lod, int buffer_offset) { + GLBufferChecks.ensurePackPBOenabled(); + nglGetCompressedTexImageBO(target, lod, buffer_offset); + } + private static native void nglGetCompressedTexImageBO(int target, int lod, int buffer_offset); + // --------------------------- + public static native void glMultiTexCoord1f(int target, float s); public static native void glMultiTexCoord2f(int target, float s, float t); diff --git a/src/java/org/lwjgl/opengl/GLBufferChecks.java b/src/java/org/lwjgl/opengl/GLBufferChecks.java index 7e283da6..93d06086 100644 --- a/src/java/org/lwjgl/opengl/GLBufferChecks.java +++ b/src/java/org/lwjgl/opengl/GLBufferChecks.java @@ -50,32 +50,52 @@ class GLBufferChecks { private GLBufferChecks() { } - /** Helper method to ensure that vertex buffer objects are disabled. If they are enabled, we'll throw an OpenGLException */ + /** Helper method to ensure that array buffer objects are disabled. If they are enabled, we'll throw an OpenGLException */ static void ensureArrayVBOdisabled() { - if ( VBOTracker.getVBOArrayStack().getState() != 0 ) { - throw new OpenGLException("Cannot use Buffers when VBO is enabled"); - } + if ( VBOTracker.getVBOArrayStack().getState() != 0 ) + throw new OpenGLException("Cannot use Buffers when Array Buffer Object is enabled"); } - /** Helper method to ensure that vertex buffer objects are enabled. If they are disabled, we'll throw an OpenGLException */ + /** Helper method to ensure that array buffer objects are enabled. If they are disabled, we'll throw an OpenGLException */ static void ensureArrayVBOenabled() { - if ( VBOTracker.getVBOArrayStack().getState() == 0 ) { - throw new OpenGLException("Cannot use offsets when VBO is disabled"); - } + if ( VBOTracker.getVBOArrayStack().getState() == 0 ) + throw new OpenGLException("Cannot use offsets when Array Buffer Object is disabled"); } - /** Helper method to ensure that vertex buffer objects are disabled. If they are enabled, we'll throw an OpenGLException */ + /** Helper method to ensure that element array buffer objects are disabled. If they are enabled, we'll throw an OpenGLException */ static void ensureElementVBOdisabled() { - if ( VBOTracker.getVBOElementStack().getState() != 0 ) { - throw new OpenGLException("Cannot use Buffers when VBO is enabled"); - } + if ( VBOTracker.getVBOElementStack().getState() != 0 ) + throw new OpenGLException("Cannot use Buffers when Element Array Buffer Object is enabled"); } - /** Helper method to ensure that vertex buffer objects are enabled. If they are disabled, we'll throw an OpenGLException */ + /** Helper method to ensure that element array buffer objects are enabled. If they are disabled, we'll throw an OpenGLException */ static void ensureElementVBOenabled() { - if ( VBOTracker.getVBOElementStack().getState() == 0 ) { - throw new OpenGLException("Cannot use offsets when VBO is disabled"); - } + if ( VBOTracker.getVBOElementStack().getState() == 0 ) + throw new OpenGLException("Cannot use offsets when Element Array Buffer Object is disabled"); + } + + /** Helper method to ensure that pixel pack buffer objects are disabled. If they are enabled, we'll throw an OpenGLException */ + static void ensurePackPBOdisabled() { + if ( VBOTracker.getPBOPackStack().getState() != 0 ) + throw new OpenGLException("Cannot use Buffers when Pixel Pack Buffer Object is enabled"); + } + + /** Helper method to ensure that pixel pack buffer objects are enabled. If they are disabled, we'll throw an OpenGLException */ + static void ensurePackPBOenabled() { + if ( VBOTracker.getPBOPackStack().getState() == 0 ) + throw new OpenGLException("Cannot use offsets when Pixel Pack Buffer Object is disabled"); + } + + /** Helper method to ensure that pixel unpack buffer objects are disabled. If they are enabled, we'll throw an OpenGLException */ + static void ensureUnpackPBOdisabled() { + if ( VBOTracker.getPBOUnpackStack().getState() != 0 ) + throw new OpenGLException("Cannot use Buffers when Pixel Unpack Buffer Object is enabled"); + } + + /** Helper method to ensure that pixel unpack buffer objects are enabled. If they are disabled, we'll throw an OpenGLException */ + static void ensureUnpackPBOenabled() { + if ( VBOTracker.getPBOUnpackStack().getState() == 0 ) + throw new OpenGLException("Cannot use offsets when Pixel Unpack Buffer Object is disabled"); } /** diff --git a/src/java/org/lwjgl/opengl/VBOTracker.java b/src/java/org/lwjgl/opengl/VBOTracker.java index c6c94f48..91840b4d 100644 --- a/src/java/org/lwjgl/opengl/VBOTracker.java +++ b/src/java/org/lwjgl/opengl/VBOTracker.java @@ -35,7 +35,7 @@ import java.util.WeakHashMap; import java.util.Map; /** Track Vertex Buffer Objects by context. */ -class VBOTracker { +final class VBOTracker { private static VBOTracker current_tracker; @@ -43,12 +43,21 @@ class VBOTracker { private final StateStack vbo_array_stack; private final StateStack vbo_element_stack; + + private final StateStack pbo_pack_stack; + private final StateStack pbo_unpack_stack; + private final StateStack attrib_stack; private VBOTracker() { int stack_size = Math.max(1, Util.glGetInteger(GL11.GL_MAX_CLIENT_ATTRIB_STACK_DEPTH)); + vbo_array_stack = new StateStack(stack_size, 0); vbo_element_stack = new StateStack(stack_size, 0); + + pbo_pack_stack = new StateStack(stack_size, 0); + pbo_unpack_stack = new StateStack(stack_size, 0); + attrib_stack = new StateStack(stack_size, 0); } @@ -60,6 +69,14 @@ class VBOTracker { return current_tracker.vbo_element_stack; } + static StateStack getPBOPackStack() { + return current_tracker.pbo_pack_stack; + } + + static StateStack getPBOUnpackStack() { + return current_tracker.pbo_unpack_stack; + } + static StateStack getClientAttribStack() { return current_tracker.attrib_stack; } diff --git a/src/java/org/lwjgl/util/GL.java b/src/java/org/lwjgl/util/GL.java index f4739960..04f4dc30 100644 --- a/src/java/org/lwjgl/util/GL.java +++ b/src/java/org/lwjgl/util/GL.java @@ -96,6 +96,19 @@ public class GL { GL11.glBitmap(width, height, xorig, yorig, xmove, ymove, bitmap); } + /** + * @param width + * @param height + * @param xorig + * @param yorig + * @param xmove + * @param ymove + * @param buffer_offect + */ + public static void glBitmap(int width, int height, float xorig, float yorig, float xmove, float ymove, int buffer_offect) { + GL11.glBitmap(width, height, xorig, yorig, xmove, ymove, buffer_offect); + } + /** * @param sfactor * @param dfactor @@ -467,6 +480,17 @@ public class GL { GL11.glDrawPixels(width, height, format, type, pixels); } + /** + * @param width + * @param height + * @param format + * @param type + * @param buffer_offset + */ + public static void glDrawPixels(int width, int height, int format, int type, int buffer_offset) { + GL11.glDrawPixels(width, height, format, type, buffer_offset); + } + /** @param flag */ public static void glEdgeFlag(boolean flag) { GL11.glEdgeFlag(flag); @@ -750,6 +774,14 @@ public class GL { GL11.glGetPixelMap(map, values); } + /** + * @param map + * @param buffer_offset + */ + public static void glGetPixelMapfv(int map, int buffer_offset) { + GL11.glGetPixelMapfv(map, buffer_offset); + } + /** * @param map * @param values @@ -758,6 +790,14 @@ public class GL { GL11.glGetPixelMap(map, values); } + /** + * @param map + * @param buffer_offset + */ + public static void glGetPixelMapuiv(int map, int buffer_offset) { + GL11.glGetPixelMapuiv(map, buffer_offset); + } + /** * @param map * @param values @@ -766,6 +806,14 @@ public class GL { GL11.glGetPixelMap(map, values); } + /** + * @param map + * @param buffer_offset + */ + public static void glGetPixelMapusv(int map, int buffer_offset) { + GL11.glGetPixelMapusv(map, buffer_offset); + } + /** * @param pname * @param size @@ -781,6 +829,13 @@ public class GL { GL11.glGetPolygonStipple(mask); } + /** + * @param buffer_offset + */ + public static void glGetPolygonStipple(int buffer_offset) { + GL11.glGetPolygonStipple(buffer_offset); + } + /** * @param name * @@ -859,6 +914,16 @@ public class GL { GL11.glGetTexImage(target, level, format, type, pixels); } + /** + * @param target + * @param level + * @param format + * @param type + * @param buffer_offset + */ + public static void glGetTexImage(int target, int level, int format, int type, int buffer_offset) { + GL11.glGetTexImage(target, level, format, type, buffer_offset); + } /** * @param target * @param level @@ -1280,6 +1345,15 @@ public class GL { GL11.glPixelMap(map, values); } + /** + * @param map + * @param mapsize + * @param buffer_offset + */ + public static void glPixelMapfv(int map, int mapsize, int buffer_offset) { + GL11.glPixelMapfv(map, mapsize, buffer_offset); + } + /** * @param map * @param values @@ -1288,6 +1362,15 @@ public class GL { GL11.glPixelMap(map, values); } + /** + * @param map + * @param mapsize + * @param buffer_offset + */ + public static void glPixelMapuiv(int map, int mapsize, int buffer_offset) { + GL11.glPixelMapuiv(map, mapsize, buffer_offset); + } + /** * @param map * @param values @@ -1296,6 +1379,15 @@ public class GL { GL11.glPixelMap(map, values); } + /** + * @param map + * @param mapsize + * @param buffer_offset + */ + public static void glPixelMapusv(int map, int mapsize, int buffer_offset) { + GL11.glPixelMapusv(map, mapsize, buffer_offset); + } + /** * @param pname * @param param @@ -1362,6 +1454,13 @@ public class GL { GL11.glPolygonStipple(mask); } + /** + * @param buffer_offset + */ + public static void glPolygonStipple(int buffer_offset) { + GL11.glPolygonStipple(buffer_offset); + } + /** * */ @@ -1510,6 +1609,19 @@ public class GL { GL11.glReadPixels(x, y, width, height, format, type, pixels); } + /** + * @param x + * @param y + * @param width + * @param height + * @param format + * @param type + * @param buffer_offset + */ + public static void glReadPixels(int x, int y, int width, int height, int format, int type, int buffer_offset) { + GL11.glReadPixels(x, y, width, height, format, type, buffer_offset); + } + /** * @param x1 * @param y1 @@ -1780,6 +1892,20 @@ public class GL { GL11.glTexImage1D(target, level, internalformat, width, border, format, type, pixels); } + /** + * @param target + * @param level + * @param internalformat + * @param width + * @param border + * @param format + * @param type + * @param buffer_offset + */ + public static void glTexImage1D(int target, int level, int internalformat, int width, int border, int format, int type, int buffer_offset) { + GL11.glTexImage1D(target, level, internalformat, width, border, format, type, buffer_offset); + } + /** * @param target * @param level @@ -1840,6 +1966,21 @@ public class GL { GL11.glTexImage2D(target, level, internalformat, width, height, border, format, type, pixels); } + /** + * @param target + * @param level + * @param internalformat + * @param width + * @param height + * @param border + * @param format + * @param type + * @param buffer_offset + */ + public static void glTexImage2D(int target, int level, int internalformat, int width, int height, int border, int format, int type, int buffer_offset) { + GL11.glTexImage2D(target, level, internalformat, width, height, border, format, type, buffer_offset); + } + /** * @param target * @param pname @@ -1915,6 +2056,19 @@ public class GL { GL11.glTexSubImage1D(target, level, xoffset, width, format, type, pixels); } + /** + * @param target + * @param level + * @param xoffset + * @param width + * @param format + * @param type + * @param buffer_offset + */ + public static void glTexSubImage1D(int target, int level, int xoffset, int width, int format, int type, int buffer_offset) { + GL11.glTexSubImage1D(target, level, xoffset, width, format, type, buffer_offset); + } + /** * @param target * @param level @@ -1960,6 +2114,21 @@ public class GL { GL11.glTexSubImage2D(target, level, xoffset, yoffset, width, height, format, type, pixels); } + /** + * @param target + * @param level + * @param xoffset + * @param yoffset + * @param width + * @param height + * @param format + * @param type + * @param buffer_offset + */ + public static void glTexSubImage2D(int target, int level, int xoffset, int yoffset, int width, int height, int format, int type, int buffer_offset) { + GL11.glTexSubImage2D(target, level, xoffset, yoffset, width, height, format, type, buffer_offset); + } + /** * @param x * @param y @@ -2182,6 +2351,22 @@ public class GL { GL12.glTexImage3D(target, level, internalFormat, width, height, depth, border, format, type, pixels); } + /** + * @param target + * @param level + * @param internalFormat + * @param width + * @param height + * @param depth + * @param border + * @param format + * @param type + * @param buffer_offset + */ + public static void glTexImage3D(int target, int level, int internalFormat, int width, int height, int depth, int border, int format, int type, int buffer_offset) { + GL12.glTexImage3D(target, level, internalFormat, width, height, depth, border, format, type, buffer_offset); + } + /** * @param target * @param level @@ -2250,6 +2435,23 @@ public class GL { GL12.glTexSubImage3D(target, level, xoffset, yoffset, zoffset, width, height, depth, format, type, pixels); } + /** + * @param target + * @param level + * @param xoffset + * @param yoffset + * @param zoffset + * @param width + * @param height + * @param depth + * @param format + * @param type + * @param buffer_offset + */ + public static void glTexSubImage3D(int target, int level, int xoffset, int yoffset, int zoffset, int width, int height, int depth, int format, int type, int buffer_offset) { + GL12.glTexSubImage3D(target, level, xoffset, yoffset, zoffset, width, height, depth, format, type, buffer_offset); + } + /** @param texture */ public static void glActiveTexture(int texture) { GL13.glActiveTexture(texture); @@ -2312,6 +2514,18 @@ public class GL { GL13.glCompressedTexImage1D(target, level, internalformat, width, border, imageSize, data); } + /** + * @param target + * @param level + * @param internalformat + * @param width + * @param border + * @param imageSize + * @param buffer_offset + */ + public static void glCompressedTexImage1D(int target, int level, int internalformat, int width, int border, int imageSize, int buffer_offset) { + GL13.glCompressedTexImage1D(target, level, internalformat, width, border, imageSize, buffer_offset); + } /** * @param target * @param level @@ -2368,6 +2582,19 @@ public class GL { GL13.glCompressedTexImage2D(target, level, internalformat, width, height, border, imageSize, data); } + /** + * @param target + * @param level + * @param internalformat + * @param width + * @param height + * @param border + * @param imageSize + * @param buffer_offset + */ + public static void glCompressedTexImage2D(int target, int level, int internalformat, int width, int height, int border, int imageSize, int buffer_offset) { + GL13.glCompressedTexImage2D(target, level, internalformat, width, height, border, imageSize, buffer_offset); + } /** * @param target * @param level @@ -2428,6 +2655,20 @@ public class GL { GL13.glCompressedTexImage3D(target, level, internalformat, width, height, depth, border, imageSize, data); } + /** + * @param target + * @param level + * @param internalformat + * @param width + * @param height + * @param depth + * @param border + * @param imageSize + * @param buffer_offset + */ + public static void glCompressedTexImage3D(int target, int level, int internalformat, int width, int height, int depth, int border, int imageSize, int buffer_offset) { + GL13.glCompressedTexImage3D(target, level, internalformat, width, height, depth, border, imageSize, buffer_offset); + } /** * @param target * @param level @@ -2480,6 +2721,18 @@ public class GL { GL13.glCompressedTexSubImage1D(target, level, xoffset, width, format, imageSize, data); } + /** + * @param target + * @param level + * @param xoffset + * @param width + * @param format + * @param imageSize + * @param buffer_offset + */ + public static void glCompressedTexSubImage1D(int target, int level, int xoffset, int width, int format, int imageSize, int buffer_offset) { + GL13.glCompressedTexSubImage1D(target, level, xoffset, width, format, imageSize, buffer_offset); + } /** * @param target * @param level @@ -2540,6 +2793,20 @@ public class GL { GL13.glCompressedTexSubImage2D(target, level, xoffset, yoffset, width, height, format, imageSize, data); } + /** + * @param target + * @param level + * @param xoffset + * @param yoffset + * @param width + * @param height + * @param format + * @param imageSize + * @param buffer_offset + */ + public static void glCompressedTexSubImage2D(int target, int level, int xoffset, int yoffset, int width, int height, int format, int imageSize, int buffer_offset) { + GL13.glCompressedTexSubImage2D(target, level, xoffset, yoffset, width, height, format, imageSize, buffer_offset); + } /** * @param target * @param level @@ -2608,6 +2875,22 @@ public class GL { GL13.glCompressedTexSubImage3D(target, level, xoffset, yoffset, zoffset, width, height, depth, format, imageSize, data); } + /** + * @param target + * @param level + * @param xoffset + * @param yoffset + * @param zoffset + * @param width + * @param height + * @param depth + * @param format + * @param imageSize + * @param buffer_offset + */ + public static void glCompressedTexSubImage3D(int target, int level, int xoffset, int yoffset, int zoffset, int width, int height, int depth, int format, int imageSize, int buffer_offset) { + GL13.glCompressedTexSubImage3D(target, level, xoffset, yoffset, zoffset, width, height, depth, format, imageSize, buffer_offset); + } /** * @param target * @param lod @@ -2635,6 +2918,15 @@ public class GL { GL13.glGetCompressedTexImage(target, lod, img); } + /** + * @param target + * @param lod + * @param buffer_offset + */ + public static void glGetCompressedTexImage(int target, int lod, int buffer_offset) { + GL13.glGetCompressedTexImage(target, lod, buffer_offset); + } + /** @param m */ public static void glLoadTransposeMatrix(FloatBuffer m) { GL13.glLoadTransposeMatrix(m); @@ -3411,6 +3703,18 @@ public class GL { ARBImaging.glColorSubTable(target, start, count, format, type, data); } + /** + * @param target + * @param start + * @param count + * @param format + * @param type + * @param buffer_offset + */ + public static void glColorSubTable(int target, int start, int count, int format, int type, int buffer_offset) { + ARBImaging.glColorSubTable(target, start, count, format, type, buffer_offset); + } + /** * @param target * @param internalFormat @@ -3435,6 +3739,18 @@ public class GL { ARBImaging.glColorTable(target, internalFormat, width, format, type, data); } + /** + * @param target + * @param internalFormat + * @param width + * @param format + * @param type + * @param buffer_offset + */ + public static void glColorTable(int target, int internalFormat, int width, int format, int type, int buffer_offset) { + ARBImaging.glColorTable(target, internalFormat, width, format, type, buffer_offset); + } + /** * @param target * @param pname @@ -3501,6 +3817,18 @@ public class GL { ARBImaging.glConvolutionFilter1D(target, internalformat, width, format, type, image); } + /** + * @param target + * @param internalformat + * @param width + * @param format + * @param type + * @param buffer_offset + */ + public static void glConvolutionFilter1D(int target, int internalformat, int width, int format, int type, int buffer_offset) { + ARBImaging.glConvolutionFilter1D(target, internalformat, width, format, type, buffer_offset); + + } /** * @param target * @param internalformat @@ -3540,6 +3868,19 @@ public class GL { ARBImaging.glConvolutionFilter2D(target, internalformat, width, height, format, type, image); } + /** + * @param target + * @param internalformat + * @param width + * @param height + * @param format + * @param type + * @param buffer_offset + */ + public static void glConvolutionFilter2D(int target, int internalformat, int width, int height, int format, int type, int buffer_offset) { + ARBImaging.glConvolutionFilter2D(target, internalformat, width, height, format, type, buffer_offset); + } + /** * @param target * @param pname @@ -3699,6 +4040,16 @@ public class GL { ARBImaging.glGetConvolutionFilter(target, format, type, image); } + /** + * @param target + * @param format + * @param type + * @param buffer_offset + */ + public static void glGetConvolutionFilter(int target, int format, int type, int buffer_offset) { + ARBImaging.glGetConvolutionFilter(target, format, type, buffer_offset); + } + /** * @param target * @param pname @@ -3761,6 +4112,10 @@ public class GL { ARBImaging.glGetHistogram(target, reset, format, type, values); } + public static void glGetHistogram(int target, boolean reset, int format, int type, int buffer_offset) { + ARBImaging.glGetHistogram(target, reset, format, type, buffer_offset); + } + /** * @param target * @param pname @@ -3823,6 +4178,17 @@ public class GL { ARBImaging.glGetMinmax(target, reset, format, types, values); } + /** + * @param target + * @param reset + * @param format + * @param types + * @param buffer_offset + */ + public static void glGetMinmax(int target, boolean reset, int format, int types, int buffer_offset) { + ARBImaging.glGetMinmax(target, reset, format, types, buffer_offset); + } + /** * @param target * @param pname @@ -3850,8 +4216,19 @@ public class GL { * @param span */ public static void glGetSeparableFilter(int target, int format, int type, Buffer row, Buffer column, Buffer span) { - ARBImaging - .glGetSeparableFilter(target, format, type, row, column, span); + ARBImaging.glGetSeparableFilter(target, format, type, row, column, span); + } + + /** + * @param target + * @param format + * @param type + * @param row_offset + * @param column_offset + * @param span_offset + */ + public static void glGetSeparableFilter(int target, int format, int type, int row_offset, int column_offset, int span_offset) { + ARBImaging.glGetSeparableFilter(target, format, type, row_offset, column_offset, span_offset); } /** @@ -3897,6 +4274,20 @@ public class GL { ARBImaging.glSeparableFilter2D(target, internalformat, width, height, format, type, row, column); } + /** + * @param target + * @param internalformat + * @param width + * @param height + * @param format + * @param type + * @param row_offset + * @param column_offset + */ + public static void glSeparableFilter2D(int target, int internalformat, int width, int height, int format, int type, int row_offset, int column_offset) { + ARBImaging.glSeparableFilter2D(target, internalformat, width, height, format, type, row_offset, column_offset); + } + /** @param index */ public static void glCurrentPaletteMatrixARB(int index) { ARBMatrixPalette.glCurrentPaletteMatrixARB(index); diff --git a/src/java/org/lwjgl/util/GLImpl.java b/src/java/org/lwjgl/util/GLImpl.java index 19f67fe7..3b852ad9 100644 --- a/src/java/org/lwjgl/util/GLImpl.java +++ b/src/java/org/lwjgl/util/GLImpl.java @@ -248,6 +248,20 @@ public class GLImpl implements IGL { GL.glBitmap(width, height, xorig, yorig, xmove, ymove, bitmap); } + /** + * + * @param width + * @param height + * @param xorig + * @param yorig + * @param xmove + * @param ymove + * @param buffer_offect + */ + public void glBitmap(int width, int height, float xorig, float yorig, float xmove, float ymove, int buffer_offect) { + GL.glBitmap(width, height, xorig, yorig, xmove, ymove, buffer_offect); + } + /** * @param red * @param green @@ -6548,4 +6562,397 @@ public class GLImpl implements IGL { GL.glStencilOpSeparate(face, sfail, dpfail, dppass); } + /** + * @param width + * @param height + * @param format + * @param type + * @param buffer_offset + */ + public void glDrawPixels(int width, int height, int format, int type, int buffer_offset) { + GL.glDrawPixels(width, height, format, type, buffer_offset); + } + + /** + * @param map + * @param buffer_offset + */ + public void glGetPixelMapfv(int map, int buffer_offset) { + GL.glGetPixelMapfv(map, buffer_offset); + } + + /** + * @param map + * @param buffer_offset + */ + public void glGetPixelMapuiv(int map, int buffer_offset) { + GL.glGetPixelMapuiv(map, buffer_offset); + } + + /** + * @param map + * @param buffer_offset + */ + public void glGetPixelMapusv(int map, int buffer_offset) { + GL.glGetPixelMapusv(map, buffer_offset); + } + + /** + * @param buffer_offset + */ + public void glGetPolygonStipple(int buffer_offset) { + GL.glGetPolygonStipple(buffer_offset); + } + + /** + * @param target + * @param level + * @param format + * @param type + * @param buffer_offset + */ + public void glGetTexImage(int target, int level, int format, int type, int buffer_offset) { + GL.glGetTexImage(target, level, format, type, buffer_offset); + } + + /** + * @param map + * @param mapsize + * @param buffer_offset + */ + public void glPixelMapfv(int map, int mapsize, int buffer_offset) { + GL.glPixelMapfv(map, mapsize, buffer_offset); + } + + /** + * @param map + * @param mapsize + * @param buffer_offset + */ + public void glPixelMapuiv(int map, int mapsize, int buffer_offset) { + GL.glPixelMapuiv(map, mapsize, buffer_offset); + } + + /** + * @param map + * @param mapsize + * @param buffer_offset + */ + public void glPixelMapusv(int map, int mapsize, int buffer_offset) { + GL.glPixelMapusv(map, mapsize, buffer_offset); + } + + /** + * @param buffer_offset + */ + public void glPolygonStipple(int buffer_offset) { + GL.glPolygonStipple(buffer_offset); + } + + /** + * @param x + * @param y + * @param width + * @param height + * @param format + * @param type + * @param buffer_offset + */ + public void glReadPixels(int x, int y, int width, int height, int format, int type, int buffer_offset) { + GL.glReadPixels(x, y, width, height, format, type, buffer_offset); + } + + /** + * @param target + * @param level + * @param internalformat + * @param width + * @param border + * @param format + * @param type + * @param buffer_offset + */ + public void glTexImage1D(int target, int level, int internalformat, int width, int border, int format, int type, int buffer_offset) { + GL.glTexImage1D(target, level, internalformat, width, border, format, type, buffer_offset); + } + + /** + * @param target + * @param level + * @param internalformat + * @param width + * @param height + * @param border + * @param format + * @param type + * @param buffer_offset + */ + public void glTexImage2D(int target, int level, int internalformat, int width, int height, int border, int format, int type, int buffer_offset) { + GL.glTexImage2D(target, level, internalformat, width, height, border, format, type, buffer_offset); + } + + /** + * @param target + * @param level + * @param xoffset + * @param width + * @param format + * @param type + * @param buffer_offset + */ + public void glTexSubImage1D(int target, int level, int xoffset, int width, int format, int type, int buffer_offset) { + GL.glTexSubImage1D(target, level, xoffset, width, format, type, buffer_offset); + } + + /** + * @param target + * @param level + * @param xoffset + * @param yoffset + * @param width + * @param height + * @param format + * @param type + * @param buffer_offset + */ + public void glTexSubImage2D(int target, int level, int xoffset, int yoffset, int width, int height, int format, int type, int buffer_offset) { + GL.glTexSubImage2D(target, level, xoffset, yoffset, width, height, format, type, buffer_offset); + } + + /** + * @param target + * @param level + * @param internalFormat + * @param width + * @param height + * @param depth + * @param border + * @param format + * @param type + * @param buffer_offset + */ + public void glTexImage3D(int target, int level, int internalFormat, int width, int height, int depth, int border, int format, int type, int buffer_offset) { + GL.glTexImage3D(target, level, internalFormat, width, height, depth, border, format, type, buffer_offset); + } + + /** + * @param target + * @param level + * @param xoffset + * @param yoffset + * @param zoffset + * @param width + * @param height + * @param depth + * @param format + * @param type + * @param buffer_offset + */ + public void glTexSubImage3D(int target, int level, int xoffset, int yoffset, int zoffset, int width, int height, int depth, int format, int type, int buffer_offset) { + GL.glTexSubImage3D(target, level, xoffset, yoffset, zoffset, width, height, depth, format, type, buffer_offset); + } + + /** + * @param target + * @param level + * @param internalformat + * @param width + * @param border + * @param imageSize + * @param buffer_offset + */ + public void glCompressedTexImage1D(int target, int level, int internalformat, int width, int border, int imageSize, int buffer_offset) { + GL.glCompressedTexImage1D(target, level, internalformat, width, border, imageSize, buffer_offset); + } + + /** + * @param target + * @param level + * @param internalformat + * @param width + * @param height + * @param border + * @param imageSize + * @param buffer_offset + */ + public void glCompressedTexImage2D(int target, int level, int internalformat, int width, int height, int border, int imageSize, int buffer_offset) { + GL.glCompressedTexImage2D(target, level, internalformat, width, height, border, imageSize, buffer_offset); + } + + /** + * @param target + * @param level + * @param internalformat + * @param width + * @param height + * @param depth + * @param border + * @param imageSize + * @param buffer_offset + */ + public void glCompressedTexImage3D(int target, int level, int internalformat, int width, int height, int depth, int border, int imageSize, int buffer_offset) { + GL.glCompressedTexImage3D(target, level, internalformat, width, height, depth, border, imageSize, buffer_offset); + } + + /** + * @param target + * @param level + * @param xoffset + * @param width + * @param format + * @param imageSize + * @param buffer_offset + */ + public void glCompressedTexSubImage1D(int target, int level, int xoffset, int width, int format, int imageSize, int buffer_offset) { + GL.glCompressedTexSubImage1D(target, level, xoffset, width, format, imageSize, buffer_offset); + } + + /** + * @param target + * @param level + * @param xoffset + * @param yoffset + * @param width + * @param height + * @param format + * @param imageSize + * @param buffer_offset + */ + public void glCompressedTexSubImage2D(int target, int level, int xoffset, int yoffset, int width, int height, int format, int imageSize, int buffer_offset) { + GL.glCompressedTexSubImage2D(target, level, xoffset, yoffset, width, height, format, imageSize, buffer_offset); + } + + /** + * @param target + * @param level + * @param xoffset + * @param yoffset + * @param zoffset + * @param width + * @param height + * @param depth + * @param format + * @param imageSize + * @param buffer_offset + */ + public void glCompressedTexSubImage3D(int target, int level, int xoffset, int yoffset, int zoffset, int width, int height, int depth, int format, int imageSize, int buffer_offset) { + GL.glCompressedTexSubImage3D(target, level, xoffset, yoffset, zoffset, width, height, depth, format, imageSize, buffer_offset); + } + + /** + * @param target + * @param lod + * @param buffer_offset + */ + public void glGetCompressedTexImage(int target, int lod, int buffer_offset) { + GL.glGetCompressedTexImage(target, lod, buffer_offset); + } + + /** + * @param target + * @param start + * @param count + * @param format + * @param type + * @param buffer_offset + */ + public void glColorSubTable(int target, int start, int count, int format, int type, int buffer_offset) { + GL.glColorSubTable(target, start, count, format, type, buffer_offset); + } + + /** + * @param target + * @param internalFormat + * @param width + * @param format + * @param type + * @param buffer_offset + */ + public void glColorTable(int target, int internalFormat, int width, int format, int type, int buffer_offset) { + GL.glColorTable(target, internalFormat, width, format, type, buffer_offset); + } + + /** + * @param target + * @param internalformat + * @param width + * @param format + * @param type + * @param buffer_offset + */ + public void glConvolutionFilter1D(int target, int internalformat, int width, int format, int type, int buffer_offset) { + GL.glConvolutionFilter1D(target, internalformat, width, format, type, buffer_offset); + } + + /** + * @param target + * @param internalformat + * @param width + * @param height + * @param format + * @param type + * @param buffer_offset + */ + public void glConvolutionFilter2D(int target, int internalformat, int width, int height, int format, int type, int buffer_offset) { + GL.glConvolutionFilter2D(target, internalformat, width, height, format, type, buffer_offset); + } + + /** + * @param target + * @param format + * @param type + * @param buffer_offset + */ + public void glGetConvolutionFilter(int target, int format, int type, int buffer_offset) { + GL.glGetConvolutionFilter(target, format, type, buffer_offset); + } + + /** + * @param target + * @param reset + * @param format + * @param type + * @param buffer_offset + */ + public void glGetHistogram(int target, boolean reset, int format, int type, int buffer_offset) { + GL.glGetHistogram(target, reset, format, type, buffer_offset); + } + + /** + * @param target + * @param reset + * @param format + * @param types + * @param buffer_offset + */ + public void glGetMinmax(int target, boolean reset, int format, int types, int buffer_offset) { + GL.glGetMinmax(target, reset, format, types, buffer_offset); + } + + /** + * @param target + * @param format + * @param type + * @param row_offset + * @param column_offset + * @param span_offset + */ + public void glGetSeparableFilter(int target, int format, int type, int row_offset, int column_offset, int span_offset) { + GL.glGetSeparableFilter(target, format, type, row_offset, column_offset, span_offset); + } + + /** + * @param target + * @param internalformat + * @param width + * @param height + * @param format + * @param type + * @param row_offset + * @param column_offset + */ + public void glSeparableFilter2D(int target, int internalformat, int width, int height, int format, int type, int row_offset, int column_offset) { + GL.glSeparableFilter2D(target, internalformat, width, height, format, type, row_offset, column_offset); + } + } diff --git a/src/java/org/lwjgl/util/IGL.java b/src/java/org/lwjgl/util/IGL.java index 2b85e5ae..c8b74f17 100644 --- a/src/java/org/lwjgl/util/IGL.java +++ b/src/java/org/lwjgl/util/IGL.java @@ -82,6 +82,18 @@ public interface IGL { */ void glBitmap(int width, int height, float xorig, float yorig, float xmove, float ymove, ByteBuffer bitmap); + /** + * + * @param width + * @param height + * @param xorig + * @param yorig + * @param xmove + * @param ymove + * @param buffer_offect + */ + void glBitmap(int width, int height, float xorig, float yorig, float xmove, float ymove, int buffer_offect); + /** * @param sfactor * @param dfactor @@ -396,6 +408,16 @@ public interface IGL { */ void glDrawPixels(int width, int height, int format, int type, ShortBuffer pixels); + /** + * + * @param width + * @param height + * @param format + * @param type + * @param buffer_offset + */ + void glDrawPixels(int width, int height, int format, int type, int buffer_offset); + /** * @param flag */ @@ -621,18 +643,36 @@ public interface IGL { */ void glGetPixelMap(int map, FloatBuffer values); + /** + * @param map + * @param buffer_offset + */ + void glGetPixelMapfv(int map, int buffer_offset); + /** * @param map * @param values */ void glGetPixelMap(int map, IntBuffer values); + /** + * @param map + * @param buffer_offset + */ + void glGetPixelMapuiv(int map, int buffer_offset); + /** * @param map * @param values */ void glGetPixelMap(int map, ShortBuffer values); + /** + * @param map + * @param buffer_offset + */ + void glGetPixelMapusv(int map, int buffer_offset); + /** * @param pname * @param size @@ -646,6 +686,11 @@ public interface IGL { */ void glGetPolygonStipple(ByteBuffer mask); + /** + * @param buffer_offset + */ + void glGetPolygonStipple(int buffer_offset); + /** * @param name * @@ -708,6 +753,15 @@ public interface IGL { */ void glGetTexImage(int target, int level, int format, int type, ShortBuffer pixels); + /** + * @param target + * @param level + * @param format + * @param type + * @param buffer_offset + */ + void glGetTexImage(int target, int level, int format, int type, int buffer_offset); + /** * @param target * @param level @@ -1058,6 +1112,30 @@ public interface IGL { */ void glPixelMap(int map, ShortBuffer values); + /** + * + * @param map + * @param mapsize + * @param buffer_offset + */ + void glPixelMapfv(int map, int mapsize, int buffer_offset); + + /** + * + * @param map + * @param mapsize + * @param buffer_offset + */ + void glPixelMapuiv(int map, int mapsize, int buffer_offset); + + /** + * + * @param map + * @param mapsize + * @param buffer_offset + */ + void glPixelMapusv(int map, int mapsize, int buffer_offset); + /** * @param pname * @param param @@ -1110,6 +1188,12 @@ public interface IGL { */ void glPolygonStipple(ByteBuffer mask); + /** + * + * @param buffer_offset + */ + void glPolygonStipple(int buffer_offset); + /** * */ @@ -1230,6 +1314,17 @@ public interface IGL { */ void glReadPixels(int x, int y, int width, int height, int format, int type, ShortBuffer pixels); + /** + * @param x + * @param y + * @param width + * @param height + * @param format + * @param type + * @param buffer_offset + */ + void glReadPixels(int x, int y, int width, int height, int format, int type, int buffer_offset); + /** * @param x1 * @param y1 @@ -1453,6 +1548,18 @@ public interface IGL { */ void glTexImage1D(int target, int level, int internalformat, int width, int border, int format, int type, ShortBuffer pixels); + /** + * + * @param target + * @param level + * @param internalformat + * @param width + * @param border + * @param format + * @param type + * @param buffer_offset + */ + void glTexImage1D(int target, int level, int internalformat, int width, int border, int format, int type, int buffer_offset); /** * @param target @@ -1509,6 +1616,19 @@ public interface IGL { */ void glTexImage2D(int target, int level, int internalformat, int width, int height, int border, int format, int type, ShortBuffer pixels); + /** + * + * @param target + * @param level + * @param internalformat + * @param width + * @param height + * @param border + * @param format + * @param type + * @param buffer_offset + */ + void glTexImage2D(int target, int level, int internalformat, int width, int height, int border, int format, int type, int buffer_offset); /** * @param target @@ -1561,6 +1681,17 @@ public interface IGL { */ void glTexSubImage1D(int target, int level, int xoffset, int width, int format, int type, IntBuffer pixels); + /** + * + * @param target + * @param level + * @param xoffset + * @param width + * @param format + * @param type + * @param buffer_offset + */ + void glTexSubImage1D(int target, int level, int xoffset, int width, int format, int type, int buffer_offset); /** * @param target @@ -1615,6 +1746,19 @@ public interface IGL { */ void glTexSubImage2D(int target, int level, int xoffset, int yoffset, int width, int height, int format, int type, ShortBuffer pixels); + /** + * + * @param target + * @param level + * @param xoffset + * @param yoffset + * @param width + * @param height + * @param format + * @param type + * @param buffer_offset + */ + void glTexSubImage2D(int target, int level, int xoffset, int yoffset, int width, int height, int format, int type, int buffer_offset); /** * @param x @@ -1787,7 +1931,6 @@ public interface IGL { */ void glTexImage3D(int target, int level, int internalFormat, int width, int height, int depth, int border, int format, int type, IntBuffer pixels); - /** * @param target * @param level @@ -1802,6 +1945,19 @@ public interface IGL { */ void glTexImage3D(int target, int level, int internalFormat, int width, int height, int depth, int border, int format, int type, ShortBuffer pixels); + /** + * @param target + * @param level + * @param internalFormat + * @param width + * @param height + * @param depth + * @param border + * @param format + * @param type + * @param buffer_offset + */ + void glTexImage3D(int target, int level, int internalFormat, int width, int height, int depth, int border, int format, int type, int buffer_offset); /** * @param target @@ -1866,6 +2022,21 @@ public interface IGL { */ void glTexSubImage3D(int target, int level, int xoffset, int yoffset, int zoffset, int width, int height, int depth, int format, int type, ShortBuffer pixels); + /** + * + * @param target + * @param level + * @param xoffset + * @param yoffset + * @param zoffset + * @param width + * @param height + * @param depth + * @param format + * @param type + * @param buffer_offset + */ + void glTexSubImage3D(int target, int level, int xoffset, int yoffset, int zoffset, int width, int height, int depth, int format, int type, int buffer_offset); /** * @param texture @@ -1924,6 +2095,16 @@ public interface IGL { */ void glCompressedTexImage1D(int target, int level, int internalformat, int width, int border, int imageSize, ShortBuffer data); + /** + * @param target + * @param level + * @param internalformat + * @param width + * @param border + * @param imageSize + * @param buffer_offset + */ + void glCompressedTexImage1D(int target, int level, int internalformat, int width, int border, int imageSize, int buffer_offset); /** * @param target @@ -1974,6 +2155,17 @@ public interface IGL { */ void glCompressedTexImage2D(int target, int level, int internalformat, int width, int height, int border, int imageSize, ShortBuffer data); + /** + * @param target + * @param level + * @param internalformat + * @param width + * @param height + * @param border + * @param imageSize + * @param buffer_offset + */ + void glCompressedTexImage2D(int target, int level, int internalformat, int width, int height, int border, int imageSize, int buffer_offset); /** * @param target @@ -2027,6 +2219,18 @@ public interface IGL { */ void glCompressedTexImage3D(int target, int level, int internalformat, int width, int height, int depth, int border, int imageSize, ShortBuffer data); + /** + * @param target + * @param level + * @param internalformat + * @param width + * @param height + * @param depth + * @param border + * @param imageSize + * @param buffer_offset + */ + void glCompressedTexImage3D(int target, int level, int internalformat, int width, int height, int depth, int border, int imageSize, int buffer_offset); /** * @param target @@ -2075,6 +2279,16 @@ public interface IGL { */ void glCompressedTexSubImage1D(int target, int level, int xoffset, int width, int format, int imageSize, ShortBuffer data); + /** + * @param target + * @param level + * @param xoffset + * @param width + * @param format + * @param imageSize + * @param buffer_offset + */ + void glCompressedTexSubImage1D(int target, int level, int xoffset, int width, int format, int imageSize, int buffer_offset); /** * @param target @@ -2089,7 +2303,6 @@ public interface IGL { */ void glCompressedTexSubImage2D(int target, int level, int xoffset, int yoffset, int width, int height, int format, int imageSize, ByteBuffer data); - /** * @param target * @param level @@ -2103,7 +2316,6 @@ public interface IGL { */ void glCompressedTexSubImage2D(int target, int level, int xoffset, int yoffset, int width, int height, int format, int imageSize, FloatBuffer data); - /** * @param target * @param level @@ -2131,6 +2343,18 @@ public interface IGL { */ void glCompressedTexSubImage2D(int target, int level, int xoffset, int yoffset, int width, int height, int format, int imageSize, ShortBuffer data); + /** + * @param target + * @param level + * @param xoffset + * @param yoffset + * @param width + * @param height + * @param format + * @param imageSize + * @param buffer_offset + */ + void glCompressedTexSubImage2D(int target, int level, int xoffset, int yoffset, int width, int height, int format, int imageSize, int buffer_offset); /** * @param target @@ -2147,7 +2371,6 @@ public interface IGL { */ void glCompressedTexSubImage3D(int target, int level, int xoffset, int yoffset, int zoffset, int width, int height, int depth, int format, int imageSize, ByteBuffer data); - /** * @param target * @param level @@ -2163,7 +2386,6 @@ public interface IGL { */ void glCompressedTexSubImage3D(int target, int level, int xoffset, int yoffset, int zoffset, int width, int height, int depth, int format, int imageSize, FloatBuffer data); - /** * @param target * @param level @@ -2179,7 +2401,6 @@ public interface IGL { */ void glCompressedTexSubImage3D(int target, int level, int xoffset, int yoffset, int zoffset, int width, int height, int depth, int format, int imageSize, IntBuffer data); - /** * @param target * @param level @@ -2195,6 +2416,20 @@ public interface IGL { */ void glCompressedTexSubImage3D(int target, int level, int xoffset, int yoffset, int zoffset, int width, int height, int depth, int format, int imageSize, ShortBuffer data); + /** + * @param target + * @param level + * @param xoffset + * @param yoffset + * @param zoffset + * @param width + * @param height + * @param depth + * @param format + * @param imageSize + * @param buffer_offset + */ + void glCompressedTexSubImage3D(int target, int level, int xoffset, int yoffset, int zoffset, int width, int height, int depth, int format, int imageSize, int buffer_offset); /** * @param target @@ -2217,6 +2452,13 @@ public interface IGL { */ void glGetCompressedTexImage(int target, int lod, ShortBuffer img); + /** + * @param target + * @param lod + * @param buffer_offset + */ + void glGetCompressedTexImage(int target, int lod, int buffer_offset); + /** * @param m */ @@ -2844,6 +3086,16 @@ public interface IGL { */ void glColorSubTable(int target, int start, int count, int format, int type, FloatBuffer data); + /** + * @param target + * @param start + * @param count + * @param format + * @param type + * @param buffer_offset + */ + void glColorSubTable(int target, int start, int count, int format, int type, int buffer_offset); + /** * @param target * @param internalFormat @@ -2865,6 +3117,15 @@ public interface IGL { */ void glColorTable(int target, int internalFormat, int width, int format, int type, FloatBuffer data); + /** + * @param target + * @param internalFormat + * @param width + * @param format + * @param type + * @param buffer_offset + */ + void glColorTable(int target, int internalFormat, int width, int format, int type, int buffer_offset); /** * @param target @@ -2890,7 +3151,6 @@ public interface IGL { */ void glConvolutionFilter1D(int target, int internalformat, int width, int format, int type, ByteBuffer image); - /** * @param target * @param internalformat @@ -2901,7 +3161,6 @@ public interface IGL { */ void glConvolutionFilter1D(int target, int internalformat, int width, int format, int type, FloatBuffer image); - /** * @param target * @param internalformat @@ -2912,7 +3171,6 @@ public interface IGL { */ void glConvolutionFilter1D(int target, int internalformat, int width, int format, int type, IntBuffer image); - /** * @param target * @param internalformat @@ -2923,6 +3181,15 @@ public interface IGL { */ void glConvolutionFilter1D(int target, int internalformat, int width, int format, int type, ShortBuffer image); + /** + * @param target + * @param internalformat + * @param width + * @param format + * @param type + * @param buffer_offset + */ + void glConvolutionFilter1D(int target, int internalformat, int width, int format, int type, int buffer_offset); /** * @param target @@ -2935,7 +3202,6 @@ public interface IGL { */ void glConvolutionFilter2D(int target, int internalformat, int width, int height, int format, int type, ByteBuffer image); - /** * @param target * @param internalformat @@ -2947,7 +3213,6 @@ public interface IGL { */ void glConvolutionFilter2D(int target, int internalformat, int width, int height, int format, int type, IntBuffer image); - /** * @param target * @param internalformat @@ -2959,6 +3224,16 @@ public interface IGL { */ void glConvolutionFilter2D(int target, int internalformat, int width, int height, int format, int type, ShortBuffer image); + /** + * @param target + * @param internalformat + * @param width + * @param height + * @param format + * @param type + * @param buffer_offset + */ + void glConvolutionFilter2D(int target, int internalformat, int width, int height, int format, int type, int buffer_offset); /** * @param target @@ -3089,6 +3364,14 @@ public interface IGL { */ void glGetConvolutionFilter(int target, int format, int type, ShortBuffer image); + /** + * @param target + * @param format + * @param type + * @param buffer_offset + */ + void glGetConvolutionFilter(int target, int format, int type, int buffer_offset); + /** * @param target * @param pname @@ -3139,6 +3422,15 @@ public interface IGL { */ void glGetHistogram(int target, boolean reset, int format, int type, ShortBuffer values); + /** + * @param target + * @param reset + * @param format + * @param type + * @param buffer_offset + */ + void glGetHistogram(int target, boolean reset, int format, int type, int buffer_offset); + /** * @param target * @param pname @@ -3189,6 +3481,15 @@ public interface IGL { */ void glGetMinmax(int target, boolean reset, int format, int types, ShortBuffer values); + /** + * @param target + * @param reset + * @param format + * @param types + * @param buffer_offset + */ + void glGetMinmax(int target, boolean reset, int format, int types, int buffer_offset); + /** * @param target * @param pname @@ -3213,6 +3514,15 @@ public interface IGL { */ void glGetSeparableFilter(int target, int format, int type, Buffer row, Buffer column, Buffer span); + /** + * @param target + * @param format + * @param type + * @param row_offset + * @param column_offset + * @param span_offset + */ + void glGetSeparableFilter(int target, int format, int type, int row_offset, int column_offset, int span_offset); /** * @param target @@ -3251,6 +3561,17 @@ public interface IGL { */ void glSeparableFilter2D(int target, int internalformat, int width, int height, int format, int type, Buffer row, Buffer column); + /** + * @param target + * @param internalformat + * @param width + * @param height + * @param format + * @param type + * @param row_offset + * @param column_offset + */ + void glSeparableFilter2D(int target, int internalformat, int width, int height, int format, int type, int row_offset, int column_offset); /** * @param index @@ -5204,7 +5525,7 @@ public interface IGL { * @param name */ void glGetActiveUniform(int program, int index, - IntBuffer length, IntBuffer size, IntBuffer type, ByteBuffer name); + IntBuffer length, IntBuffer size, IntBuffer type, ByteBuffer name); /** * @param program @@ -5243,7 +5564,7 @@ public interface IGL { * @param name */ void glGetActiveAttrib(int program, int index, - IntBuffer length, IntBuffer size, IntBuffer type, ByteBuffer name); + IntBuffer length, IntBuffer size, IntBuffer type, ByteBuffer name); /** * @param program diff --git a/src/native/common/arb/org_lwjgl_opengl_ARBImaging.c b/src/native/common/arb/org_lwjgl_opengl_ARBImaging.c index fa79e1d4..295b3cc7 100644 --- a/src/native/common/arb/org_lwjgl_opengl_ARBImaging.c +++ b/src/native/common/arb/org_lwjgl_opengl_ARBImaging.c @@ -1,35 +1,35 @@ -/* +/* * Copyright (c) 2002-2004 LWJGL Project * All rights reserved. - * + * * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions are + * modification, are permitted provided that the following conditions are * met: - * - * * Redistributions of source code must retain the above copyright + * + * * Redistributions of source code must retain the above copyright * notice, this list of conditions and the following disclaimer. * * * Redistributions 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 'LWJGL' nor the names of - * its contributors may be used to endorse or promote products derived + * * Neither the name of 'LWJGL' nor the names of + * its contributors may be used to endorse or promote products derived * from this software without specific prior written permission. - * + * * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED * TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR - * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR - * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, - * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, - * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR + * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR + * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, + * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, + * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF - * LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING + * LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ - + /** * $Id$ * @@ -121,7 +121,17 @@ static void JNICALL Java_org_lwjgl_opengl_ARBImaging_nglColorTable { const void *address = (const void *)(offset + (const GLbyte *)(*env)->GetDirectBufferAddress(env, buffer)); glColorTable(target, internalFormat, width, format, type, address); - +} + +/* + * Class: org_lwjgl_opengl_ARBImaging + * Method: glColorTableBO + * Signature: (IIIIII)V + */ +static void JNICALL Java_org_lwjgl_opengl_ARBImaging_nglColorTableBO + (JNIEnv * env, jclass clazz, jint target, jint internalFormat, jint width, jint format, jint type, jint buffer_offset) +{ + glColorTable(target, internalFormat, width, format, type, offsetToPointer(buffer_offset)); } /* @@ -134,7 +144,17 @@ static void JNICALL Java_org_lwjgl_opengl_ARBImaging_nglColorSubTable { const void *address = (const void *)(offset + (const GLbyte *)(*env)->GetDirectBufferAddress(env, buffer)); glColorSubTable(target, start, count, format, type, address); - +} + +/* + * Class: org_lwjgl_opengl_ARBImaging + * Method: glColorSubTableBO + * Signature: (IIIIII)V + */ +static void JNICALL Java_org_lwjgl_opengl_ARBImaging_nglColorSubTableBO + (JNIEnv * env, jclass clazz, jint target, jint start, jint count, jint format, jint type, jint buffer_offset) +{ + glColorSubTable(target, start, count, format, type, offsetToPointer(buffer_offset)); } /* @@ -147,7 +167,7 @@ static void JNICALL Java_org_lwjgl_opengl_ARBImaging_nglGetColorTable { void *address = (void *)(offset + (GLbyte *)(*env)->GetDirectBufferAddress(env, buffer)); glGetColorTable(target, format, type, address); - + } /* @@ -160,7 +180,7 @@ static void JNICALL Java_org_lwjgl_opengl_ARBImaging_nglGetColorTableParameteriv { GLint *address = offset + (GLint *)(*env)->GetDirectBufferAddress(env, buffer); glGetColorTableParameteriv(target, pname, address); - + } /* @@ -173,7 +193,7 @@ static void JNICALL Java_org_lwjgl_opengl_ARBImaging_nglGetColorTableParameterfv { GLfloat *address = offset + (GLfloat *)(*env)->GetDirectBufferAddress(env, buffer); glGetColorTableParameterfv(target, pname, address); - + } /* @@ -186,7 +206,7 @@ static void JNICALL Java_org_lwjgl_opengl_ARBImaging_nglColorTableParameteriv { const GLint *address = offset + (const GLint *)(*env)->GetDirectBufferAddress(env, buffer); glColorTableParameteriv(target, pname, address); - + } /* @@ -199,7 +219,7 @@ static void JNICALL Java_org_lwjgl_opengl_ARBImaging_nglColorTableParameterfv { const GLfloat *address = offset + (const GLfloat *)(*env)->GetDirectBufferAddress(env, buffer); glColorTableParameterfv(target, pname, address); - + } @@ -212,7 +232,7 @@ static void JNICALL Java_org_lwjgl_opengl_ARBImaging_glCopyColorSubTable (JNIEnv *env, jclass clazz, jint target, jint start, jint x, jint y, jint width) { glCopyColorSubTable(target, start, x, y, width); - + } @@ -225,7 +245,7 @@ static void JNICALL Java_org_lwjgl_opengl_ARBImaging_glCopyColorTable (JNIEnv *env, jclass clazz, jint target, jint internalformat, jint x, jint y, jint width) { glCopyColorTable(target, internalformat, x, y, width); - + } @@ -238,7 +258,7 @@ static void JNICALL Java_org_lwjgl_opengl_ARBImaging_glBlendEquation (JNIEnv *env, jclass clazz, jint mode) { glBlendEquation(mode); - + } /* @@ -248,7 +268,7 @@ static void JNICALL Java_org_lwjgl_opengl_ARBImaging_glBlendEquation static void JNICALL Java_org_lwjgl_opengl_ARBImaging_glBlendColor(JNIEnv * env, jclass clazz, jfloat p0, jfloat p1, jfloat p2, jfloat p3) { glBlendColor((GLfloat) p0, (GLfloat) p1, (GLfloat) p2, (GLfloat) p3); - + } /* @@ -260,7 +280,7 @@ static void JNICALL Java_org_lwjgl_opengl_ARBImaging_glHistogram (JNIEnv *env, jclass clazz, jint target, jint width, jint internalformat, jboolean sink) { glHistogram(target, width, internalformat, sink); - + } /* @@ -272,7 +292,7 @@ static void JNICALL Java_org_lwjgl_opengl_ARBImaging_glResetHistogram (JNIEnv *env, jclass clazz, jint target) { glResetHistogram(target); - + } /* @@ -285,7 +305,17 @@ static void JNICALL Java_org_lwjgl_opengl_ARBImaging_nglGetHistogram { void *address = (void *)(offset + (GLbyte *)(*env)->GetDirectBufferAddress(env, buffer)); glGetHistogram(target, reset, format, type, address); - +} + +/* + * Class: org_lwjgl_opengl_ARBImaging + * Method: glGetHistogramBO + * Signature: (IZIII)V + */ +static void JNICALL Java_org_lwjgl_opengl_ARBImaging_nglGetHistogramBO + (JNIEnv *env, jclass clazz, jint target, jboolean reset, jint format, jint type, jint buffer_offset) +{ + glGetHistogram(target, reset, format, type, offsetToPointer(buffer_offset)); } /* @@ -298,7 +328,7 @@ static void JNICALL Java_org_lwjgl_opengl_ARBImaging_nglGetHistogramParameterfv { GLfloat *address = offset + (GLfloat *)(*env)->GetDirectBufferAddress(env, buffer); glGetHistogramParameterfv(target, pname, address); - + } /* @@ -311,7 +341,7 @@ static void JNICALL Java_org_lwjgl_opengl_ARBImaging_nglGetHistogramParameteriv { GLint *address = offset + (GLint *)(*env)->GetDirectBufferAddress(env, buffer); glGetHistogramParameteriv(target, pname, address); - + } /* @@ -323,7 +353,7 @@ static void JNICALL Java_org_lwjgl_opengl_ARBImaging_glMinmax (JNIEnv *env, jclass clazz, jint target, jint internalformat, jboolean sink) { glMinmax(target, internalformat, sink); - + } /* @@ -335,7 +365,7 @@ static void JNICALL Java_org_lwjgl_opengl_ARBImaging_glResetMinmax (JNIEnv *env, jclass clazz, jint target) { glResetMinmax(target); - + } /* @@ -348,7 +378,17 @@ static void JNICALL Java_org_lwjgl_opengl_ARBImaging_nglGetMinmax { void *address = (void *)(offset + (GLbyte *)(*env)->GetDirectBufferAddress(env, buffer)); glGetMinmax(target, reset, format, type, address); - +} + +/* + * Class: org_lwjgl_opengl_ARBImaging + * Method: glGetMinmaxBO + * Signature: (IZIII)V + */ +static void JNICALL Java_org_lwjgl_opengl_ARBImaging_nglGetMinmaxBO + (JNIEnv *env, jclass clazz, jint target, jboolean reset, jint format, jint type, jint buffer_offset) +{ + glGetMinmax(target, reset, format, type, offsetToPointer(buffer_offset)); } /* @@ -361,7 +401,7 @@ static void JNICALL Java_org_lwjgl_opengl_ARBImaging_nglGetMinmaxParameterfv { GLfloat *address = offset + (GLfloat *)(*env)->GetDirectBufferAddress(env, buffer); glGetMinmaxParameterfv(target, pname, address); - + } /* @@ -374,7 +414,7 @@ static void JNICALL Java_org_lwjgl_opengl_ARBImaging_nglGetMinmaxParameteriv { GLint *address = offset + (GLint *)(*env)->GetDirectBufferAddress(env, buffer); glGetMinmaxParameteriv(target, pname, address); - + } /* @@ -387,7 +427,17 @@ static void JNICALL Java_org_lwjgl_opengl_ARBImaging_nglConvolutionFilter1D { const void *address = (const void *)(offset + (const GLbyte *)(*env)->GetDirectBufferAddress(env, buffer)); glConvolutionFilter1D(target, internalformat, width, format, type, address); - +} + +/* + * Class: org_lwjgl_opengl_ARBImaging + * Method: glConvolutionFilter1DBO + * Signature: (IIIIII)V + */ +static void JNICALL Java_org_lwjgl_opengl_ARBImaging_nglConvolutionFilter1DBO + (JNIEnv *env, jclass clazz, jint target, jint internalformat, jint width, jint format, jint type, jint buffer_offset) +{ + glConvolutionFilter1D(target, internalformat, width, format, type, offsetToPointer(buffer_offset)); } /* @@ -400,7 +450,17 @@ static void JNICALL Java_org_lwjgl_opengl_ARBImaging_nglConvolutionFilter2D { const void *address = (const void *)(offset + (const GLbyte *)(*env)->GetDirectBufferAddress(env, buffer)); glConvolutionFilter2D(target, internalformat, width, height, format, type, address); - +} + +/* + * Class: org_lwjgl_opengl_ARBImaging + * Method: glConvolutionFilter2DBO + * Signature: (IIIIIII)V + */ +static void JNICALL Java_org_lwjgl_opengl_ARBImaging_nglConvolutionFilter2DBO + (JNIEnv *env, jclass clazz, jint target, jint internalformat, jint width, jint height, jint format, jint type, jint buffer_offset) +{ + glConvolutionFilter2D(target, internalformat, width, height, format, type, offsetToPointer(buffer_offset)); } /* @@ -412,7 +472,7 @@ static void JNICALL Java_org_lwjgl_opengl_ARBImaging_glConvolutionParameterf (JNIEnv *env, jclass clazz, jint target, jint pname, jfloat params) { glConvolutionParameterf(target, pname, params); - + } /* @@ -425,7 +485,7 @@ static void JNICALL Java_org_lwjgl_opengl_ARBImaging_nglConvolutionParameterfv { const GLfloat *address = offset + (const GLfloat *)(*env)->GetDirectBufferAddress(env, buffer); glConvolutionParameterfv(target, pname, address); - + } /* @@ -437,7 +497,7 @@ static void JNICALL Java_org_lwjgl_opengl_ARBImaging_glConvolutionParameteri (JNIEnv *env, jclass clazz, jint target, jint pname, jint params) { glConvolutionParameteri(target, pname, params); - + } /* @@ -450,7 +510,7 @@ static void JNICALL Java_org_lwjgl_opengl_ARBImaging_nglConvolutionParameteriv { const GLint *address = offset + (const GLint *)(*env)->GetDirectBufferAddress(env, buffer); glConvolutionParameteriv(target, pname, address); - + } /* @@ -462,7 +522,7 @@ static void JNICALL Java_org_lwjgl_opengl_ARBImaging_glCopyConvolutionFilter1D (JNIEnv *env, jclass clazz, jint target, jint internalformat, jint x, jint y, jint width) { glCopyConvolutionFilter1D(target, internalformat, x, y, width); - + } /* @@ -474,7 +534,7 @@ static void JNICALL Java_org_lwjgl_opengl_ARBImaging_glCopyConvolutionFilter2D (JNIEnv *env, jclass clazz, jint target, jint internalformat, jint x, jint y, jint width, jint height) { glCopyConvolutionFilter2D(target, internalformat, x, y, width, height); - + } /* @@ -487,7 +547,17 @@ static void JNICALL Java_org_lwjgl_opengl_ARBImaging_nglGetConvolutionFilter { void *address = (void *)(offset + (GLbyte *)(*env)->GetDirectBufferAddress(env, buffer)); glGetConvolutionFilter(target, format, type, address); - +} + +/* + * Class: org_lwjgl_opengl_ARBImaging + * Method: glGetConvolutionFilterBO + * Signature: (IIII)V + */ +static void JNICALL Java_org_lwjgl_opengl_ARBImaging_nglGetConvolutionFilterBO + (JNIEnv *env, jclass clazz, jint target, jint format, jint type, jint buffer_offset) +{ + glGetConvolutionFilter(target, format, type, offsetToPointer(buffer_offset)); } /* @@ -500,7 +570,7 @@ static void JNICALL Java_org_lwjgl_opengl_ARBImaging_nglGetConvolutionParameterf { GLfloat *address = offset + (GLfloat *)(*env)->GetDirectBufferAddress(env, buffer); glGetConvolutionParameterfv(target, pname, address); - + } /* @@ -513,7 +583,7 @@ static void JNICALL Java_org_lwjgl_opengl_ARBImaging_nglGetConvolutionParameteri { GLint *address = offset + (GLint *)(*env)->GetDirectBufferAddress(env, buffer); glGetConvolutionParameteriv(target, pname, address); - + } /* @@ -527,7 +597,17 @@ static void JNICALL Java_org_lwjgl_opengl_ARBImaging_nglSeparableFilter2D const void *address = (const void *)(row_offset + (const GLbyte *)(*env)->GetDirectBufferAddress(env, row)); const void *address2 = (const void *)(column_offset + (const GLbyte *)(*env)->GetDirectBufferAddress(env, column)); glSeparableFilter2D(target, internalformat, width, height, format, type, address, address2); - +} + +/* + * Class: org_lwjgl_opengl_ARBImaging + * Method: glSeparableFilter2DBO + * Signature: (IIIIIIII)V + */ +static void JNICALL Java_org_lwjgl_opengl_ARBImaging_nglSeparableFilter2DBO + (JNIEnv *env, jclass clazz, jint target, jint internalformat, jint width, jint height, jint format, jint type, jint row_offset, jint column_offset) +{ + glSeparableFilter2D(target, internalformat, width, height, format, type, offsetToPointer(row_offset), offsetToPointer(column_offset)); } /* @@ -542,7 +622,17 @@ static void JNICALL Java_org_lwjgl_opengl_ARBImaging_nglGetSeparableFilter void *address2 = (void *)(column_offset + (GLbyte *)(*env)->GetDirectBufferAddress(env, column)); void *address3 = (void *)(span_offset + (GLbyte *)(*env)->GetDirectBufferAddress(env, span)); glGetSeparableFilter(target, format, type, address, address2, address3); - +} + +/* + * Class: org_lwjgl_opengl_ARBImaging + * Method: glGetSeparableFilterBO + * Signature: (IIIIII)V + */ +static void JNICALL Java_org_lwjgl_opengl_ARBImaging_nglGetSeparableFilterBO + (JNIEnv *env, jclass clazz, jint target, jint format, jint type, jint row_offset, jint column_offset, jint span_offset) +{ + glGetSeparableFilter(target, format, type, offsetToPointer(row_offset), offsetToPointer(column_offset), offsetToPointer(span_offset)); } #ifdef __cplusplus @@ -551,7 +641,9 @@ extern "C" { JNIEXPORT void JNICALL Java_org_lwjgl_opengl_ARBImaging_initNativeStubs(JNIEnv *env, jclass clazz) { JavaMethodAndExtFunction functions[] = { {"nglColorTable", "(IIIIILjava/nio/Buffer;I)V", (void*)&Java_org_lwjgl_opengl_ARBImaging_nglColorTable, "glColorTable", (void*)&glColorTable}, + {"nglColorTableBO", "(IIIIII)V", (void*)&Java_org_lwjgl_opengl_ARBImaging_nglColorTableBO, NULL, NULL}, {"nglColorSubTable", "(IIIIILjava/nio/Buffer;I)V", (void*)&Java_org_lwjgl_opengl_ARBImaging_nglColorSubTable, "glColorSubTable", (void*)&glColorSubTable}, + {"nglColorSubTableBO", "(IIIIII)V", (void*)&Java_org_lwjgl_opengl_ARBImaging_nglColorSubTableBO, NULL, NULL}, {"nglColorTableParameteriv", "(IILjava/nio/IntBuffer;I)V", (void*)&Java_org_lwjgl_opengl_ARBImaging_nglColorTableParameteriv, "glColorTableParameteriv", (void*)&glColorTableParameteriv}, {"nglColorTableParameterfv", "(IILjava/nio/FloatBuffer;I)V", (void*)&Java_org_lwjgl_opengl_ARBImaging_nglColorTableParameterfv, "glColorTableParameterfv", (void*)&glColorTableParameterfv}, {"glCopyColorSubTable", "(IIIII)V", (void*)&Java_org_lwjgl_opengl_ARBImaging_glCopyColorSubTable, "glCopyColorSubTable", (void*)&glCopyColorSubTable}, @@ -564,15 +656,19 @@ JNIEXPORT void JNICALL Java_org_lwjgl_opengl_ARBImaging_initNativeStubs(JNIEnv * {"glHistogram", "(IIIZ)V", (void*)&Java_org_lwjgl_opengl_ARBImaging_glHistogram, "glHistogram", (void*)&glHistogram}, {"glResetHistogram", "(I)V", (void*)&Java_org_lwjgl_opengl_ARBImaging_glResetHistogram, "glResetHistogram", (void*)&glResetHistogram}, {"nglGetHistogram", "(IZIILjava/nio/Buffer;I)V", (void*)&Java_org_lwjgl_opengl_ARBImaging_nglGetHistogram, "glGetHistogram", (void*)&glGetHistogram}, + {"nglGetHistogramBO", "(IZIII)V", (void*)&Java_org_lwjgl_opengl_ARBImaging_nglGetHistogramBO, NULL, NULL}, {"nglGetHistogramParameterfv", "(IILjava/nio/FloatBuffer;I)V", (void*)&Java_org_lwjgl_opengl_ARBImaging_nglGetHistogramParameterfv, "glGetHistogramParameterfv", (void*)&glGetHistogramParameterfv}, {"nglGetHistogramParameteriv", "(IILjava/nio/IntBuffer;I)V", (void*)&Java_org_lwjgl_opengl_ARBImaging_nglGetHistogramParameteriv, "glGetHistogramParameteriv", (void*)&glGetHistogramParameteriv}, {"glMinmax", "(IIZ)V", (void*)&Java_org_lwjgl_opengl_ARBImaging_glMinmax, "glMinmax", (void*)&glMinmax}, {"glResetMinmax", "(I)V", (void*)&Java_org_lwjgl_opengl_ARBImaging_glResetMinmax, "glResetMinmax", (void*)&glResetMinmax}, {"nglGetMinmax", "(IZIILjava/nio/Buffer;I)V", (void*)&Java_org_lwjgl_opengl_ARBImaging_nglGetMinmax, "glGetMinmax", (void*)&glGetMinmax}, + {"nglGetMinmaxBO", "(IZIII)V", (void*)&Java_org_lwjgl_opengl_ARBImaging_nglGetMinmaxBO, NULL, NULL}, {"nglGetMinmaxParameterfv", "(IILjava/nio/FloatBuffer;I)V", (void*)&Java_org_lwjgl_opengl_ARBImaging_nglGetMinmaxParameterfv, "glGetMinmaxParameterfv", (void*)&glGetMinmaxParameterfv}, {"nglGetMinmaxParameteriv", "(IILjava/nio/IntBuffer;I)V", (void*)&Java_org_lwjgl_opengl_ARBImaging_nglGetMinmaxParameteriv, "glGetMinmaxParameteriv", (void*)&glGetMinmaxParameteriv}, {"nglConvolutionFilter1D", "(IIIIILjava/nio/Buffer;I)V", (void*)&Java_org_lwjgl_opengl_ARBImaging_nglConvolutionFilter1D, "glConvolutionFilter1D", (void*)&glConvolutionFilter1D}, + {"nglConvolutionFilter1DBO", "(IIIIII)V", (void*)&Java_org_lwjgl_opengl_ARBImaging_nglConvolutionFilter1DBO, NULL, NULL}, {"nglConvolutionFilter2D", "(IIIIIILjava/nio/Buffer;I)V", (void*)&Java_org_lwjgl_opengl_ARBImaging_nglConvolutionFilter2D, "glConvolutionFilter2D", (void*)&glConvolutionFilter2D}, + {"nglConvolutionFilter2DBO", "(IIIIIII)V", (void*)&Java_org_lwjgl_opengl_ARBImaging_nglConvolutionFilter2DBO, NULL, NULL}, {"glConvolutionParameterf", "(IIF)V", (void*)&Java_org_lwjgl_opengl_ARBImaging_glConvolutionParameterf, "glConvolutionParameterf", (void*)&glConvolutionParameterf}, {"nglConvolutionParameterfv", "(IILjava/nio/FloatBuffer;I)V", (void*)&Java_org_lwjgl_opengl_ARBImaging_nglConvolutionParameterfv, "glConvolutionParameterfv", (void*)&glConvolutionParameterfv}, {"glConvolutionParameteri", "(III)V", (void*)&Java_org_lwjgl_opengl_ARBImaging_glConvolutionParameteri, "glConvolutionParameteri", (void*)&glConvolutionParameteri}, @@ -580,10 +676,13 @@ JNIEXPORT void JNICALL Java_org_lwjgl_opengl_ARBImaging_initNativeStubs(JNIEnv * {"glCopyConvolutionFilter1D", "(IIIII)V", (void*)&Java_org_lwjgl_opengl_ARBImaging_glCopyConvolutionFilter1D, "glCopyConvolutionFilter1D", (void*)&glCopyConvolutionFilter1D}, {"glCopyConvolutionFilter2D", "(IIIIII)V", (void*)&Java_org_lwjgl_opengl_ARBImaging_glCopyConvolutionFilter2D, "glCopyConvolutionFilter2D", (void*)&glCopyConvolutionFilter2D}, {"nglGetConvolutionFilter", "(IIILjava/nio/Buffer;I)V", (void*)&Java_org_lwjgl_opengl_ARBImaging_nglGetConvolutionFilter, "glGetConvolutionFilter", (void*)&glGetConvolutionFilter}, + {"nglGetConvolutionFilterBO", "(IIII)V", (void*)&Java_org_lwjgl_opengl_ARBImaging_nglGetConvolutionFilterBO, NULL, NULL}, {"nglGetConvolutionParameterfv", "(IILjava/nio/FloatBuffer;I)V", (void*)&Java_org_lwjgl_opengl_ARBImaging_nglGetConvolutionParameterfv, "glGetConvolutionParameterfv", (void*)&glGetConvolutionParameterfv}, {"nglGetConvolutionParameteriv", "(IILjava/nio/IntBuffer;I)V", (void*)&Java_org_lwjgl_opengl_ARBImaging_nglGetConvolutionParameteriv, "glGetConvolutionParameteriv", (void*)&glGetConvolutionParameteriv}, {"nglSeparableFilter2D", "(IIIIIILjava/nio/Buffer;ILjava/nio/Buffer;I)V", (void*)&Java_org_lwjgl_opengl_ARBImaging_nglSeparableFilter2D, "glSeparableFilter2D", (void*)&glSeparableFilter2D}, - {"nglGetSeparableFilter", "(IIILjava/nio/Buffer;ILjava/nio/Buffer;ILjava/nio/Buffer;I)V", (void*)&Java_org_lwjgl_opengl_ARBImaging_nglGetSeparableFilter, "glGetSeparableFilter", (void*)&glGetSeparableFilter} + {"nglSeparableFilter2DBO", "(IIIIIIII)V", (void*)&Java_org_lwjgl_opengl_ARBImaging_nglSeparableFilter2DBO, NULL, NULL}, + {"nglGetSeparableFilter", "(IIILjava/nio/Buffer;ILjava/nio/Buffer;ILjava/nio/Buffer;I)V", (void*)&Java_org_lwjgl_opengl_ARBImaging_nglGetSeparableFilter, "glGetSeparableFilter", (void*)&glGetSeparableFilter}, + {"nglGetSeparableFilterBO", "(IIIIII)V", (void*)&Java_org_lwjgl_opengl_ARBImaging_nglGetSeparableFilterBO, NULL, NULL} }; int num_functions = NUMFUNCTIONS(functions); extgl_InitializeClass(env, clazz, num_functions, functions); diff --git a/src/native/common/org_lwjgl_opengl_GL11.c b/src/native/common/org_lwjgl_opengl_GL11.c index 41b2514e..1fbcbef6 100644 --- a/src/native/common/org_lwjgl_opengl_GL11.c +++ b/src/native/common/org_lwjgl_opengl_GL11.c @@ -538,6 +538,15 @@ static void JNICALL Java_org_lwjgl_opengl_GL11_nglBitmap(JNIEnv * env, jclass cl } +/* + * Class: org_lwjgl_opengl_GL11 + * Method: glBitmap + */ +static void JNICALL Java_org_lwjgl_opengl_GL11_nglBitmapBO(JNIEnv * env, jclass clazz, jint p0, jint p1, jfloat p2, jfloat p3, jfloat p4, jfloat p5, jint buffer_offset) +{ + glBitmap((GLint) p0, (GLint) p1, (GLfloat) p2, (GLfloat) p3, (GLfloat) p4, (GLfloat) p5, offsetToPointer(buffer_offset)); +} + /* * Class: org_lwjgl_opengl_GL11 * Method: glBindTexture @@ -931,7 +940,15 @@ static void JNICALL Java_org_lwjgl_opengl_GL11_nglDrawPixels(JNIEnv * env, jclas { const GLbyte *address = (const GLbyte *)(*env)->GetDirectBufferAddress(env, buffer); glDrawPixels((GLint) p0, (GLint) p1, (GLint) p2, (GLint) p3, (const void *)(address + offset)); +} +/* + * Class: org_lwjgl_opengl_GL11 + * Method: glDrawPixels + */ +static void JNICALL Java_org_lwjgl_opengl_GL11_nglDrawPixelsBO(JNIEnv * env, jclass clazz, jint p0, jint p1, jint p2, jint p3, jint buffer_offset) +{ + glDrawPixels((GLint) p0, (GLint) p1, (GLint) p2, (GLint) p3, offsetToPointer(buffer_offset)); } /* @@ -1024,7 +1041,15 @@ static void JNICALL Java_org_lwjgl_opengl_GL11_nglGetPixelMapfv(JNIEnv * env, jc { GLfloat *address = offset + (GLfloat *)(*env)->GetDirectBufferAddress(env, buffer); glGetPixelMapfv((GLint) p0, address); +} +/* + * Class: org_lwjgl_opengl_GL11 + * Method: glGetPixelMapfv + */ +static void JNICALL Java_org_lwjgl_opengl_GL11_nglGetPixelMapfvBO(JNIEnv * env, jclass clazz, jint p0, jint buffer_offset) +{ + glGetPixelMapfv((GLint) p0, offsetToPointer(buffer_offset)); } /* @@ -1035,7 +1060,15 @@ static void JNICALL Java_org_lwjgl_opengl_GL11_nglGetPixelMapuiv(JNIEnv * env, j { GLuint *address = offset + (GLuint *)(*env)->GetDirectBufferAddress(env, buffer); glGetPixelMapuiv((GLint) p0, address); +} +/* + * Class: org_lwjgl_opengl_GL11 + * Method: glGetPixelMapuiv + */ +static void JNICALL Java_org_lwjgl_opengl_GL11_nglGetPixelMapuivBO(JNIEnv * env, jclass clazz, jint p0, jint buffer_offset) +{ + glGetPixelMapuiv((GLint) p0, offsetToPointer(buffer_offset)); } /* @@ -1046,7 +1079,15 @@ static void JNICALL Java_org_lwjgl_opengl_GL11_nglGetPixelMapusv(JNIEnv * env, j { GLushort *address = (GLushort *)(*env)->GetDirectBufferAddress(env, buffer); glGetPixelMapusv((GLint) p0, address); +} +/* + * Class: org_lwjgl_opengl_GL11 + * Method: glGetPixelMapusv + */ +static void JNICALL Java_org_lwjgl_opengl_GL11_nglGetPixelMapusvBO(JNIEnv * env, jclass clazz, jint p0, jint buffer_offset) +{ + glGetPixelMapusv((GLint) p0, offsetToPointer(buffer_offset)); } /* @@ -1402,9 +1443,16 @@ static void JNICALL Java_org_lwjgl_opengl_GL11_nglGetTexImage(JNIEnv * env, jcla { void *address = (void *)(offset + (GLbyte *)(*env)->GetDirectBufferAddress(env, buffer)); glGetTexImage((GLint) p0, (GLint) p1, (GLint) p2, (GLint) p3, address); - } +/* + * Class: org_lwjgl_opengl_GL11 + * Method: glGetTexImage + */ +static void JNICALL Java_org_lwjgl_opengl_GL11_nglGetTexImageBO(JNIEnv * env, jclass clazz, jint p0, jint p1, jint p2, jint p3, jint buffer_offset) +{ + glGetTexImage((GLint) p0, (GLint) p1, (GLint) p2, (GLint) p3, offsetToPointer(buffer_offset)); +} static void JNICALL Java_org_lwjgl_opengl_GL11_nglGetTexGenfv(JNIEnv * env, jclass clazz, jint p0, jint p1, jobject buffer, jint offset) { @@ -1460,7 +1508,15 @@ static void JNICALL Java_org_lwjgl_opengl_GL11_nglGetPolygonStipple(JNIEnv * env { GLubyte *address = offset + (GLubyte *)(*env)->GetDirectBufferAddress(env, buffer); glGetPolygonStipple(address); +} +/* + * Class: org_lwjgl_opengl_GL11 + * Method: glGetPolygonStipple + */ +static void JNICALL Java_org_lwjgl_opengl_GL11_nglGetPolygonStippleBO(JNIEnv * env, jclass clazz, jint buffer_offset) +{ + glGetPolygonStipple(offsetToPointer(buffer_offset)); } /* @@ -1748,7 +1804,15 @@ static void JNICALL Java_org_lwjgl_opengl_GL11_nglPolygonStipple(JNIEnv * env, j { const GLubyte *address = offset + (const GLubyte *)(*env)->GetDirectBufferAddress(env, buffer); glPolygonStipple(address); +} +/* + * Class: org_lwjgl_opengl_GL11 + * Method: glPolygonStipple + */ +static void JNICALL Java_org_lwjgl_opengl_GL11_nglPolygonStippleBO(JNIEnv * env, jclass clazz, jint buffer_offset) +{ + glPolygonStipple(offsetToPointer(buffer_offset)); } /* @@ -1839,7 +1903,15 @@ static void JNICALL Java_org_lwjgl_opengl_GL11_nglPixelMapfv(JNIEnv * env, jclas { const GLfloat *address = offset + (const GLfloat *)(*env)->GetDirectBufferAddress(env, buffer); glPixelMapfv((GLint) p0, (GLint) p1, address); +} +/* + * Class: org_lwjgl_opengl_GL11 + * Method: glPixelMapfv + */ +static void JNICALL Java_org_lwjgl_opengl_GL11_nglPixelMapfvBO(JNIEnv * env, jclass clazz, jint p0, jint p1, jint buffer_offset) +{ + glPixelMapfv((GLint) p0, (GLint) p1, offsetToPointer(buffer_offset)); } /* @@ -1850,7 +1922,15 @@ static void JNICALL Java_org_lwjgl_opengl_GL11_nglPixelMapuiv(JNIEnv * env, jcla { const GLuint *address = (const GLuint *)(offset + (const GLbyte *)(*env)->GetDirectBufferAddress(env, buffer)); glPixelMapuiv((GLint) p0, (GLint) p1, address); +} +/* + * Class: org_lwjgl_opengl_GL11 + * Method: glPixelMapuiv + */ +static void JNICALL Java_org_lwjgl_opengl_GL11_nglPixelMapuivBO(JNIEnv * env, jclass clazz, jint p0, jint p1, jint buffer_offset) +{ + glPixelMapuiv((GLint) p0, (GLint) p1, offsetToPointer(buffer_offset)); } /* @@ -1861,9 +1941,16 @@ static void JNICALL Java_org_lwjgl_opengl_GL11_nglPixelMapusv(JNIEnv * env, jcla { const GLushort *address = (const GLushort *)(offset + (const GLbyte *)(*env)->GetDirectBufferAddress(env, buffer)); glPixelMapusv((GLint) p0, (GLint) p1, address); - } +/* + * Class: org_lwjgl_opengl_GL11 + * Method: glPixelMapusv + */ +static void JNICALL Java_org_lwjgl_opengl_GL11_nglPixelMapusvBO(JNIEnv * env, jclass clazz, jint p0, jint p1, jint buffer_offset) +{ + glPixelMapusv((GLint) p0, (GLint) p1, offsetToPointer(buffer_offset)); +} /* * Class: org_lwjgl_opengl_GL11 * Method: glPassThrough @@ -2058,7 +2145,15 @@ static void JNICALL Java_org_lwjgl_opengl_GL11_nglReadPixels(JNIEnv * env, jclas { void *address = (void *)(offset + (GLbyte *)(*env)->GetDirectBufferAddress(env, buffer)); glReadPixels((GLint) p0, (GLint) p1, (GLint) p2, (GLint) p3, (GLint) p4, (GLint) p5, address); +} +/* + * Class: org_lwjgl_opengl_GL11 + * Method: glReadPixels + */ +static void JNICALL Java_org_lwjgl_opengl_GL11_nglReadPixelsBO(JNIEnv * env, jclass clazz, jint p0, jint p1, jint p2, jint p3, jint p4, jint p5, jint buffer_offset) +{ + glReadPixels((GLint) p0, (GLint) p1, (GLint) p2, (GLint) p3, (GLint) p4, (GLint) p5, offsetToPointer(buffer_offset)); } /* @@ -2323,7 +2418,15 @@ static void JNICALL Java_org_lwjgl_opengl_GL11_nglTexSubImage2D(JNIEnv * env, jc { const void *address = (const void *)(offset + (GLbyte *)(*env)->GetDirectBufferAddress(env, buffer)); glTexSubImage2D((GLint) p0, (GLint) p1, (GLint) p2, (GLint) p3, (GLint) p4, (GLint) p5, (GLint) p6, (GLint) p7, address); +} +/* + * Class: org_lwjgl_opengl_GL11 + * Method: glTexSubImage2D + */ +static void JNICALL Java_org_lwjgl_opengl_GL11_nglTexSubImage2DBO(JNIEnv * env, jclass clazz, jint p0, jint p1, jint p2, jint p3, jint p4, jint p5, jint p6, jint p7, jint buffer_offset) +{ + glTexSubImage2D((GLint) p0, (GLint) p1, (GLint) p2, (GLint) p3, (GLint) p4, (GLint) p5, (GLint) p6, (GLint) p7, offsetToPointer(buffer_offset)); } /* @@ -2334,7 +2437,15 @@ static void JNICALL Java_org_lwjgl_opengl_GL11_nglTexSubImage1D(JNIEnv * env, jc { const void *address = (const void *)(offset + (GLbyte *)(*env)->GetDirectBufferAddress(env, buffer)); glTexSubImage1D((GLint) p0, (GLint) p1, (GLint) p2, (GLint) p3, (GLint) p4, (GLint) p5, address); +} +/* + * Class: org_lwjgl_opengl_GL11 + * Method: glTexSubImage1D + */ +static void JNICALL Java_org_lwjgl_opengl_GL11_nglTexSubImage1DBO(JNIEnv * env, jclass clazz, jint p0, jint p1, jint p2, jint p3, jint p4, jint p5, jint buffer_offset) +{ + glTexSubImage1D((GLint) p0, (GLint) p1, (GLint) p2, (GLint) p3, (GLint) p4, (GLint) p5, offsetToPointer(buffer_offset)); } static void JNICALL Java_org_lwjgl_opengl_GL11_nglTexParameterfv @@ -2377,7 +2488,15 @@ static void JNICALL Java_org_lwjgl_opengl_GL11_nglTexImage2D(JNIEnv * env, jclas { GLvoid *buffer_ptr = (GLvoid *)safeGetBufferAddress(env, buffer, offset); glTexImage2D((GLint) p0, (GLint) p1, (GLint) p2, (GLint) p3, (GLint) p4, (GLint) p5, (GLint) p6, (GLint) p7, buffer_ptr); +} +/* + * Class: org_lwjgl_opengl_GL11 + * Method: glTexImage2D + */ +static void JNICALL Java_org_lwjgl_opengl_GL11_nglTexImage2DBO(JNIEnv * env, jclass clazz, jint p0, jint p1, jint p2, jint p3, jint p4, jint p5, jint p6, jint p7, jint buffer_offset) +{ + glTexImage2D((GLint) p0, (GLint) p1, (GLint) p2, (GLint) p3, (GLint) p4, (GLint) p5, (GLint) p6, (GLint) p7, offsetToPointer(buffer_offset)); } /* @@ -2388,9 +2507,16 @@ static void JNICALL Java_org_lwjgl_opengl_GL11_nglTexImage1D(JNIEnv * env, jclas { GLvoid *buffer_ptr = (GLvoid *)safeGetBufferAddress(env, buffer, offset); glTexImage1D((GLint) p0, (GLint) p1, (GLint) p2, (GLint) p3, (GLint) p4, (GLint) p5, (GLint) p6, buffer_ptr); - } +/* + * Class: org_lwjgl_opengl_GL11 + * Method: glTexImage1D + */ +static void JNICALL Java_org_lwjgl_opengl_GL11_nglTexImage1DBO(JNIEnv * env, jclass clazz, jint p0, jint p1, jint p2, jint p3, jint p4, jint p5, jint p6, jint buffer_offset) +{ + glTexImage1D((GLint) p0, (GLint) p1, (GLint) p2, (GLint) p3, (GLint) p4, (GLint) p5, (GLint) p6, offsetToPointer(buffer_offset)); +} /* * Class: org_lwjgl_opengl_GL11 @@ -2585,6 +2711,7 @@ JNIEXPORT void JNICALL Java_org_lwjgl_opengl_GL11_initNativeStubs(JNIEnv *env, j {"glCallList", "(I)V", (void*)&Java_org_lwjgl_opengl_GL11_glCallList, "glCallList", (void*)&glCallList}, {"glBlendFunc", "(II)V", (void*)&Java_org_lwjgl_opengl_GL11_glBlendFunc, "glBlendFunc", (void*)&glBlendFunc}, {"nglBitmap", "(IIFFFFLjava/nio/ByteBuffer;I)V", (void*)&Java_org_lwjgl_opengl_GL11_nglBitmap, "glBitmap", (void*)&glBitmap}, + {"nglBitmapBO", "(IIFFFFI)V", (void*)&Java_org_lwjgl_opengl_GL11_nglBitmapBO, NULL, NULL}, {"glBindTexture", "(II)V", (void*)&Java_org_lwjgl_opengl_GL11_glBindTexture, "glBindTexture", (void*)&glBindTexture}, {"glBegin", "(I)V", (void*)&Java_org_lwjgl_opengl_GL11_glBegin, "glBegin", (void*)&glBegin}, {"glEnd", "()V", (void*)&Java_org_lwjgl_opengl_GL11_glEnd, "glEnd", (void*)&glEnd}, @@ -2625,6 +2752,7 @@ JNIEXPORT void JNICALL Java_org_lwjgl_opengl_GL11_initNativeStubs(JNIEnv *env, j {"nglEdgeFlagPointerVBO", "(II)V", (void*)&Java_org_lwjgl_opengl_GL11_nglEdgeFlagPointerVBO, NULL, NULL}, {"glEdgeFlag", "(Z)V", (void*)&Java_org_lwjgl_opengl_GL11_glEdgeFlag, "glEdgeFlag", (void*)&glEdgeFlag}, {"nglDrawPixels", "(IIIILjava/nio/Buffer;I)V", (void*)&Java_org_lwjgl_opengl_GL11_nglDrawPixels, "glDrawPixels", (void*)&glDrawPixels}, + {"nglDrawPixelsBO", "(IIIII)V", (void*)&Java_org_lwjgl_opengl_GL11_nglDrawPixelsBO, NULL, NULL}, {"nglDrawElements", "(IIILjava/nio/Buffer;I)V", (void*)&Java_org_lwjgl_opengl_GL11_nglDrawElements, "glDrawElements", (void*)&glDrawElements}, {"nglDrawElementsVBO", "(IIII)V", (void*)&Java_org_lwjgl_opengl_GL11_nglDrawElementsVBO, NULL, NULL}, {"glDrawBuffer", "(I)V", (void*)&Java_org_lwjgl_opengl_GL11_glDrawBuffer, "glDrawBuffer", (void*)&glDrawBuffer}, @@ -2634,8 +2762,11 @@ JNIEXPORT void JNICALL Java_org_lwjgl_opengl_GL11_initNativeStubs(JNIEnv *env, j {"glDepthFunc", "(I)V", (void*)&Java_org_lwjgl_opengl_GL11_glDepthFunc, "glDepthFunc", (void*)&glDepthFunc}, {"nglFeedbackBuffer", "(IILjava/nio/FloatBuffer;I)V", (void*)&Java_org_lwjgl_opengl_GL11_nglFeedbackBuffer, "glFeedbackBuffer", (void*)&glFeedbackBuffer}, {"nglGetPixelMapfv", "(ILjava/nio/FloatBuffer;I)V", (void*)&Java_org_lwjgl_opengl_GL11_nglGetPixelMapfv, "glGetPixelMapfv", (void*)&glGetPixelMapfv}, + {"nglGetPixelMapfvBO", "(II)V", (void*)&Java_org_lwjgl_opengl_GL11_nglGetPixelMapfvBO, NULL, NULL}, {"nglGetPixelMapuiv", "(ILjava/nio/IntBuffer;I)V", (void*)&Java_org_lwjgl_opengl_GL11_nglGetPixelMapuiv, "glGetPixelMapuiv", (void*)&glGetPixelMapuiv}, + {"nglGetPixelMapuivBO", "(II)V", (void*)&Java_org_lwjgl_opengl_GL11_nglGetPixelMapuivBO, NULL, NULL}, {"nglGetPixelMapusv", "(ILjava/nio/ShortBuffer;I)V", (void*)&Java_org_lwjgl_opengl_GL11_nglGetPixelMapusv, "glGetPixelMapusv", (void*)&glGetPixelMapusv}, + {"nglGetPixelMapusvBO", "(II)V", (void*)&Java_org_lwjgl_opengl_GL11_nglGetPixelMapusvBO, NULL, NULL}, {"nglGetMaterialfv", "(IILjava/nio/FloatBuffer;I)V", (void*)&Java_org_lwjgl_opengl_GL11_nglGetMaterialfv, "glGetMaterialfv", (void*)&glGetMaterialfv}, {"nglGetMaterialiv", "(IILjava/nio/IntBuffer;I)V", (void*)&Java_org_lwjgl_opengl_GL11_nglGetMaterialiv, "glGetMaterialiv", (void*)&glGetMaterialiv}, {"nglGetMapfv", "(IILjava/nio/FloatBuffer;I)V", (void*)&Java_org_lwjgl_opengl_GL11_nglGetMapfv, "glGetMapfv", (void*)&glGetMapfv}, @@ -2669,12 +2800,14 @@ JNIEXPORT void JNICALL Java_org_lwjgl_opengl_GL11_initNativeStubs(JNIEnv *env, j {"nglGetTexLevelParameterfv", "(IIILjava/nio/FloatBuffer;I)V", (void*)&Java_org_lwjgl_opengl_GL11_nglGetTexLevelParameterfv, "glGetTexLevelParameterfv", (void*)&glGetTexLevelParameterfv}, {"nglGetTexLevelParameteriv", "(IIILjava/nio/IntBuffer;I)V", (void*)&Java_org_lwjgl_opengl_GL11_nglGetTexLevelParameteriv, "glGetTexLevelParameteriv", (void*)&glGetTexLevelParameteriv}, {"nglGetTexImage", "(IIIILjava/nio/Buffer;I)V", (void*)&Java_org_lwjgl_opengl_GL11_nglGetTexImage, "glGetTexImage", (void*)&glGetTexImage}, + {"nglGetTexImageBO", "(IIIII)V", (void*)&Java_org_lwjgl_opengl_GL11_nglGetTexImageBO, NULL, NULL}, {"nglGetTexGeniv", "(IILjava/nio/IntBuffer;I)V", (void*)&Java_org_lwjgl_opengl_GL11_nglGetTexGeniv, "glGetTexGeniv", (void*)&glGetTexGeniv}, {"nglGetTexGenfv", "(IILjava/nio/FloatBuffer;I)V", (void*)&Java_org_lwjgl_opengl_GL11_nglGetTexGenfv, "glGetTexGenfv", (void*)&glGetTexGenfv}, {"nglGetTexEnviv", "(IILjava/nio/IntBuffer;I)V", (void*)&Java_org_lwjgl_opengl_GL11_nglGetTexEnviv, "glGetTexEnviv", (void*)&glGetTexEnviv}, {"nglGetTexEnvfv", "(IILjava/nio/FloatBuffer;I)V", (void*)&Java_org_lwjgl_opengl_GL11_nglGetTexEnvfv, "glGetTexEnvfv", (void*)&glGetTexEnvfv}, {"glGetString", "(I)Ljava/lang/String;", (void*)&Java_org_lwjgl_opengl_GL11_glGetString, "glGetString", (void*)&glGetString}, {"nglGetPolygonStipple", "(Ljava/nio/ByteBuffer;I)V", (void*)&Java_org_lwjgl_opengl_GL11_nglGetPolygonStipple, "glGetPolygonStipple", (void*)&glGetPolygonStipple}, + {"nglGetPolygonStippleBO", "(I)V", (void*)&Java_org_lwjgl_opengl_GL11_nglGetPolygonStippleBO, NULL, NULL}, {"glIsList", "(I)Z", (void*)&Java_org_lwjgl_opengl_GL11_glIsList, "glIsList", (void*)&glIsList}, {"glMaterialf", "(IIF)V", (void*)&Java_org_lwjgl_opengl_GL11_glMaterialf, "glMaterialf", (void*)&glMaterialf}, {"glMateriali", "(III)V", (void*)&Java_org_lwjgl_opengl_GL11_glMateriali, "glMateriali", (void*)&glMateriali}, @@ -2702,6 +2835,7 @@ JNIEXPORT void JNICALL Java_org_lwjgl_opengl_GL11_initNativeStubs(JNIEnv *env, j {"glIsTexture", "(I)Z", (void*)&Java_org_lwjgl_opengl_GL11_glIsTexture, "glIsTexture", (void*)&glIsTexture}, {"glMatrixMode", "(I)V", (void*)&Java_org_lwjgl_opengl_GL11_glMatrixMode, "glMatrixMode", (void*)&glMatrixMode}, {"nglPolygonStipple", "(Ljava/nio/ByteBuffer;I)V", (void*)&Java_org_lwjgl_opengl_GL11_nglPolygonStipple, "glPolygonStipple", (void*)&glPolygonStipple}, + {"nglPolygonStippleBO", "(I)V", (void*)&Java_org_lwjgl_opengl_GL11_nglPolygonStippleBO, NULL, NULL}, {"glPolygonOffset", "(FF)V", (void*)&Java_org_lwjgl_opengl_GL11_glPolygonOffset, "glPolygonOffset", (void*)&glPolygonOffset}, {"glPolygonMode", "(II)V", (void*)&Java_org_lwjgl_opengl_GL11_glPolygonMode, "glPolygonMode", (void*)&glPolygonMode}, {"glPointSize", "(F)V", (void*)&Java_org_lwjgl_opengl_GL11_glPointSize, "glPointSize", (void*)&glPointSize}, @@ -2711,8 +2845,11 @@ JNIEXPORT void JNICALL Java_org_lwjgl_opengl_GL11_initNativeStubs(JNIEnv *env, j {"glPixelStoref", "(IF)V", (void*)&Java_org_lwjgl_opengl_GL11_glPixelStoref, "glPixelStoref", (void*)&glPixelStoref}, {"glPixelStorei", "(II)V", (void*)&Java_org_lwjgl_opengl_GL11_glPixelStorei, "glPixelStorei", (void*)&glPixelStorei}, {"nglPixelMapfv", "(IILjava/nio/FloatBuffer;I)V", (void*)&Java_org_lwjgl_opengl_GL11_nglPixelMapfv, "glPixelMapfv", (void*)&glPixelMapfv}, + {"nglPixelMapfvBO", "(III)V", (void*)&Java_org_lwjgl_opengl_GL11_nglPixelMapfvBO, NULL, NULL}, {"nglPixelMapuiv", "(IILjava/nio/IntBuffer;I)V", (void*)&Java_org_lwjgl_opengl_GL11_nglPixelMapuiv, "glPixelMapuiv", (void*)&glPixelMapuiv}, + {"nglPixelMapuivBO", "(III)V", (void*)&Java_org_lwjgl_opengl_GL11_nglPixelMapuivBO, NULL, NULL}, {"nglPixelMapusv", "(IILjava/nio/ShortBuffer;I)V", (void*)&Java_org_lwjgl_opengl_GL11_nglPixelMapusv, "glPixelMapusv", (void*)&glPixelMapusv}, + {"nglPixelMapusvBO", "(III)V", (void*)&Java_org_lwjgl_opengl_GL11_nglPixelMapusvBO, NULL, NULL}, {"glPassThrough", "(F)V", (void*)&Java_org_lwjgl_opengl_GL11_glPassThrough, "glPassThrough", (void*)&glPassThrough}, {"glOrtho", "(DDDDDD)V", (void*)&Java_org_lwjgl_opengl_GL11_glOrtho, "glOrtho", (void*)&glOrtho}, {"nglNormalPointer", "(IILjava/nio/Buffer;I)V", (void*)&Java_org_lwjgl_opengl_GL11_nglNormalPointer, "glNormalPointer", (void*)&glNormalPointer}, @@ -2732,6 +2869,7 @@ JNIEXPORT void JNICALL Java_org_lwjgl_opengl_GL11_initNativeStubs(JNIEnv *env, j {"glRectf", "(FFFF)V", (void*)&Java_org_lwjgl_opengl_GL11_glRectf, "glRectf", (void*)&glRectf}, {"glRecti", "(IIII)V", (void*)&Java_org_lwjgl_opengl_GL11_glRecti, "glRecti", (void*)&glRecti}, {"nglReadPixels", "(IIIIIILjava/nio/Buffer;I)V", (void*)&Java_org_lwjgl_opengl_GL11_nglReadPixels, "glReadPixels", (void*)&glReadPixels}, + {"nglReadPixelsBO", "(IIIIIII)V", (void*)&Java_org_lwjgl_opengl_GL11_nglReadPixelsBO, NULL, NULL}, {"glReadBuffer", "(I)V", (void*)&Java_org_lwjgl_opengl_GL11_glReadBuffer, "glReadBuffer", (void*)&glReadBuffer}, {"glRasterPos2f", "(FF)V", (void*)&Java_org_lwjgl_opengl_GL11_glRasterPos2f, "glRasterPos2f", (void*)&glRasterPos2f}, {"glRasterPos2i", "(II)V", (void*)&Java_org_lwjgl_opengl_GL11_glRasterPos2i, "glRasterPos2i", (void*)&glRasterPos2i}, @@ -2758,13 +2896,17 @@ JNIEXPORT void JNICALL Java_org_lwjgl_opengl_GL11_initNativeStubs(JNIEnv *env, j {"glVertex4i", "(IIII)V", (void*)&Java_org_lwjgl_opengl_GL11_glVertex4i, "glVertex4i", (void*)&glVertex4i}, {"glTranslatef", "(FFF)V", (void*)&Java_org_lwjgl_opengl_GL11_glTranslatef, "glTranslatef", (void*)&glTranslatef}, {"nglTexSubImage2D", "(IIIIIIIILjava/nio/Buffer;I)V", (void*)&Java_org_lwjgl_opengl_GL11_nglTexSubImage2D, "glTexSubImage2D", (void*)&glTexSubImage2D}, + {"nglTexSubImage2DBO", "(IIIIIIIII)V", (void*)&Java_org_lwjgl_opengl_GL11_nglTexSubImage2DBO, NULL, NULL}, {"nglTexSubImage1D", "(IIIIIILjava/nio/Buffer;I)V", (void*)&Java_org_lwjgl_opengl_GL11_nglTexSubImage1D, "glTexSubImage1D", (void*)&glTexSubImage1D}, + {"nglTexSubImage1DBO", "(IIIIIII)V", (void*)&Java_org_lwjgl_opengl_GL11_nglTexSubImage1DBO, NULL, NULL}, {"glTexParameterf", "(IIF)V", (void*)&Java_org_lwjgl_opengl_GL11_glTexParameterf, "glTexParameterf", (void*)&glTexParameterf}, {"glTexParameteri", "(III)V", (void*)&Java_org_lwjgl_opengl_GL11_glTexParameteri, "glTexParameteri", (void*)&glTexParameteri}, {"nglTexParameterfv", "(IILjava/nio/FloatBuffer;I)V", (void*)&Java_org_lwjgl_opengl_GL11_nglTexParameterfv, "glTexParameterfv", (void*)&glTexParameterfv}, {"nglTexParameteriv", "(IILjava/nio/IntBuffer;I)V", (void*)&Java_org_lwjgl_opengl_GL11_nglTexParameteriv, "glTexParameteriv", (void*)&glTexParameteriv}, {"nglTexImage2D", "(IIIIIIIILjava/nio/Buffer;I)V", (void*)&Java_org_lwjgl_opengl_GL11_nglTexImage2D, "glTexImage2D", (void*)&glTexImage2D}, + {"nglTexImage2DBO", "(IIIIIIIII)V", (void*)&Java_org_lwjgl_opengl_GL11_nglTexImage2DBO, NULL, NULL}, {"nglTexImage1D", "(IIIIIIILjava/nio/Buffer;I)V", (void*)&Java_org_lwjgl_opengl_GL11_nglTexImage1D, "glTexImage1D", (void*)&glTexImage1D}, + {"nglTexImage1DBO", "(IIIIIIII)V", (void*)&Java_org_lwjgl_opengl_GL11_nglTexImage1DBO, NULL, NULL}, {"glTexGenf", "(IIF)V", (void*)&Java_org_lwjgl_opengl_GL11_glTexGenf, "glTexGenf", (void*)&glTexGenf}, {"nglTexGenfv", "(IILjava/nio/FloatBuffer;I)V", (void*)&Java_org_lwjgl_opengl_GL11_nglTexGenfv, "glTexGenfv", (void*)&glTexGenfv}, {"glTexGeni", "(III)V", (void*)&Java_org_lwjgl_opengl_GL11_glTexGeni, "glTexGeni", (void*)&glTexGeni}, diff --git a/src/native/common/org_lwjgl_opengl_GL12.c b/src/native/common/org_lwjgl_opengl_GL12.c index b90f4fb5..ad3667ef 100644 --- a/src/native/common/org_lwjgl_opengl_GL12.c +++ b/src/native/common/org_lwjgl_opengl_GL12.c @@ -87,20 +87,37 @@ static void JNICALL Java_org_lwjgl_opengl_GL12_nglTexImage3D { GLvoid *buffer_ptr = (GLvoid *)safeGetBufferAddress(env, buffer, offset); glTexImage3D(target, level, internalformat, width, height, depth, border, format, type, buffer_ptr); +} +/* + * Class: org_lwjgl_opengl_GL12 + * Method: glTexImage3D + */ +static void JNICALL Java_org_lwjgl_opengl_GL12_nglTexImage3DBO + (JNIEnv *env, jclass clazz, jint target, jint level, jint internalformat, jint width, jint height, jint depth, jint border, jint format, jint type, jint buffer_offset) +{ + glTexImage3D(target, level, internalformat, width, height, depth, border, format, type, offsetToPointer(buffer_offset)); } /* * Class: org_lwjgl_opengl_GL12 * Method: glTexSubImage3D - * Signature: (IIIIIIIIIII)V */ static void JNICALL Java_org_lwjgl_opengl_GL12_nglTexSubImage3D (JNIEnv *env, jclass clazz, jint target, jint level, jint xoffset, jint yoffset, jint zoffset, jint width, jint height, jint depth, jint format, jint type, jobject buffer, jint offset) { const void *address = (const void *)(offset + (const GLbyte *)(*env)->GetDirectBufferAddress(env, buffer)); glTexSubImage3D(target, level, xoffset, yoffset, zoffset, width, height, depth, format, type, address); +} +/* + * Class: org_lwjgl_opengl_GL12 + * Method: glTexSubImage3D + */ +static void JNICALL Java_org_lwjgl_opengl_GL12_nglTexSubImage3DBO + (JNIEnv *env, jclass clazz, jint target, jint level, jint xoffset, jint yoffset, jint zoffset, jint width, jint height, jint depth, jint format, jint type, jint buffer_offset) +{ + glTexSubImage3D(target, level, xoffset, yoffset, zoffset, width, height, depth, format, type, offsetToPointer(buffer_offset)); } /* @@ -123,7 +140,9 @@ JNIEXPORT void JNICALL Java_org_lwjgl_opengl_GL12_initNativeStubs(JNIEnv *env, j {"nglDrawRangeElements", "(IIIIILjava/nio/Buffer;I)V", (void*)&Java_org_lwjgl_opengl_GL12_nglDrawRangeElements, "glDrawRangeElements", (void*)&glDrawRangeElements}, {"nglDrawRangeElementsVBO", "(IIIIII)V", (void*)&Java_org_lwjgl_opengl_GL12_nglDrawRangeElementsVBO, NULL, NULL}, {"nglTexImage3D", "(IIIIIIIIILjava/nio/Buffer;I)V", (void*)&Java_org_lwjgl_opengl_GL12_nglTexImage3D, "glTexImage3D", (void*)&glTexImage3D}, + {"nglTexImage3DBO", "(IIIIIIIIII)V", (void*)&Java_org_lwjgl_opengl_GL12_nglTexImage3DBO, NULL, NULL}, {"nglTexSubImage3D", "(IIIIIIIIIILjava/nio/Buffer;I)V", (void*)&Java_org_lwjgl_opengl_GL12_nglTexSubImage3D, "glTexSubImage3D", (void*)&glTexSubImage3D}, + {"nglTexSubImage3DBO", "(IIIIIIIIIII)V", (void*)&Java_org_lwjgl_opengl_GL12_nglTexSubImage3DBO, NULL, NULL}, {"glCopyTexSubImage3D", "(IIIIIIIII)V", (void*)&Java_org_lwjgl_opengl_GL12_glCopyTexSubImage3D, "glCopyTexSubImage3D", (void*)&glCopyTexSubImage3D} }; int num_functions = NUMFUNCTIONS(functions); diff --git a/src/native/common/org_lwjgl_opengl_GL13.c b/src/native/common/org_lwjgl_opengl_GL13.c index 766c0d8e..eab5149b 100644 --- a/src/native/common/org_lwjgl_opengl_GL13.c +++ b/src/native/common/org_lwjgl_opengl_GL13.c @@ -1,35 +1,35 @@ -/* +/* * Copyright (c) 2002-2004 LWJGL Project * All rights reserved. - * + * * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions are + * modification, are permitted provided that the following conditions are * met: - * - * * Redistributions of source code must retain the above copyright + * + * * Redistributions of source code must retain the above copyright * notice, this list of conditions and the following disclaimer. * * * Redistributions 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 'LWJGL' nor the names of - * its contributors may be used to endorse or promote products derived + * * Neither the name of 'LWJGL' nor the names of + * its contributors may be used to endorse or promote products derived * from this software without specific prior written permission. - * + * * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED * TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR - * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR - * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, - * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, - * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR + * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR + * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, + * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, + * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF - * LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING + * LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ - + /** * $Id$ * @@ -84,7 +84,6 @@ static void JNICALL Java_org_lwjgl_opengl_GL13_glActiveTexture (JNIEnv *env, jclass clazz, jint texture) { glActiveTexture(texture); - } /* @@ -96,7 +95,6 @@ static void JNICALL Java_org_lwjgl_opengl_GL13_glClientActiveTexture (JNIEnv *env, jclass clazz, jint texture) { glClientActiveTexture(texture); - } /* @@ -109,7 +107,17 @@ static void JNICALL Java_org_lwjgl_opengl_GL13_nglCompressedTexImage1D { const void *address = (const void *)(offset + (const GLbyte *)(*env)->GetDirectBufferAddress(env, buffer)); glCompressedTexImage1D(target, level, internalformat, width, border, imagesize, address); - +} + +/* + * Class: org_lwjgl_opengl_GL13 + * Method: glCompressedTexImage1DBO + * Signature: (IIIIIII)V + */ +static void JNICALL Java_org_lwjgl_opengl_GL13_nglCompressedTexImage1DBO + (JNIEnv *env, jclass clazz, jint target, jint level, jint internalformat, jint width, jint border, jint imagesize, jint buffer_offset) +{ + glCompressedTexImage1D(target, level, internalformat, width, border, imagesize, offsetToPointer(buffer_offset)); } /* @@ -122,7 +130,17 @@ static void JNICALL Java_org_lwjgl_opengl_GL13_nglCompressedTexImage2D { const void *address = (const void *)(offset + (const GLbyte *)(*env)->GetDirectBufferAddress(env, buffer)); glCompressedTexImage2D(target, level, internalformat, width, height, border, imagesize, address); - +} + +/* + * Class: org_lwjgl_opengl_GL13 + * Method: glCompressedTexImage2DBO + * Signature: (IIIIIIII)V + */ +static void JNICALL Java_org_lwjgl_opengl_GL13_nglCompressedTexImage2DBO + (JNIEnv *env, jclass clazz, jint target, jint level, jint internalformat, jint width, jint height, jint border, jint imagesize, jint buffer_offset) +{ + glCompressedTexImage2D(target, level, internalformat, width, height, border, imagesize, offsetToPointer(buffer_offset)); } /* @@ -135,7 +153,17 @@ static void JNICALL Java_org_lwjgl_opengl_GL13_nglCompressedTexImage3D { const void *address = (const void *)(offset + (const GLbyte *)(*env)->GetDirectBufferAddress(env, buffer)); glCompressedTexImage3D(target, level, internalformat, width, height, depth, border, imagesize, address); - +} + +/* + * Class: org_lwjgl_opengl_GL13 + * Method: glCompressedTexImage3DBO + * Signature: (IIIIIIIII)V + */ +static void JNICALL Java_org_lwjgl_opengl_GL13_nglCompressedTexImage3DBO + (JNIEnv *env, jclass clazz, jint target, jint level, jint internalformat, jint width, jint height, jint depth, jint border, jint imagesize, jint buffer_offset) +{ + glCompressedTexImage3D(target, level, internalformat, width, height, depth, border, imagesize, offsetToPointer(buffer_offset)); } /* @@ -148,7 +176,17 @@ static void JNICALL Java_org_lwjgl_opengl_GL13_nglCompressedTexSubImage1D { const void *address = (const void *)(offset + (const GLbyte *)(*env)->GetDirectBufferAddress(env, buffer)); glCompressedTexSubImage1D(target, level, xoffset, width, format, imagesize, address); - +} + +/* + * Class: org_lwjgl_opengl_GL13 + * Method: glCompressedTexSubImage1DBO + * Signature: (IIIIIII)V + */ +static void JNICALL Java_org_lwjgl_opengl_GL13_nglCompressedTexSubImage1DBO + (JNIEnv *env, jclass clazz, jint target, jint level, jint xoffset, jint width, jint format, jint imagesize, jint buffer_offset) +{ + glCompressedTexSubImage1D(target, level, xoffset, width, format, imagesize, offsetToPointer(buffer_offset)); } /* @@ -161,7 +199,17 @@ static void JNICALL Java_org_lwjgl_opengl_GL13_nglCompressedTexSubImage2D { const void *address = (const void *)(offset + (const GLbyte *)(*env)->GetDirectBufferAddress(env, buffer)); glCompressedTexSubImage2D(target, level, xoffset, yoffset, width, height, format, imagesize, address); - +} + +/* + * Class: org_lwjgl_opengl_GL13 + * Method: glCompressedTexSubImage2DBO + * Signature: (IIIIIIIII)V + */ +static void JNICALL Java_org_lwjgl_opengl_GL13_nglCompressedTexSubImage2DBO + (JNIEnv *env, jclass clazz, jint target, jint level, jint xoffset, jint yoffset, jint width, jint height, jint format, jint imagesize, jint buffer_offset) +{ + glCompressedTexSubImage2D(target, level, xoffset, yoffset, width, height, format, imagesize, offsetToPointer(buffer_offset)); } /* @@ -174,7 +222,17 @@ static void JNICALL Java_org_lwjgl_opengl_GL13_nglCompressedTexSubImage3D { const void *address = (const void *)(offset + (const GLbyte *)(*env)->GetDirectBufferAddress(env, buffer)); glCompressedTexSubImage3D(target, level, xoffset, yoffset, zoffset, width, height, depth, format, imagesize, address); - +} + +/* + * Class: org_lwjgl_opengl_GL13 + * Method: glCompressedTexSubImage3DBO + * Signature: (IIIIIIIIIII)V + */ +static void JNICALL Java_org_lwjgl_opengl_GL13_nglCompressedTexSubImage3DBO + (JNIEnv *env, jclass clazz, jint target, jint level, jint xoffset, jint yoffset, jint zoffset, jint width, jint height, jint depth, jint format, jint imagesize, jint buffer_offset) +{ + glCompressedTexSubImage3D(target, level, xoffset, yoffset, zoffset, width, height, depth, format, imagesize, offsetToPointer(buffer_offset)); } /* @@ -187,10 +245,18 @@ static void JNICALL Java_org_lwjgl_opengl_GL13_nglGetCompressedTexImage { void *address = (void *)(offset + (GLbyte *)(*env)->GetDirectBufferAddress(env, buffer)); glGetCompressedTexImage(target, lod, address); - } - +/* + * Class: org_lwjgl_opengl_GL13 + * Method: glGetCompressedTexImageBO + * Signature: (III)V + */ +static void JNICALL Java_org_lwjgl_opengl_GL13_nglGetCompressedTexImageBO + (JNIEnv *env, jclass clazz, jint target, jint lod, jint buffer_offset) +{ + glGetCompressedTexImage(target, lod, offsetToPointer(buffer_offset)); +} /* * Class: org_lwjgl_opengl_GL13 @@ -201,7 +267,7 @@ static void JNICALL Java_org_lwjgl_opengl_GL13_glMultiTexCoord1f (JNIEnv *env, jclass clazz, jint target, jfloat s) { glMultiTexCoord1f(target, s); - + } @@ -214,11 +280,9 @@ static void JNICALL Java_org_lwjgl_opengl_GL13_glMultiTexCoord2f (JNIEnv *env, jclass clazz, jint target, jfloat s, jfloat t) { glMultiTexCoord2f(target, s, t); - + } - - /* * Class: org_lwjgl_opengl_GL13 * Method: glMultiTexCoord3f @@ -228,10 +292,8 @@ static void JNICALL Java_org_lwjgl_opengl_GL13_glMultiTexCoord3f (JNIEnv *env, jclass clazz, jint target, jfloat s, jfloat t, jfloat r) { glMultiTexCoord3f(target, s, t, r); - } - /* * Class: org_lwjgl_opengl_GL13 * Method: glMultiTexCoord4f @@ -241,10 +303,8 @@ static void JNICALL Java_org_lwjgl_opengl_GL13_glMultiTexCoord4f (JNIEnv *env, jclass clazz, jint target, jfloat s, jfloat t, jfloat r, jfloat q) { glMultiTexCoord4f(target, s, t, r, q); - } - /* * Class: org_lwjgl_opengl_GL13 * Method: glLoadTransposeMatrixf @@ -255,11 +315,8 @@ static void JNICALL Java_org_lwjgl_opengl_GL13_nglLoadTransposeMatrixf { const GLfloat *address = (const GLfloat *)(*env)->GetDirectBufferAddress(env, buffer); glLoadTransposeMatrixf(address); - } - - /* * Class: org_lwjgl_opengl_GL13 * Method: glMultTransposeMatrixf @@ -270,7 +327,6 @@ static void JNICALL Java_org_lwjgl_opengl_GL13_nglMultTransposeMatrixf { const GLfloat *address = (const GLfloat *)(*env)->GetDirectBufferAddress(env, buffer); glMultTransposeMatrixf(address); - } /* @@ -282,7 +338,6 @@ static void JNICALL Java_org_lwjgl_opengl_GL13_glSampleCoverage (JNIEnv *env, jclass clazz, jfloat value, jboolean invert) { glSampleCoverage(value, invert); - } #ifdef __cplusplus @@ -293,12 +348,19 @@ JNIEXPORT void JNICALL Java_org_lwjgl_opengl_GL13_initNativeStubs(JNIEnv *env, j {"glActiveTexture", "(I)V", (void*)&Java_org_lwjgl_opengl_GL13_glActiveTexture, "glActiveTexture", (void*)&glActiveTexture}, {"glClientActiveTexture", "(I)V", (void*)&Java_org_lwjgl_opengl_GL13_glClientActiveTexture, "glClientActiveTexture", (void*)&glClientActiveTexture}, {"nglCompressedTexImage1D", "(IIIIIILjava/nio/Buffer;I)V", (void*)&Java_org_lwjgl_opengl_GL13_nglCompressedTexImage1D, "glCompressedTexImage1D", (void*)&glCompressedTexImage1D}, + {"nglCompressedTexImage1DBO", "(IIIIIII)V", (void*)&Java_org_lwjgl_opengl_GL13_nglCompressedTexImage1DBO, NULL, NULL}, {"nglCompressedTexImage2D", "(IIIIIIILjava/nio/Buffer;I)V", (void*)&Java_org_lwjgl_opengl_GL13_nglCompressedTexImage2D, "glCompressedTexImage2D", (void*)&glCompressedTexImage2D}, + {"nglCompressedTexImage2DBO", "(IIIIIIII)V", (void*)&Java_org_lwjgl_opengl_GL13_nglCompressedTexImage2DBO, NULL, NULL}, {"nglCompressedTexImage3D", "(IIIIIIIILjava/nio/Buffer;I)V", (void*)&Java_org_lwjgl_opengl_GL13_nglCompressedTexImage3D, "glCompressedTexImage3D", (void*)&glCompressedTexImage3D}, + {"nglCompressedTexImage3DBO", "(IIIIIIIII)V", (void*)&Java_org_lwjgl_opengl_GL13_nglCompressedTexImage3DBO, NULL, NULL}, {"nglCompressedTexSubImage1D", "(IIIIIILjava/nio/Buffer;I)V", (void*)&Java_org_lwjgl_opengl_GL13_nglCompressedTexSubImage1D, "glCompressedTexSubImage1D", (void*)&glCompressedTexSubImage1D}, + {"nglCompressedTexSubImage1DBO", "(IIIIIII)V", (void*)&Java_org_lwjgl_opengl_GL13_nglCompressedTexSubImage1DBO, NULL, NULL}, {"nglCompressedTexSubImage2D", "(IIIIIIIILjava/nio/Buffer;I)V", (void*)&Java_org_lwjgl_opengl_GL13_nglCompressedTexSubImage2D, "glCompressedTexSubImage2D", (void*)&glCompressedTexSubImage2D}, + {"nglCompressedTexSubImage2DBO", "(IIIIIIIII)V", (void*)&Java_org_lwjgl_opengl_GL13_nglCompressedTexSubImage2DBO, NULL, NULL}, {"nglCompressedTexSubImage3D", "(IIIIIIIIIILjava/nio/Buffer;I)V", (void*)&Java_org_lwjgl_opengl_GL13_nglCompressedTexSubImage3D, "glCompressedTexSubImage3D", (void*)&glCompressedTexSubImage3D}, + {"nglCompressedTexSubImage3DBO", "(IIIIIIIIIII)V", (void*)&Java_org_lwjgl_opengl_GL13_nglCompressedTexSubImage3DBO, NULL, NULL}, {"nglGetCompressedTexImage", "(IILjava/nio/Buffer;I)V", (void*)&Java_org_lwjgl_opengl_GL13_nglGetCompressedTexImage, "glGetCompressedTexImage", (void*)&glGetCompressedTexImage}, + {"nglGetCompressedTexImageBO", "(III)V", (void*)&Java_org_lwjgl_opengl_GL13_nglGetCompressedTexImageBO, NULL, NULL}, {"glMultiTexCoord1f", "(IF)V", (void*)&Java_org_lwjgl_opengl_GL13_glMultiTexCoord1f, "glMultiTexCoord1f", (void*)&glMultiTexCoord1f}, {"glMultiTexCoord2f", "(IFF)V", (void*)&Java_org_lwjgl_opengl_GL13_glMultiTexCoord2f, "glMultiTexCoord2f", (void*)&glMultiTexCoord2f}, {"glMultiTexCoord3f", "(IFFF)V", (void*)&Java_org_lwjgl_opengl_GL13_glMultiTexCoord3f, "glMultiTexCoord3f", (void*)&glMultiTexCoord3f},