I have 2 buffers of type GL_ARRAY_BUFFER I need to copy all the data from buffer 1 to buffer 2.
I tried to use glCopyBufferSubData but copying does not occur.
example
int[] id = new int[2]; float[] data= new float[]{ 1,2,3 }; float[] data2 = new float[]{ 4,5,6 }; gl.glGenBuffers(2,id,0); int buf1 = id[0]; int buf2 = id[1]; gl.glBindBuffer(GL.GL_ARRAY_BUFFER,buf1); gl.glBufferData(GL.GL_ARRAY_BUFFER,data.length*4,FloatBuffer.wrap(data),GL.GL_STATIC_DRAW); FloatBuffer ret = GLBuffers.newDirectFloatBuffer(data.length); gl.glGetBufferSubData(GL.GL_ARRAY_BUFFER,0,data.length*4,ret); System.out.println("буфер 1"); for (int i = 0; i < ret.capacity(); i++){ System.out.print(ret.get() + " "); } gl.glBindBuffer(GL.GL_ARRAY_BUFFER,0); gl.glBindBuffer(GL.GL_ARRAY_BUFFER,buf2); gl.glBufferData(GL.GL_ARRAY_BUFFER,data2.length*4,FloatBuffer.wrap(data2),GL.GL_STATIC_DRAW); ret = GLBuffers.newDirectFloatBuffer(data2.length); gl.glGetBufferSubData(GL.GL_ARRAY_BUFFER,0,data2.length*4,ret); System.out.println("\nбуффер 2"); for (int i = 0; i < ret.capacity(); i++){ System.out.print(ret.get() + " "); } gl.glBindBuffer(GL.GL_ARRAY_BUFFER,0); gl.glCopyBufferSubData(buf2,buf1,0,0,data2.length*4); System.out.println(); gl.glBindBuffer(GL.GL_ARRAY_BUFFER,buf1); ret = GLBuffers.newDirectFloatBuffer(data.length); gl.glGetBufferSubData(GL.GL_ARRAY_BUFFER,0,data.length*4,ret); System.out.println("буфер 1"); for (int i = 0; i < ret.capacity(); i++){ System.out.print(ret.get() + " "); }
glGetErrorerrorglGetErrorif it is - Kromster