[Mesa-dev] COMPSIZE function in OpenGL XML registry

Shervin Sharifi shervin0 at gmail.com
Thu Jun 11 15:54:57 PDT 2015


Thank you Ian, Jose and Matt.
I'll take a look at the pointers you provided. Probably would come back
with some more questions.

Thanks,
    Shervin



On Wed, Jun 10, 2015 at 3:55 PM, Ian Romanick <idr at freedesktop.org> wrote:

> On 06/10/2015 03:05 PM, Shervin Sharifi wrote:
> > Thanks Ian.
> > If I want to implement the actual CompSize function, how should I figure
> > out the details?
>
> The way I did it for the GLX protocol code in Mesa is to make a
> glFoo_compsize function for each GL function that has a variable sized
> array as input.  Often these functions can be shared (e.g., the function
> for glTexParameteriv and glTexParameterfv are the same).
>
> You have to read the docs to figure out that, for example, passing
> GL_TEXTURE_BASE_LEVEL to glTexParameteriv means there's 1 value but
> passing GL_TEXTURE_BORDER_COLOR means there are 4 values.  I implemented
> that in Mesa (many years before the current Khronos XML existed) by
> having additional decorations in my XML.  Each enum specifies which
> functions can use it and how many values it carries.
>
> The Khronos XML specifies which enums can be passed to which functions
> (via <group>), but it doesn't look like it has any information about how
> much data goes along with it. :(
>
> > Thanks,
> >    Shervin
> >
> > On Wed, Jun 10, 2015 at 2:56 PM, Ian Romanick <idr at freedesktop.org
> > <mailto:idr at freedesktop.org>> wrote:
> >
> >     On 06/10/2015 11:25 AM, Shervin Sharifi wrote:
> >     > Hi,
> >     >
> >     >  This may not be the right forum to ask this, but I didn't know of
> a
> >     > better forum, so I thought I can ask here.
> >     >
> >     >  I'm new to OpenGL. I am looking at XML registry for OpenGL and
> there
> >     > are some parameters with attributes containing a function COMPSIZE
> (I've
> >     > pasted an example below).
> >     >  I tried to find information on what the COMPSIZE function is,
> where/how
> >     > it is used, etc, but couldn't find documentation or credible
> information
> >     > on the Internet.
> >     >  Any information or pointer to that would be really helpful.
> >
> >     It's a signal to code generation scripts that the size of the data
> >     referenced by the "pointer" parameter depends on the values of "type"
> >     and "stride".  For example, GLX protocol code uses this to know how
> much
> >     image data to send to the server for glTexImage2D.
> >
> >     >  Thanks,
> >     >     Shervin
> >     >
> >     >
> >     >
> >     > This example is from gl.xml in the OpenGL registry:
> >     >
> >     >         <command>
> >     >             <proto>void <name>glBinormalPointerEXT</name></proto>
> >     >             <param
> group="BinormalPointerTypeEXT"><ptype>GLenum</ptype>
> >     > <name>type</name></param>
> >     >             <param><ptype>GLsizei</ptype>
> <name>stride</name></param>
> >     >             <param len="COMPSIZE(type,stride)">const void
> >     > *<name>pointer</name></param>
> >     >         </command>
> >     >
> >     >
> >     > _______________________________________________
> >     > mesa-dev mailing list
> >     > mesa-dev at lists.freedesktop.org <mailto:
> mesa-dev at lists.freedesktop.org>
> >     > http://lists.freedesktop.org/mailman/listinfo/mesa-dev
> >
> >
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.freedesktop.org/archives/mesa-dev/attachments/20150611/b66b00c3/attachment.html>


More information about the mesa-dev mailing list