OpenGL-Registry icon indicating copy to clipboard operation
OpenGL-Registry copied to clipboard

Incorrect signature for GetPixelMapxv from OES_fixed_point

Open castholm opened this issue 6 months ago • 2 comments

There appears to be a copy/paste error in OES_fixed_point, which states that GetPixelMapxv has a size parameter:

https://github.com/KhronosGroup/OpenGL-Registry/blob/e5778b0a610ccb29df46b2233daed4c1723c08e7/extensions/OES/OES_fixed_point.txt#L128-L129

(Note also that there's a missing comma between int size and T* values.)

But further down, it says that GetPixelMapxv is just the "x" version of GetPixelMap as defined in OpenGL 1.3:

https://github.com/KhronosGroup/OpenGL-Registry/blob/e5778b0a610ccb29df46b2233daed4c1723c08e7/extensions/OES/OES_fixed_point.txt#L352-L354

GetPixelMap does not have a size parameter:

void GetPixelMap{ui us f}v( enum map, T data );

This error has snuck into gl.xml:

        <command>
            <proto>void <name>glGetPixelMapxv</name></proto>
            <param group="PixelMap"><ptype>GLenum</ptype> <name>map</name></param>
            <param><ptype>GLint</ptype> <name>size</name></param>
            <param len="size"><ptype>GLfixed</ptype> *<name>values</name></param>
        </command>

The extension specification and gl.xml should be updated to remove the size parameter.

castholm avatar Aug 29 '25 14:08 castholm

Another problem: The extension specification says "Revise to include 'x' suffix on PixelStore, PixelTransfer, PixelMap, ConvolutionParameter" and lists void PixelMapx{enum map int size T* values) as a new procedure, but there's no PixelMap*, only PixelMap*v with a v suffix.

castholm avatar Sep 09 '25 22:09 castholm

If you want to propose a PR to tweak the XML and extension spec that's fine. This all sounds reasonable if very dated.

oddhack avatar Sep 17 '25 01:09 oddhack