* 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
{
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