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

Attachment: 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

Reply via email to