mesa/main: Add comments to mfeatures.h.
authorChia-I Wu <olvaffe@gmail.com>
Mon, 7 Sep 2009 09:51:33 +0000 (17:51 +0800)
committerBrian Paul <brianp@vmware.com>
Fri, 25 Sep 2009 03:47:45 +0000 (21:47 -0600)
The comments document the conventions that a feature may follow.

src/mesa/main/mfeatures.h

index e23cdb1f426e67bad94ce136b0b875c0a7dad91d..6318934c6bf203b5e646fa8338aef9f919be6220 100644 (file)
 #define _HAVE_FULL_GL 1
 #endif
 
+/* assert that a feature is disabled and should never be used */
+#define ASSERT_NO_FEATURE() ASSERT(0)
+
+/**
+ * A feature can be anything.  But most of them share certain characteristics.
+ *
+ * When a feature defines driver entries, they can be initialized by
+ *   _MESA_INIT_<FEATURE>_FUNCTIONS
+ *
+ * When a feature defines vtxfmt entries, they can be initialized and
+ * installed by
+ *   _MESA_INIT_<FEATURE>_VTXFMT
+ *   _mesa_install_<feature>_vtxfmt
+ *
+ * When a feature defines dispatch entries, they are initialized by
+ *   _mesa_init_<feature>_dispatch
+ *
+ * When a feature has states, they are initialized and freed by
+ *   _mesa_init_<feature>
+ *   _mesa_free_<feature>_data
+ *
+ * Except for states, the others compile to no-op when a feature is disabled.
+ *
+ * The GLAPIENTRYs and helper functions defined by a feature should also
+ * compile to no-op when it is disabled.  But to save typings and to catch
+ * bugs, some of them may be unavailable, or compile to ASSERT_NO_FEATURE()
+ * when the feature is disabled.
+ *
+ * A feature following the conventions may be used without knowing if it is
+ * enabled or not.
+ */
+
 #define FEATURE_accum  _HAVE_FULL_GL
 #define FEATURE_attrib_stack  _HAVE_FULL_GL
 #define FEATURE_colortable  _HAVE_FULL_GL