This patch series tries to establish feature convensions. It is gzipped due to its size. The purpose of the series is so that when new extensions are supported, they can be implemented as a feature that follows the convensions. The benefit of being a feature is that the new extensions can be disabled to reduce code size. The benefit of following the convensions is that, it is less likely to break a build when the feature is disabled (usually less tested).
The convensions are established so that the effort of following the convensions is to the person who implements a feature, not to who uses a feature. This avoids having #if scattered everywhere, which is less pretty and prone to build failures. The first patch documents the convensions. As noted, a feature can be anything. This patch series tries to establish the convensions for * driver function initialization * vtxfmt dispatch initialization and installation * glapi dispatch initialization * states initialization The convensions are, more precisely, naming convensions. One thing to be noted is that, when a feature is disabled, the functions/macros will still be there, but usually become no-op. For example, when FEATURE_feedback is disabled, _mesa_update_hitflag is gone. Instead of #ifdef every occurance of _mesa_update_hitflag, the convensions state that _mesa_update_hitflag should be made no-op. Actually, it is made to be ASSERT_NO_FEATURE(). As the render mode is always GL_RENDER when the feature is disabled, the assersion says that _mesa_update_hitflag should never be reached. It helps catch bugs. Patch 0001 documents the convensions. Patch 0002~0016 convert existing features or add new ones to follow the convensions. Patch 0017~0020 makes the corresponding texformats to become no-op instead of eliminating them when the features are disabled. Since all the features the patch series touches are enabled, nothing is actually changed. This patch series focuses on core mesa. The biggest thing missing is a convension for drivers to enable extensions. I think some refactorings are needed before a convension can be established. -- Regards, olv
feature-convensions.tar.gz
Description: Binary data
------------------------------------------------------------------------------ Come build with us! The BlackBerry® Developer Conference in SF, CA is the only developer event you need to attend this year. Jumpstart your developing skills, take BlackBerry mobile applications to market and stay ahead of the curve. Join us from November 9-12, 2009. Register now! http://p.sf.net/sfu/devconf
_______________________________________________ Mesa3d-dev mailing list Mesa3d-dev@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/mesa3d-dev