Login  Register

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);