xpenatan / gdx-teavm

Run Libgdx in a webbrowser with teavm
Apache License 2.0
107 stars 16 forks source link

GL20.GL_VIEWPORT not supported glGetIntegerv in the TeaGL20 class #103

Closed antzGames closed 1 year ago

antzGames commented 1 year ago

SO GWT supports glGetIntegerv for GL20.GL_VIEWPORT which is not supported by gdx-teavm in the TeaGL20 class.

Probably ported over to gdx-teavm from an older GWT source.

Below is GWT code from GWTGL20 class:



    @Override
    public void glGetIntegerv (int pname, IntBuffer params) {
        if (pname == GL20.GL_ACTIVE_TEXTURE || pname == GL20.GL_ALPHA_BITS || pname == GL20.GL_BLEND_DST_ALPHA
            || pname == GL20.GL_BLEND_DST_RGB || pname == GL20.GL_BLEND_EQUATION_ALPHA || pname == GL20.GL_BLEND_EQUATION_RGB
            || pname == GL20.GL_BLEND_SRC_ALPHA || pname == GL20.GL_BLEND_SRC_RGB || pname == GL20.GL_BLUE_BITS
            || pname == GL20.GL_CULL_FACE_MODE || pname == GL20.GL_DEPTH_BITS || pname == GL20.GL_DEPTH_FUNC
.
.
.
.
            || pname == GL20.GL_STENCIL_FAIL || pname == GL20.GL_STENCIL_FUNC || pname == GL20.GL_STENCIL_PASS_DEPTH_FAIL
            || pname == GL20.GL_STENCIL_PASS_DEPTH_PASS || pname == GL20.GL_STENCIL_REF || pname == GL20.GL_STENCIL_VALUE_MASK
            || pname == GL20.GL_STENCIL_WRITEMASK || pname == GL20.GL_SUBPIXEL_BITS || pname == GL20.GL_UNPACK_ALIGNMENT) {
            params.put(0, gl.getParameteri(pname));
            params.flip();
        } else if (pname == GL20.GL_VIEWPORT) {
            Int32Array array = gl.getParameterv(pname);
            params.put(0, array.get(0));
            params.put(1, array.get(1));
            params.put(2, array.get(2));
            params.put(3, array.get(3));
            params.flip();
        } else if (pname == GL20.GL_FRAMEBUFFER_BINDING) {
            WebGLFramebuffer fbo = gl.getParametero(pname);
            if (fbo == null) {
                params.put(0);
            } else {
                params.put(frameBuffers.getKey(fbo));
            }
            params.flip();
        } else
            throw new GdxRuntimeException("glGetInteger not supported by GWT WebGL backend");
    }
``
antzGames commented 1 year ago

Thank you for fixing this and enabling WebGL2.