forked from enlightenment/efl
parent
12f6d6d62e
commit
e03fb8578c
|
@ -116,7 +116,7 @@ fn_rect(double v, double val, int no)
|
||||||
init = 1;
|
init = 1;
|
||||||
for (i = 0; i < 8; i++)
|
for (i = 0; i < 8; i++)
|
||||||
{
|
{
|
||||||
coords[(i * 4) + 0] = ((1024 - 128) / 2) + ((rand() % 500) - 250) - 165;
|
coords[(i * 4) + 0] = ((1024 - 128) / 2) + ((rand() % 500) - 250);
|
||||||
coords[(i * 4) + 1] = ((768) / 2) + ((rand() % 200) - 0);
|
coords[(i * 4) + 1] = ((768) / 2) + ((rand() % 200) - 0);
|
||||||
coords[(i * 4) + 2] = 30 + (rand() % 300);
|
coords[(i * 4) + 2] = 30 + (rand() % 300);
|
||||||
coords[(i * 4) + 3] = 20 + (rand() % 180);
|
coords[(i * 4) + 3] = 20 + (rand() % 180);
|
||||||
|
@ -305,16 +305,214 @@ fn_poly(double v, double val, int no)
|
||||||
static void
|
static void
|
||||||
fn_text(double v, double val, int no)
|
fn_text(double v, double val, int no)
|
||||||
{
|
{
|
||||||
|
static Evas_Object o_fn_strings[8] =
|
||||||
|
{NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL};
|
||||||
|
static int colors[] =
|
||||||
|
{
|
||||||
|
255, 255, 255, 200,
|
||||||
|
0, 0, 0, 160,
|
||||||
|
200, 30, 30, 200,
|
||||||
|
40, 160, 240, 220,
|
||||||
|
30, 50, 200, 255,
|
||||||
|
50, 220, 60, 160,
|
||||||
|
220, 110, 30, 240,
|
||||||
|
200, 60, 220, 180
|
||||||
|
};
|
||||||
|
static char *strings[] =
|
||||||
|
{
|
||||||
|
"Anti Aliased Text",
|
||||||
|
"In any color you want",
|
||||||
|
"With alpha blending too",
|
||||||
|
"What more could you ask for?",
|
||||||
|
"Evas",
|
||||||
|
"Rancid cheese",
|
||||||
|
"Enlightenment",
|
||||||
|
"Linux"
|
||||||
|
};
|
||||||
|
static char *fonts[] =
|
||||||
|
{
|
||||||
|
"notepad",
|
||||||
|
"grunge",
|
||||||
|
"morpheus",
|
||||||
|
"cinema",
|
||||||
|
"andover",
|
||||||
|
"grunge",
|
||||||
|
"morpheus",
|
||||||
|
"notepad"
|
||||||
|
};
|
||||||
|
static int sizes[] =
|
||||||
|
{
|
||||||
|
16,
|
||||||
|
28,
|
||||||
|
34,
|
||||||
|
24,
|
||||||
|
48,
|
||||||
|
8,
|
||||||
|
20,
|
||||||
|
34
|
||||||
|
};
|
||||||
|
static double coords[] =
|
||||||
|
{
|
||||||
|
200, 300,
|
||||||
|
350, 340,
|
||||||
|
320, 500,
|
||||||
|
120, 400,
|
||||||
|
500, 450,
|
||||||
|
600, 600,
|
||||||
|
300, 550,
|
||||||
|
330, 447
|
||||||
|
};
|
||||||
|
static double last_val = 0;
|
||||||
|
int i;
|
||||||
|
|
||||||
|
if (no)
|
||||||
|
{
|
||||||
|
if (last_val != val)
|
||||||
|
{
|
||||||
|
for (i = 0; i < 8; i++)
|
||||||
|
{
|
||||||
|
if (o_fn_strings[i])
|
||||||
|
evas_del_object(evas_view, o_fn_strings[i]);
|
||||||
|
o_fn_strings[i] = NULL;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
for (i = 0; i < 8; i++)
|
||||||
|
{
|
||||||
|
double alpha;
|
||||||
|
|
||||||
|
if (v < 1)
|
||||||
|
alpha = v;
|
||||||
|
else if (v < 2)
|
||||||
|
alpha = 1;
|
||||||
|
else alpha = (3 - v);
|
||||||
|
if (!o_fn_strings[i])
|
||||||
|
{
|
||||||
|
o_fn_strings[i] = evas_add_text(evas_view, fonts[i], sizes[i], strings[i]);
|
||||||
|
evas_set_layer(evas_view, o_fn_strings[i], 99);
|
||||||
|
}
|
||||||
|
evas_set_color(evas_view, o_fn_strings[i],
|
||||||
|
colors[(i * 4) + 0],
|
||||||
|
colors[(i * 4) + 1],
|
||||||
|
colors[(i * 4) + 2],
|
||||||
|
(double)colors[(i * 4) + 3] * alpha);
|
||||||
|
evas_move(evas_view, o_fn_strings[i],
|
||||||
|
coords[(i * 2) + 0] + (50 * cos((val * 2.7) + 3.4 + i)),
|
||||||
|
coords[(i * 2) + 1] + (20 * sin((val * 3.6) + 1.2 + i)));
|
||||||
|
evas_show(evas_view, o_fn_strings[i]);
|
||||||
|
}
|
||||||
|
last_val = val;
|
||||||
}
|
}
|
||||||
|
|
||||||
static void
|
static void
|
||||||
fn_grad(double v, double val, int no)
|
fn_grad(double v, double val, int no)
|
||||||
{
|
{
|
||||||
|
static Evas_Object o_fn_grads[8] =
|
||||||
|
{NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL};
|
||||||
|
static double last_val = 0;
|
||||||
|
static double coords[8 * 4];
|
||||||
|
static int colors[8 * 4 * 4];
|
||||||
|
static int init = 0;
|
||||||
|
int i;
|
||||||
|
|
||||||
|
if (no)
|
||||||
|
{
|
||||||
|
if (last_val != val)
|
||||||
|
{
|
||||||
|
for (i = 0; i < 8; i++)
|
||||||
|
{
|
||||||
|
if (o_fn_grads[i])
|
||||||
|
evas_del_object(evas_view, o_fn_grads[i]);
|
||||||
|
o_fn_grads[i] = NULL;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
if (!init)
|
||||||
|
{
|
||||||
|
init = 1;
|
||||||
|
|
||||||
|
for (i = 0; i < 8; i++)
|
||||||
|
{
|
||||||
|
int j;
|
||||||
|
|
||||||
|
coords[(i * 4) + 0] = ((1024 - 128) / 2) + ((rand() % 500) - 250);
|
||||||
|
coords[(i * 4) + 1] = ((768) / 2) + ((rand() % 200) - 0);
|
||||||
|
coords[(i * 4) + 2] = 30 + (rand() % 300);
|
||||||
|
coords[(i * 4) + 3] = 20 + (rand() % 180);
|
||||||
|
for (j = 0; j < 4; j++)
|
||||||
|
{
|
||||||
|
colors[(i * 4 * 4) + (j * 4) + 0] = rand() & 0xff;
|
||||||
|
colors[(i * 4 * 4) + (j * 4) + 1] = rand() & 0xff;
|
||||||
|
colors[(i * 4 * 4) + (j * 4) + 2] = rand() & 0xff;
|
||||||
|
colors[(i * 4 * 4) + (j * 4) + 3] = ((rand() & 0xff) * (3 - j)) / 3;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
for (i = 0; i < 8; i++)
|
||||||
|
{
|
||||||
|
double alpha;
|
||||||
|
|
||||||
|
if (v < 1)
|
||||||
|
alpha = v;
|
||||||
|
else if (v < 2)
|
||||||
|
alpha = 1;
|
||||||
|
else alpha = (3 - v);
|
||||||
|
if (!o_fn_grads[i])
|
||||||
|
{
|
||||||
|
o_fn_grads[i] = evas_add_gradient_box(evas_view);
|
||||||
|
evas_set_layer(evas_view, o_fn_grads[i], 99);
|
||||||
|
}
|
||||||
|
{
|
||||||
|
Evas_Gradient grad;
|
||||||
|
int j;
|
||||||
|
|
||||||
|
grad = evas_gradient_new();
|
||||||
|
for (j = 0; j < 4; j++)
|
||||||
|
evas_gradient_add_color(grad,
|
||||||
|
colors[(i * 4 * 4) + (j * 4) + 0],
|
||||||
|
colors[(i * 4 * 4) + (j * 4) + 1],
|
||||||
|
colors[(i * 4 * 4) + (j * 4) + 2],
|
||||||
|
(double)colors[(i * 4 * 4) + (j * 4) + 3] * alpha,
|
||||||
|
8);
|
||||||
|
evas_set_gradient(evas_view, o_fn_grads[i], grad);
|
||||||
|
evas_gradient_free(grad);
|
||||||
|
}
|
||||||
|
evas_move(evas_view, o_fn_grads[i],
|
||||||
|
coords[(i * 4) + 0] + (50 * cos((val * 2.7) + 3.4 + i)),
|
||||||
|
coords[(i * 4) + 1] + (20 * sin((val * 3.6) + 1.2 + i)));
|
||||||
|
evas_resize(evas_view, o_fn_grads[i],
|
||||||
|
coords[(i * 4) + 2], coords[(i * 4) + 3]);
|
||||||
|
evas_set_angle(evas_view, o_fn_grads[i], (val + (double)i) * 60);
|
||||||
|
evas_show(evas_view, o_fn_grads[i]);
|
||||||
|
}
|
||||||
|
last_val = val;
|
||||||
}
|
}
|
||||||
|
|
||||||
static void
|
static void
|
||||||
fn_image(double v, double val, int no)
|
fn_image(double v, double val, int no)
|
||||||
{
|
{
|
||||||
|
static Evas_Object o_fn_images[8] =
|
||||||
|
{NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL};
|
||||||
|
static double last_val = 0;
|
||||||
|
static int init = 0;
|
||||||
|
int i;
|
||||||
|
|
||||||
|
if (no)
|
||||||
|
{
|
||||||
|
if (last_val != val)
|
||||||
|
{
|
||||||
|
for (i = 0; i < 8; i++)
|
||||||
|
{
|
||||||
|
if (o_fn_images[i])
|
||||||
|
evas_del_object(evas_view, o_fn_images[i]);
|
||||||
|
o_fn_images[i] = NULL;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
last_val = val;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@ -387,7 +585,12 @@ static ImageBlock images[] =
|
||||||
{ 34.0, 2.0, 4.0, 6.0, 150, 400, IMGDIR"evas_test_wonder_6.png", NULL},
|
{ 34.0, 2.0, 4.0, 6.0, 150, 400, IMGDIR"evas_test_wonder_6.png", NULL},
|
||||||
{ 38.0, 2.0, 4.0, 6.0, 600, 25, IMGDIR"evas_test_wonder_7.png", NULL},
|
{ 38.0, 2.0, 4.0, 6.0, 600, 25, IMGDIR"evas_test_wonder_7.png", NULL},
|
||||||
{ 60.0, 2.0, 8.0, 12.0, 400, 100, IMGDIR"evas_test_cheese.png", NULL},
|
{ 60.0, 2.0, 8.0, 12.0, 400, 100, IMGDIR"evas_test_cheese.png", NULL},
|
||||||
{ 100.0, 2.0, 4.0, 6.0, 300, 50, IMGDIR"evas_test_canvas.png", NULL}
|
{ 100.0, 2.0, 4.0, 6.0, 300, 50, IMGDIR"evas_test_canvas.png", NULL},
|
||||||
|
{ 104.0, 2.0, 4.0, 6.0, 500, 420, IMGDIR"evas_test_anti_alias.png", NULL},
|
||||||
|
{ 108.0, 2.0, 4.0, 6.0, 200, 220, IMGDIR"evas_test_alpha1.png", NULL},
|
||||||
|
{ 109.0, 2.0, 4.0, 6.0, 200, 220, IMGDIR"evas_test_alpha2.png", NULL},
|
||||||
|
{ 112.0, 2.0, 4.0, 6.0, 300, 100, IMGDIR"evas_test_mmx.png", NULL},
|
||||||
|
{ 116.0, 2.0, 4.0, 6.0, 400, 200, IMGDIR"evas_test_hardware.png", NULL}
|
||||||
};
|
};
|
||||||
|
|
||||||
/* functions */
|
/* functions */
|
||||||
|
@ -407,12 +610,14 @@ obscure(Evas e)
|
||||||
Window win, root, parent, *children, www, prev_win;
|
Window win, root, parent, *children, www, prev_win;
|
||||||
int x, y, w, h, wx, wy, ww, wh;
|
int x, y, w, h, wx, wy, ww, wh;
|
||||||
unsigned int i, j, num, dummy;
|
unsigned int i, j, num, dummy;
|
||||||
|
|
||||||
|
return;
|
||||||
evas_clear_obscured_rects(e);
|
evas_clear_obscured_rects(e);
|
||||||
win = evas_get_window(e);
|
win = evas_get_window(e);
|
||||||
disp = evas_get_display(e);
|
disp = evas_get_display(e);
|
||||||
evas_get_drawable_size(e, &ww, &wh);
|
evas_get_drawable_size(e, &ww, &wh);
|
||||||
children = NULL;
|
children = NULL;
|
||||||
|
XGrabServer(disp);
|
||||||
XQueryTree(disp, win, &root, &parent, &children, &num);
|
XQueryTree(disp, win, &root, &parent, &children, &num);
|
||||||
XTranslateCoordinates(disp, win, root, 0, 0, &wx, &wy, &www);
|
XTranslateCoordinates(disp, win, root, 0, 0, &wx, &wy, &www);
|
||||||
do
|
do
|
||||||
|
@ -475,6 +680,8 @@ obscure(Evas e)
|
||||||
XQueryTree(disp, win, &root, &parent, &children, &num);
|
XQueryTree(disp, win, &root, &parent, &children, &num);
|
||||||
}
|
}
|
||||||
while (1);
|
while (1);
|
||||||
|
XUngrabServer(disp);
|
||||||
|
XSync(disp, False);
|
||||||
}
|
}
|
||||||
|
|
||||||
void
|
void
|
||||||
|
@ -644,9 +851,11 @@ setup_view(Evas_Render_Method method)
|
||||||
e = evas_new_all(display, win_base, 128, 0, 1024 - 128, 768,
|
e = evas_new_all(display, win_base, 128, 0, 1024 - 128, 768,
|
||||||
method, 216, 1 * 1024 * 1024, 8 * 1024 * 1024,
|
method, 216, 1 * 1024 * 1024, 8 * 1024 * 1024,
|
||||||
FNTDIR);
|
FNTDIR);
|
||||||
|
/*
|
||||||
if (method == RENDER_METHOD_BASIC_HARDWARE)
|
if (method == RENDER_METHOD_BASIC_HARDWARE)
|
||||||
evas_set_scale_smoothness(e, 0);
|
evas_set_scale_smoothness(e, 0);
|
||||||
else
|
else
|
||||||
|
*/
|
||||||
evas_set_scale_smoothness(e, 1);
|
evas_set_scale_smoothness(e, 1);
|
||||||
win_view = evas_get_window(e);
|
win_view = evas_get_window(e);
|
||||||
XSelectInput(display, win_view, ButtonPressMask |
|
XSelectInput(display, win_view, ButtonPressMask |
|
||||||
|
@ -1152,6 +1361,7 @@ handle_events(void)
|
||||||
evas_update_rect(e, ev.xexpose.x, ev.xexpose.y, ev.xexpose.width, ev.xexpose.height);
|
evas_update_rect(e, ev.xexpose.x, ev.xexpose.y, ev.xexpose.width, ev.xexpose.height);
|
||||||
break;
|
break;
|
||||||
case VisibilityNotify:
|
case VisibilityNotify:
|
||||||
|
/*
|
||||||
if (ev.xvisibility.state == VisibilityUnobscured)
|
if (ev.xvisibility.state == VisibilityUnobscured)
|
||||||
{
|
{
|
||||||
evas_clear_obscured_rects(e);
|
evas_clear_obscured_rects(e);
|
||||||
|
@ -1168,6 +1378,7 @@ handle_events(void)
|
||||||
{
|
{
|
||||||
obscure(e);
|
obscure(e);
|
||||||
}
|
}
|
||||||
|
*/
|
||||||
break;
|
break;
|
||||||
case EnterNotify:
|
case EnterNotify:
|
||||||
if (e == evas_view)
|
if (e == evas_view)
|
||||||
|
|
Binary file not shown.
After Width: | Height: | Size: 46 KiB |
Binary file not shown.
After Width: | Height: | Size: 44 KiB |
Binary file not shown.
After Width: | Height: | Size: 38 KiB |
Binary file not shown.
After Width: | Height: | Size: 4.7 KiB |
Loading…
Reference in New Issue