}
#endif
_evas_preload_thread_init();
+ evas_filter_init();
evas_thread_init();
evas_object_image_load_opts_cow = NULL;
evas_object_image_state_cow = NULL;
+ evas_filter_shutdown();
+ eina_cow_del(evas_object_filter_cow);
+ eina_cow_del(evas_object_mask_cow);
+ evas_object_filter_cow = NULL;
+ evas_object_mask_cow = NULL;
+
evas_thread_shutdown();
_evas_preload_thread_shutdown();
evas_async_events_shutdown();
*/
#include "evas_filter.h"
-#include "evas_private.h"
-#include "evas_filter_private.h"
#ifdef EVAS_CSERVE2
# include "evas_cs2_private.h"
#endif
+#include "evas_filter_private.h"
+
#define _assert(a) if (!(a)) CRI("Failed on %s", #a);
static void _buffer_free(Evas_Filter_Buffer *fb);
ctx->post_run.cb(ctx, ctx->post_run.data, ret);
return ret;
}
+
+
+/* Logging */
+
+static int init_cnt = 0;
+int _evas_filter_log_dom = 0;
+
+void
+evas_filter_init()
+{
+ if ((init_cnt++) > 0) return;
+ _evas_filter_log_dom = eina_log_domain_register("evas_filter", EVAS_FILTER_LOG_COLOR);
+}
+
+void
+evas_filter_shutdown()
+{
+ if ((--init_cnt) > 0) return;
+ eina_log_domain_unregister(_evas_filter_log_dom);
+ _evas_filter_log_dom = 0;
+}
-#include "evas_filter.h"
-#include "evas_filter_private.h"
-
#include <math.h>
#include <time.h>
+#include "evas_filter.h"
+#include "evas_filter_private.h"
+
static int
_box_blur_auto_radius(int *radii, int r)
{
/* Simple bump map algorithms for the software engine */
-#include "evas_filter_private.h"
-#include "evas_blend_private.h"
-
#include <math.h>
+#include "evas_filter_private.h"
+#include "evas_blend_private.h"
#ifdef CLAMP
# undef CLAMP
-#include "evas_filter_private.h"
#include <stdarg.h>
#include <lua.h>
#include <lualib.h>
#include <lauxlib.h>
+#include "evas_filter_private.h"
+
#if LUA_VERSION_NUM == 502
# define LUA52 1
#endif
#include "evas_filter.h"
#include "evas_private.h"
+/* logging variables */
+extern int _evas_filter_log_dom;
+#define EVAS_FILTER_LOG_COLOR EINA_COLOR_LIGHTBLUE
+
+#ifdef ERR
+# undef ERR
+#endif
+#define ERR(...) EINA_LOG_DOM_ERR(_evas_filter_log_dom, __VA_ARGS__)
+#ifdef INF
+# undef INF
+#endif
+#define INF(...) EINA_LOG_DOM_INFO(_evas_filter_log_dom, __VA_ARGS__)
+#ifdef WRN
+# undef WRN
+#endif
+#define WRN(...) EINA_LOG_DOM_WARN(_evas_filter_log_dom, __VA_ARGS__)
+#ifdef CRI
+# undef CRI
+#endif
+#define CRI(...) EINA_LOG_DOM_CRIT(_evas_filter_log_dom, __VA_ARGS__)
+#ifdef DBG
+# undef DBG
+#endif
+#define DBG(...) EINA_LOG_DOM_DBG(_evas_filter_log_dom, __VA_ARGS__)
+
// This is a potential optimization.
#define DIV_USING_BITSHIFT 1
void _evas_canvas3d_eet_descriptor_shutdown(void);
void _evas_canvas3d_eet_file_free(void);
+/* Filters */
+void evas_filter_init(void);
+void evas_filter_shutdown(void);
+
/* Temporary save/load functions */
void evas_common_load_model_from_file(Evas_Canvas3D_Mesh *model, const char *file);
void evas_common_load_model_from_eina_file(Evas_Canvas3D_Mesh *model, const Eina_File *file);