13ac86ab0dfe0a6b493e3b33f987afb1a3391a52
[platform/core/graphics/tizenvg.git] / test / testCommon.h
1 #include <iostream>
2 #include <Elementary.h>
3 #include <thorvg.h>
4
5 using namespace std;
6
7 #define WIDTH 800
8 #define HEIGHT 800
9
10 /************************************************************************/
11 /* Common Infrastructure Code                                           */
12 /************************************************************************/
13
14 void tvgSwTest(uint32_t* buffer);
15 void drawSwView(void* data, Eo* obj);
16
17 void win_del(void *data, Evas_Object *o, void *ev)
18 {
19    elm_exit();
20 }
21
22 static Eo* createSwView()
23 {
24     static uint32_t buffer[WIDTH * HEIGHT];
25
26     Eo* win = elm_win_util_standard_add(NULL, "ThorVG Test");
27     evas_object_smart_callback_add(win, "delete,request", win_del, 0);
28
29     Eo* view = evas_object_image_filled_add(evas_object_evas_get(win));
30     evas_object_image_size_set(view, WIDTH, HEIGHT);
31     evas_object_image_data_set(view, buffer);
32     evas_object_image_pixels_get_callback_set(view, drawSwView, nullptr);
33     evas_object_image_pixels_dirty_set(view, EINA_TRUE);
34     evas_object_image_data_update_add(view, 0, 0, WIDTH, HEIGHT);
35     evas_object_size_hint_weight_set(view, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
36     evas_object_show(view);
37
38     elm_win_resize_object_add(win, view);
39     evas_object_geometry_set(win, 0, 0, WIDTH, HEIGHT);
40     evas_object_show(win);
41
42     tvgSwTest(buffer);
43
44     return view;
45 }
46
47 void initGLview(Evas_Object *obj);
48 void drawGLview(Evas_Object *obj);
49
50 static Eo* createGlView()
51 {
52    elm_config_accel_preference_set("gl");
53
54     Eo* win = elm_win_util_standard_add(NULL, "ThorVG Test");
55     evas_object_smart_callback_add(win, "delete,request", win_del, 0);
56
57     Eo* view = elm_glview_add(win);
58     evas_object_size_hint_weight_set(view, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
59     elm_glview_mode_set(view, ELM_GLVIEW_ALPHA);
60     elm_glview_resize_policy_set(view, ELM_GLVIEW_RESIZE_POLICY_RECREATE);
61     elm_glview_render_policy_set(view, ELM_GLVIEW_RENDER_POLICY_ON_DEMAND);
62     elm_glview_init_func_set(view, initGLview);
63     elm_glview_render_func_set(view, drawGLview);
64     evas_object_show(view);
65
66     elm_win_resize_object_add(win, view);
67     evas_object_geometry_set(win, 0, 0, WIDTH, HEIGHT);
68     evas_object_show(win);
69
70     return view;
71 }