meson: build gallium omx state tracker
[mesa.git] / src / gallium / auxiliary / postprocess / filters.h
index 2454088707df28df5144d7bc25063b8b748255da..321f333a32674e24f3b0f77fc8825ce5876b8e1c 100644 (file)
@@ -18,7 +18,7 @@
  * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
  * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
  * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT.
- * IN NO EVENT SHALL THE AUTHORS BE LIABLE FOR
+ * IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR
  * ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
  * TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
  * SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
 
 #include "postprocess/postprocess.h"
 
-typedef void (*pp_init_func) (struct pp_queue_t *, unsigned int,
+#define PP_FILTERS 6            /* Increment this if you add filters */
+#define PP_MAX_PASSES 6
+
+
+typedef bool (*pp_init_func) (struct pp_queue_t *, unsigned int,
                               unsigned int);
+typedef void (*pp_free_func) (struct pp_queue_t *, unsigned int);
 
 struct pp_filter_t
 {
@@ -41,18 +46,19 @@ struct pp_filter_t
    unsigned int verts;          /* How many are vertex shaders */
    pp_init_func init;           /* Init function */
    pp_func main;                /* Run function */
+   pp_free_func free;           /* Free function */
 };
 
 /*     Order matters. Put new filters in a suitable place. */
 
 static const struct pp_filter_t pp_filters[PP_FILTERS] = {
-/*    name                     inner   shaders verts   init                    run */
-   { "pp_noblue",              0,      2,      1,      pp_noblue_init,         pp_nocolor },
-   { "pp_nogreen",             0,      2,      1,      pp_nogreen_init,        pp_nocolor },
-   { "pp_nored",               0,      2,      1,      pp_nored_init,          pp_nocolor },
-   { "pp_celshade",            0,      2,      1,      pp_celshade_init,       pp_nocolor },
-   { "pp_jimenezmlaa",         2,      5,      2,      pp_jimenezmlaa_init,    pp_jimenezmlaa },
-   { "pp_jimenezmlaa_color",   2,      5,      2,      pp_jimenezmlaa_init_color, pp_jimenezmlaa_color },
+/*    name                     inner   shaders verts   init                    run                       free   */
+   { "pp_noblue",              0,      2,      1,      pp_noblue_init,         pp_nocolor,               pp_nocolor_free },
+   { "pp_nogreen",             0,      2,      1,      pp_nogreen_init,        pp_nocolor,               pp_nocolor_free },
+   { "pp_nored",               0,      2,      1,      pp_nored_init,          pp_nocolor,               pp_nocolor_free },
+   { "pp_celshade",            0,      2,      1,      pp_celshade_init,       pp_nocolor,               pp_celshade_free },
+   { "pp_jimenezmlaa",         2,      5,      2,      pp_jimenezmlaa_init,    pp_jimenezmlaa,           pp_jimenezmlaa_free },
+   { "pp_jimenezmlaa_color",   2,      5,      2,      pp_jimenezmlaa_init_color, pp_jimenezmlaa_color,  pp_jimenezmlaa_free },
 };
 
 #endif