Re: Display() gets called before init() finishes
Posted by elect on Apr 20, 2015; 12:19pm
URL: https://forum.jogamp.org/Display-gets-called-before-init-finishes-tp4034335p4034339.html
Solved, it seems if you bind the buffer before it doesnt complain
gl4.glNamedBufferData(vertexBuffer[0], Vertex.size() * vertices.size(),
GLBuffers.newDirectFloatBuffer(verticesFA), GL4.GL_STATIC_DRAW);
// *** INTERESTING ***
// get the GPU pointer for the vertex buffer and make the vertex buffer
// resident on the GPU
gl4.glBindBuffer(GL4.GL_ARRAY_BUFFER, vertexBuffer[0]);
gl4.glGetBufferParameterui64vNV(GL4.GL_ARRAY_BUFFER, GL4.GL_BUFFER_GPU_ADDRESS_NV,
vertexBufferGPUPtr, 0);
gl4.glGetBufferParameteriv(GL4.GL_ARRAY_BUFFER, GL4.GL_BUFFER_SIZE,
vertexBufferSize, 0);
gl4.glMakeBufferResidentNV(GL4.GL_ARRAY_BUFFER, GL4.GL_READ_ONLY);
gl4.glBindBuffer(GL4.GL_ARRAY_BUFFER, 0);
// *** INTERESTING ***
// get the GPU pointer for the vertex buffer and make the vertex buffer
// resident on the GPU
gl4.glBindBuffer(GL4.GL_ARRAY_BUFFER, vertexBuffer[0]);
gl4.glNamedBufferData(vertexBuffer[0], Vertex.size() * vertices.size(),
GLBuffers.newDirectFloatBuffer(verticesArray), GL4.GL_STATIC_DRAW);
gl4.glGetBufferParameterui64vNV(GL4.GL_ARRAY_BUFFER, GL4.GL_BUFFER_GPU_ADDRESS_NV,
vertexBufferGPUPtr, 0);
gl4.glGetBufferParameteriv(GL4.GL_ARRAY_BUFFER, GL4.GL_BUFFER_SIZE,
vertexBufferSize, 0);
gl4.glMakeBufferResidentNV(GL4.GL_ARRAY_BUFFER, GL4.GL_READ_ONLY);
gl4.glBindBuffer(GL4.GL_ARRAY_BUFFER, 0);