-----BEGIN PGP SIGNED MESSAGE----- Hash: SHA1 Brian Paul wrote: > Ian Romanick wrote: >> >> In _mesa_GetTexLevelParameteriv there are checks in all the >> GL_TEXTURE_*_BITS queries that the base format has the specified component: >> >> case GL_TEXTURE_RED_SIZE: >> case GL_TEXTURE_GREEN_SIZE: >> case GL_TEXTURE_BLUE_SIZE: >> if (img->_BaseFormat == GL_RGB || img->_BaseFormat == GL_RGBA) >> *params = _mesa_get_format_bits(texFormat, pname); >> else >> *params = 0; >> break; >> case GL_TEXTURE_ALPHA_SIZE: >> if (img->_BaseFormat == GL_ALPHA || >> img->_BaseFormat == GL_LUMINANCE_ALPHA || >> img->_BaseFormat == GL_RGBA) >> *params = _mesa_get_format_bits(texFormat, pname); >> else >> *params = 0; >> break; >> >> Since the values are stored in a big table in formats.c, are these >> checks really necessary? If the base format is GL_INTENSITY, the >> redBits entry in the table is already 0. >> >> Am I missing something? > > Remember that texFormat is the _actual_ format used to store the > texture, not the user-requested format. We need to return values > pertinent to the requested format, not the actual format. > > For example, suppose the user requests a GL_LUMINANCE internal format > but the driver actually chooses an RGBA888 format because a true > luminance format is not available. If the user queries > GL_TEXTURE_RED_SIZE we're supposed to return 0, not 8. > > That's why we do the extra checks.
Oh, that's right. That has always been the most useless part of the GL query API. It tells the app what the app told it instead of telling the app what it actually did. Useless. Thanks for the reminder. I guess I was missing something. >> I'm reviving the texture_rg branch (actually a new branch), and I'd like >> to clean this up, if possible, before adding more if-checks for GL_RED >> and GL_RG textures when querying GL_TEXTURE_RED_SIZE and >> GL_TEXTURE_BLUE_SIZE. > > If you find a cleaner way to implement this, go for it. Given above, there probably isn't. Or at least, there probably isn't that's worth the effort of creating. :) -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.4.10 (GNU/Linux) Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org/ iEYEARECAAYFAksEklQACgkQX1gOwKyEAw9CgACbBCJMgpsBCeSDzWZwiKTE0JD3 trkAoIS+oQtNDupIfRJKElGXHX8CjggI =nySR -----END PGP SIGNATURE----- ------------------------------------------------------------------------------ Let Crystal Reports handle the reporting - Free Crystal Reports 2008 30-Day trial. Simplify your report design, integration and deployment - and focus on what you do best, core application coding. Discover what's new with Crystal Reports now. http://p.sf.net/sfu/bobj-july _______________________________________________ Mesa3d-dev mailing list [email protected] https://lists.sourceforge.net/lists/listinfo/mesa3d-dev
