forked from enlightenment/efl
Compare commits
7 Commits
d3c1301efa
...
9387d94b30
Author | SHA1 | Date |
---|---|---|
Vincent Torri | 9387d94b30 | |
Carsten Haitzler | b17bd6574f | |
Carsten Haitzler | 9f3d7b9cff | |
Carsten Haitzler | 510bd04c67 | |
Carsten Haitzler | 58b6accc16 | |
Carsten Haitzler | 07ac697db8 | |
Vincent Torri | 4cea33945d |
|
@ -32,7 +32,8 @@ For more documentation please see:
|
|||
|
||||
EFL is primarily developed on Linux (GNU/Linux) and should work on
|
||||
most distributions as long as dependencies are provided. It has been
|
||||
compiled and run also on Windows (using MSYS2 + mingw-w64)),
|
||||
compiled and run also on Windows (using MSYS2 + mingw-w64) - please see
|
||||
[windows docs](https://www.enlightenment.org/docs/distros/windows-start.md),
|
||||
Mac OS X, FreeBSD and NetBSD.
|
||||
|
||||
## Components
|
||||
|
|
|
@ -1065,6 +1065,160 @@ group { name: "e/fileman/default/filedate";
|
|||
}
|
||||
}
|
||||
|
||||
group { name: "e/fileman/default/check";
|
||||
parts {
|
||||
part { name: "base";
|
||||
clip_to: "selected";
|
||||
scale: 1;
|
||||
description { state: "default" 0.0;
|
||||
image.normal: "i-check";
|
||||
rel1.offset: 3 3;
|
||||
rel2.offset: -4 -4;
|
||||
min: 15 15;
|
||||
max: 15 15;
|
||||
visible: 0;
|
||||
offscale;
|
||||
}
|
||||
description { state: "on" 0.0;
|
||||
inherit: "default" 0.0;
|
||||
visible: 1;
|
||||
}
|
||||
}
|
||||
part { name: "selected"; type: RECT;
|
||||
description { state: "default" 0.0;
|
||||
rel.to: "base";
|
||||
color_class: "/fg/normal/fileman/item/check/check";
|
||||
}
|
||||
description { state: "selected" 0.0;
|
||||
inherit: "default" 0.0;
|
||||
color_class: "/fg/selected/fileman/item/check/check";
|
||||
}
|
||||
}
|
||||
}
|
||||
programs {
|
||||
program { signal: "e,state,selected"; source: "e";
|
||||
action: STATE_SET "selected" 0.0;
|
||||
target: "selected";
|
||||
}
|
||||
program { signal: "e,state,unselected"; source: "e";
|
||||
action: STATE_SET "default" 0.0;
|
||||
target: "selected";
|
||||
}
|
||||
program { signal: "e,state,on"; source: "e";
|
||||
action: STATE_SET "on" 0.0;
|
||||
target: "base";
|
||||
}
|
||||
program { signal: "e,state,off"; source: "e";
|
||||
action: STATE_SET "default" 0.0;
|
||||
target: "base";
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
group { name: "e/fileman/default/circle";
|
||||
script {
|
||||
hex(str[], len) {
|
||||
new i, val = 0;
|
||||
|
||||
for (i = 0; i < len; i++) {
|
||||
val <<= 4;
|
||||
if ((str[i] >= '0') && (str[i] <= '9')) {
|
||||
val += str[i] - '0';
|
||||
} else if ((str[i] >= 'a') && (str[i] <= 'f')) {
|
||||
val += 10 + str[i] - 'a';
|
||||
} else if ((str[i] >= 'A') && (str[i] <= 'F')) {
|
||||
val += 10 + str[i] - 'A';
|
||||
}
|
||||
}
|
||||
return val;
|
||||
}
|
||||
public message(Msg_Type:type, id, ...) {
|
||||
if ((type == MSG_STRING) && (id == 1)) {
|
||||
new cc[256];
|
||||
|
||||
getsarg(2, cc, 255);
|
||||
custom_state(PART:"base", "default", 0.0);
|
||||
if (!strncmp(cc, "cc:", 3)) {
|
||||
strcpy(cc, cc[3]);
|
||||
set_state_val(PART:"base", STATE_COLOR, 255, 255, 255, 255);
|
||||
set_state_val(PART:"base", STATE_COLOR_CLASS, cc);
|
||||
} else if (!strncmp(cc, "#", 1)) {
|
||||
new r = 255, g = 255, b = 255, a = 255;
|
||||
|
||||
strcpy(cc, cc[1]);
|
||||
if (strlen(cc) == 3) { // #35a
|
||||
r = hex(cc[0], 1);
|
||||
g = hex(cc[1], 1);
|
||||
b = hex(cc[2], 1);
|
||||
} else if (strlen(cc) == 4) { // #35af
|
||||
r = hex(cc[0], 1);
|
||||
g = hex(cc[1], 1);
|
||||
b = hex(cc[2], 1);
|
||||
a = hex(cc[3], 1);
|
||||
} else if (strlen(cc) == 6) { // #3355aa
|
||||
r = hex(cc[0], 2);
|
||||
g = hex(cc[2], 2);
|
||||
b = hex(cc[4], 2);
|
||||
} else if (strlen(cc) == 8) { // #3355aaff
|
||||
r = hex(cc[0], 2);
|
||||
g = hex(cc[2], 2);
|
||||
b = hex(cc[4], 2);
|
||||
a = hex(cc[6], 2);
|
||||
}
|
||||
set_state_val(PART:"base", STATE_COLOR, r, g, b, a);
|
||||
set_state_val(PART:"base", STATE_COLOR_CLASS, "");
|
||||
}
|
||||
set_state(PART:"base", "custom", 0.0);
|
||||
}
|
||||
}
|
||||
}
|
||||
parts {
|
||||
set { name: "file-circle-outline";
|
||||
image { image: "speaker-clip-160.png" COMP; size: 81 81 99999 99999; }
|
||||
image { image: "speaker-clip-080.png" COMP; size: 41 41 80 80 99999; }
|
||||
image { image: "speaker-clip-040.png" COMP; size: 0 0 40 40; }
|
||||
}
|
||||
part { name: "base"; mouse_events: 0;
|
||||
scale: 1;
|
||||
description { state: "default" 0.0;
|
||||
min: 15 15;
|
||||
max: 15 15;
|
||||
rel1.offset: 3 3;
|
||||
rel2.offset: -4 -4;
|
||||
image.normal: "i-radio";
|
||||
offscale;
|
||||
fixed: 1 1;
|
||||
}
|
||||
}
|
||||
part { name: "circle"; mouse_events: 0;
|
||||
scale: 1;
|
||||
description { state: "default" 0.0;
|
||||
min: 17 17;
|
||||
max: 17 17;
|
||||
rel.to: "base";
|
||||
image.normal: "file-circle-outline";
|
||||
fixed: 1 1;
|
||||
color_class: "/fg/selected/list/item";
|
||||
visible: 0;
|
||||
}
|
||||
description { state: "selected" 0.0;
|
||||
inherit: "default" 0.0;
|
||||
visible: 1;
|
||||
}
|
||||
}
|
||||
}
|
||||
programs {
|
||||
program { signal: "e,state,selected"; source: "e";
|
||||
action: STATE_SET "selected" 0.0;
|
||||
target: "circle";
|
||||
}
|
||||
program { signal: "e,state,unselected"; source: "e";
|
||||
action: STATE_SET "default" 0.0;
|
||||
target: "circle";
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
group { name: "e/fileman/default/list/detailed";
|
||||
inherit: "e/fileman/default/list/variable";
|
||||
parts {
|
||||
|
@ -1094,6 +1248,20 @@ group { name: "e/fileman/default/list/detailed";
|
|||
color_class: "/fg/disabled/list/item"; \
|
||||
} \
|
||||
}
|
||||
part { name: "e.text.label";
|
||||
description { state: "default" 0.0;
|
||||
rel2.to_x: "e.swallow.detail1";
|
||||
rel2.relative: 0.0 1.0;
|
||||
}
|
||||
description { state: "selected" 0.0;
|
||||
rel2.to_x: "e.swallow.detail1";
|
||||
rel2.relative: 0.0 1.0;
|
||||
}
|
||||
description { state: "disabled" 0.0;
|
||||
rel2.to_x: "e.swallow.detail1";
|
||||
rel2.relative: 0.0 1.0;
|
||||
}
|
||||
}
|
||||
DETAILTEXT("e.text.detail1", "e.swallow.detail1", "e.text.label")
|
||||
DETAILTEXT("e.text.detail2", "e.swallow.detail2", "e.text.detail1")
|
||||
DETAILTEXT("e.text.detail3", "e.swallow.detail3", "e.text.detail2")
|
||||
|
@ -1119,15 +1287,15 @@ group { name: "e/fileman/default/list/detailed";
|
|||
target: "e.text.detail5";
|
||||
target: "e.text.detail6";
|
||||
}
|
||||
part { name: "e.swallow.detail6"; type: SWALLOW; nomouse; scale;
|
||||
insert_after: "e.text.detail6";
|
||||
part { name: "e.swallow.detail6"; type: SWALLOW; scale;
|
||||
insert_after: "e.swallow.entry";
|
||||
description { state: "default" 0.0; offscale;
|
||||
align: 1.0 0.5; min: 15 5;
|
||||
rel1 { offset: -5 0; relative: 1.0 0.0; }
|
||||
rel2 { offset: -5 -1; relative: 1.0 1.0; }
|
||||
}
|
||||
}
|
||||
part { name: "e.swallow.detail5"; type: SWALLOW; nomouse; scale;
|
||||
part { name: "e.swallow.detail5"; type: SWALLOW; scale;
|
||||
insert_after: "e.swallow.detail6";
|
||||
description { state: "default" 0.0; offscale;
|
||||
align: 1.0 0.5; min: 20 5;
|
||||
|
@ -1135,7 +1303,7 @@ group { name: "e/fileman/default/list/detailed";
|
|||
rel2 { to_x: "e.swallow.detail6"; offset: -1 -1; relative: 0.0 1.0; }
|
||||
}
|
||||
}
|
||||
part { name: "e.swallow.detail4"; type: SWALLOW; nomouse; scale;
|
||||
part { name: "e.swallow.detail4"; type: SWALLOW; scale;
|
||||
insert_after: "e.swallow.detail5";
|
||||
description { state: "default" 0.0; offscale;
|
||||
align: 1.0 0.5; min: 20 5;
|
||||
|
@ -1143,7 +1311,7 @@ group { name: "e/fileman/default/list/detailed";
|
|||
rel2 { to_x: "e.swallow.detail5"; offset: -1 -1; relative: 0.0 1.0; }
|
||||
}
|
||||
}
|
||||
part { name: "e.swallow.detail3"; type: SWALLOW; nomouse; scale;
|
||||
part { name: "e.swallow.detail3"; type: SWALLOW; scale;
|
||||
insert_after: "e.swallow.detail4";
|
||||
description { state: "default" 0.0; offscale;
|
||||
align: 1.0 0.5; min: 20 5;
|
||||
|
@ -1151,7 +1319,7 @@ group { name: "e/fileman/default/list/detailed";
|
|||
rel2 { to_x: "e.swallow.detail4"; offset: -1 -1; relative: 0.0 1.0; }
|
||||
}
|
||||
}
|
||||
part { name: "e.swallow.detail2"; type: SWALLOW; nomouse; scale;
|
||||
part { name: "e.swallow.detail2"; type: SWALLOW; scale;
|
||||
insert_after: "e.swallow.detail3";
|
||||
description { state: "default" 0.0; offscale;
|
||||
align: 1.0 0.5; min: 20 5;
|
||||
|
@ -1159,7 +1327,7 @@ group { name: "e/fileman/default/list/detailed";
|
|||
rel2 { to_x: "e.swallow.detail3"; offset: -1 -1; relative: 0.0 1.0; }
|
||||
}
|
||||
}
|
||||
part { name: "e.swallow.detail1"; type: SWALLOW; nomouse; scale;
|
||||
part { name: "e.swallow.detail1"; type: SWALLOW; scale;
|
||||
insert_after: "e.swallow.detail2";
|
||||
description { state: "default" 0.0; offscale;
|
||||
align: 1.0 0.5; min: 20 5;
|
||||
|
@ -1167,20 +1335,6 @@ group { name: "e/fileman/default/list/detailed";
|
|||
rel2 { to_x: "e.swallow.detail2"; offset: -1 -1; relative: 0.0 1.0; }
|
||||
}
|
||||
}
|
||||
part { name: "e.text.label";
|
||||
description { state: "default" 0.0;
|
||||
rel2.to_x: "e.swallow.detail1";
|
||||
rel2.relative: 0.0 1.0;
|
||||
}
|
||||
description { state: "selected" 0.0;
|
||||
rel2.to_x: "e.swallow.detail1";
|
||||
rel2.relative: 0.0 1.0;
|
||||
}
|
||||
description { state: "disabled" 0.0;
|
||||
rel2.to_x: "e.swallow.detail1";
|
||||
rel2.relative: 0.0 1.0;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -618,9 +618,11 @@ foreach evas_loader_map_inst : evas_loader_map
|
|||
meson.add_install_script('meson/evas_loader_conf.sh', evas_loader_original, evas_loader_link_types)
|
||||
endforeach
|
||||
|
||||
doxygen = find_program('doxygen', required : false)
|
||||
|
||||
if doxygen.found()
|
||||
doxygen = find_program('doxygen', required : get_option('docs'))
|
||||
if get_option('docs')
|
||||
if not doxygen.found()
|
||||
error('Need doxygen for docs')
|
||||
endif
|
||||
subdir('doc')
|
||||
endif
|
||||
|
||||
|
|
|
@ -382,3 +382,9 @@ option('max-fd-size',
|
|||
value : '8192',
|
||||
description : 'This is the maximim set of fds and thus maximum fd value allowed +1 in the ecore main loop handler'
|
||||
)
|
||||
|
||||
option('docs',
|
||||
type: 'boolean',
|
||||
value: false,
|
||||
description: 'Enable building C of documentation (Requires doxygen)'
|
||||
)
|
||||
|
|
|
@ -545,91 +545,6 @@ efreet_desktop_util_cache_file(void)
|
|||
/*
|
||||
* Needs EAPI because of helper binaries
|
||||
*/
|
||||
#define SHSH(n, v) ((((v) << (n)) & 0xffffffff) | ((v) >> (32 - (n))))
|
||||
|
||||
static inline int
|
||||
int_to_bigendian(int in)
|
||||
{
|
||||
static const unsigned char test[4] = { 0x11, 0x22, 0x33, 0x44 };
|
||||
static const unsigned int *test_i = (const unsigned int *)test;
|
||||
if (test_i[0] == 0x44332211) return eina_swap32(in);
|
||||
return in;
|
||||
}
|
||||
|
||||
static void
|
||||
sha1(unsigned char *data, int size, unsigned char *dst)
|
||||
{
|
||||
unsigned int digest[5], word[80], wa, wb, wc, wd, we, t;
|
||||
unsigned char buf[64], *d;
|
||||
int idx, left, i;
|
||||
const unsigned int magic[4] =
|
||||
{ 0x5a827999, 0x6ed9eba1, 0x8f1bbcdc, 0xca62c1d6 };
|
||||
|
||||
idx = 0;
|
||||
digest[0] = 0x67452301; digest[1] = 0xefcdab89; digest[2] = 0x98badcfe;
|
||||
digest[3] = 0x10325476; digest[4] = 0xc3d2e1f0;
|
||||
|
||||
memset(buf, 0, sizeof(buf));
|
||||
for (left = size, d = data; left > 0; left--, d++)
|
||||
{
|
||||
if ((idx == 0) && (left < 64))
|
||||
{
|
||||
memset(buf, 0, 60);
|
||||
buf[60] = (size >> 24) & 0xff;
|
||||
buf[61] = (size >> 16) & 0xff;
|
||||
buf[62] = (size >> 8) & 0xff;
|
||||
buf[63] = (size) & 0xff;
|
||||
}
|
||||
buf[idx] = *d;
|
||||
idx++;
|
||||
if ((idx == 64) || (left == 1))
|
||||
{
|
||||
if ((left == 1) && (idx < 64)) buf[idx] = 0x80;
|
||||
for (i = 0; i < 16; i++)
|
||||
{
|
||||
word[i] = (unsigned int)buf[(i * 4) ] << 24;
|
||||
word[i] |= (unsigned int)buf[(i * 4) + 1] << 16;
|
||||
word[i] |= (unsigned int)buf[(i * 4) + 2] << 8;
|
||||
word[i] |= (unsigned int)buf[(i * 4) + 3];
|
||||
}
|
||||
for (i = 16; i < 80; i++)
|
||||
word[i] = SHSH(1,
|
||||
word[i - 3 ] ^ word[i - 8 ] ^
|
||||
word[i - 14] ^ word[i - 16]);
|
||||
wa = digest[0]; wb = digest[1]; wc = digest[2];
|
||||
wd = digest[3]; we = digest[4];
|
||||
for (i = 0; i < 80; i++)
|
||||
{
|
||||
if (i < 20)
|
||||
t = SHSH(5, wa) + ((wb & wc) | ((~wb) & wd)) +
|
||||
we + word[i] + magic[0];
|
||||
else if (i < 40)
|
||||
t = SHSH(5, wa) + (wb ^ wc ^ wd) +
|
||||
we + word[i] + magic[1];
|
||||
else if (i < 60)
|
||||
t = SHSH(5, wa) + ((wb & wc) | (wb & wd) | (wc & wd)) +
|
||||
we + word[i] + magic[2];
|
||||
else if (i < 80)
|
||||
t = SHSH(5, wa) + (wb ^ wc ^ wd) +
|
||||
we + word[i] + magic[3];
|
||||
we = wd;
|
||||
wd = wc;
|
||||
wc = SHSH(30, wb);
|
||||
wb = wa;
|
||||
wa = t;
|
||||
}
|
||||
digest[0] += wa; digest[1] += wb; digest[2] += wc;
|
||||
digest[3] += wd; digest[4] += we;
|
||||
idx = 0;
|
||||
}
|
||||
}
|
||||
t = int_to_bigendian(digest[0]); digest[0] = t;
|
||||
t = int_to_bigendian(digest[1]); digest[1] = t;
|
||||
t = int_to_bigendian(digest[2]); digest[2] = t;
|
||||
t = int_to_bigendian(digest[3]); digest[3] = t;
|
||||
t = int_to_bigendian(digest[4]); digest[4] = t;
|
||||
memcpy(dst, digest, 5 * 4);
|
||||
}
|
||||
|
||||
EAPI Eina_Bool
|
||||
efreet_file_cache_fill(const char *file, Efreet_Cache_Check *check)
|
||||
|
@ -651,7 +566,7 @@ efreet_file_cache_fill(const char *file, Efreet_Cache_Check *check)
|
|||
if ((size > 0) && ((size_t)size >= sizeof(link))) return EINA_FALSE;
|
||||
if (stat(file, &st) != 0) return EINA_FALSE;
|
||||
}
|
||||
if (size > 0) sha1((unsigned char *)link, size, check->link_sha1);
|
||||
if (size > 0) eina_sha1((const unsigned char *)link, size, check->link_sha1);
|
||||
#endif
|
||||
check->uid = st.st_uid;
|
||||
check->gid = st.st_gid;
|
||||
|
|
|
@ -1526,7 +1526,7 @@ _efl_ui_focus_manager_calc_efl_ui_focus_manager_manager_focus_set(Eo *obj, Efl_U
|
|||
}
|
||||
else
|
||||
{
|
||||
ERR("Could not fetch a node located at %p", node->focusable);
|
||||
F_DBG("Could not fetch a node located at %p", node->focusable);
|
||||
goto end;
|
||||
}
|
||||
}
|
||||
|
|
|
@ -25,6 +25,8 @@ EVAS_API Cutout_Rects *evas_common_draw_context_cutouts_new (vo
|
|||
EVAS_API void evas_common_draw_context_cutouts_free (Cutout_Rects* rects);
|
||||
EVAS_API void evas_common_draw_context_cutouts_real_free (Cutout_Rects* rects);
|
||||
EVAS_API void evas_common_draw_context_cutouts_del (Cutout_Rects* rects, int idx);
|
||||
EVAS_API void evas_common_draw_context_cutout_max_set (RGBA_Draw_Context *dc, int max);
|
||||
EVAS_API void evas_common_draw_context_cutout_size_min_set (RGBA_Draw_Context *dc, int min);
|
||||
EVAS_API void evas_common_draw_context_add_cutout (RGBA_Draw_Context *dc, int x, int y, int w, int h);
|
||||
EVAS_API void evas_common_draw_context_clear_cutouts (RGBA_Draw_Context *dc);
|
||||
EVAS_API Cutout_Rects *evas_common_draw_context_apply_cutouts (RGBA_Draw_Context *dc, Cutout_Rects *recycle);
|
||||
|
|
|
@ -174,6 +174,8 @@ evas_common_draw_context_new(void)
|
|||
dc = _evas_common_draw_context_find();
|
||||
if (!dc) return NULL;
|
||||
memset(dc, 0, sizeof(RGBA_Draw_Context));
|
||||
dc->cutout.count_max = 0x7fffffff;
|
||||
dc->cutout.size_min = 8 * 8;
|
||||
return dc;
|
||||
}
|
||||
|
||||
|
@ -296,11 +298,23 @@ evas_common_draw_context_unset_multiplier(RGBA_Draw_Context *dc)
|
|||
dc->mul.use = 0;
|
||||
}
|
||||
|
||||
EVAS_API void
|
||||
evas_common_draw_context_cutout_max_set(RGBA_Draw_Context *dc, int max)
|
||||
{
|
||||
dc->cutout.count_max = max;
|
||||
}
|
||||
|
||||
EVAS_API void
|
||||
evas_common_draw_context_cutout_size_min_set(RGBA_Draw_Context *dc, int min)
|
||||
{
|
||||
dc->cutout.size_min = min;
|
||||
}
|
||||
|
||||
EVAS_API void
|
||||
evas_common_draw_context_add_cutout(RGBA_Draw_Context *dc, int x, int y, int w, int h)
|
||||
{
|
||||
// if (dc->cutout.rects > 512) return;
|
||||
if (dc->cutout.active >= dc->cutout.count_max) return;
|
||||
if ((w * h) < dc->cutout.size_min) return;
|
||||
if (dc->clip.use)
|
||||
{
|
||||
#if 1 // this is a bit faster
|
||||
|
@ -335,8 +349,8 @@ evas_common_draw_context_add_cutout(RGBA_Draw_Context *dc, int x, int y, int w,
|
|||
RECTS_CLIP_TO_RECT(x, y, w, h,
|
||||
dc->clip.x, dc->clip.y, dc->clip.w, dc->clip.h);
|
||||
#endif
|
||||
if ((w * h) < dc->cutout.size_min) return;
|
||||
}
|
||||
if ((w * h) <= (8 * 8)) return;
|
||||
if (dc->cutout.last_add.w > 0)
|
||||
{
|
||||
if ((dc->cutout.last_add.x == x) && (dc->cutout.last_add.y == y) &&
|
||||
|
|
|
@ -645,6 +645,8 @@ struct _Cutout_Rects
|
|||
Cutout_Rect *rects;
|
||||
int active;
|
||||
int max;
|
||||
int count_max;
|
||||
int size_min;
|
||||
struct {
|
||||
int x, w, y, h;
|
||||
} last_add;
|
||||
|
|
|
@ -158,7 +158,8 @@ struct _Evas_GL_Shared
|
|||
Eina_Bool etc1_subimage : 1;
|
||||
Eina_Bool s3tc : 1;
|
||||
// tuning params - per gpu/cpu combo?
|
||||
#define DEF_CUTOUT 4096
|
||||
#define DEF_CUTOUT 64
|
||||
#define DEF_CUTOUT_SIZE_MIN (64*64)
|
||||
|
||||
#define MAX_PIPES 32
|
||||
#define DEF_PIPES 8
|
||||
|
@ -188,6 +189,9 @@ struct _Evas_GL_Shared
|
|||
struct {
|
||||
int max;
|
||||
} cutout;
|
||||
struct {
|
||||
int min;
|
||||
} cutout_size;
|
||||
struct {
|
||||
int max;
|
||||
} pipes;
|
||||
|
|
|
@ -1004,6 +1004,7 @@ evas_gl_common_context_new(void)
|
|||
// magic numbers that are a result of imperical testing and getting
|
||||
// "best case" performance across a range of systems
|
||||
shared->info.tune.cutout.max = DEF_CUTOUT;
|
||||
shared->info.tune.cutout_size.min = DEF_CUTOUT_SIZE_MIN;
|
||||
shared->info.tune.pipes.max = DEF_PIPES;
|
||||
shared->info.tune.atlas.max_alloc_size = DEF_ATLAS_ALLOC;
|
||||
shared->info.tune.atlas.max_alloc_alpha_size = DEF_ATLAS_ALLOC_ALPHA;
|
||||
|
@ -1040,6 +1041,7 @@ evas_gl_common_context_new(void)
|
|||
} while (0)
|
||||
|
||||
GETENVOPT("EVAS_GL_CUTOUT_MAX", cutout.max, -1, 0x7fffffff);
|
||||
GETENVOPT("EVAS_GL_CUTOUT_SIZE_MIN", cutout_size.min, -1, 0x7fffffff);
|
||||
GETENVOPT("EVAS_GL_PIPES_MAX", pipes.max, 1, MAX_PIPES);
|
||||
GETENVOPT("EVAS_GL_ATLAS_ALLOC_SIZE", atlas.max_alloc_size, MIN_ATLAS_ALLOC, MAX_ATLAS_ALLOC);
|
||||
GETENVOPT("EVAS_GL_ATLAS_ALLOC_ALPHA_SIZE", atlas.max_alloc_alpha_size, MIN_ATLAS_ALLOC_ALPHA, MAX_ATLAS_ALLOC_ALPHA);
|
||||
|
@ -1109,6 +1111,7 @@ evas_gl_common_context_new(void)
|
|||
"\n"
|
||||
"EVAS_GL_GET_PROGRAM_BINARY: %i\n"
|
||||
"EVAS_GL_CUTOUT_MAX: %i\n"
|
||||
"EVAS_GL_CUTOUT_SIZE_MIN: %i\n"
|
||||
"EVAS_GL_PIPES_MAX: %i\n"
|
||||
"EVAS_GL_ATLAS_ALLOC_SIZE: %i\n"
|
||||
"EVAS_GL_ATLAS_ALLOC_ALPHA_SIZE: %i\n"
|
||||
|
@ -1128,6 +1131,7 @@ evas_gl_common_context_new(void)
|
|||
|
||||
(int)shared->info.bin_program,
|
||||
(int)shared->info.tune.cutout.max,
|
||||
(int)shared->info.tune.cutout_size.min,
|
||||
(int)shared->info.tune.pipes.max,
|
||||
(int)shared->info.tune.atlas.max_alloc_size,
|
||||
(int)shared->info.tune.atlas.max_alloc_alpha_size,
|
||||
|
|
|
@ -788,6 +788,10 @@ _rotate_image_data(Render_Engine_GL_Generic *re, Evas_GL_Image *im1)
|
|||
|
||||
// Create a new and temporary context
|
||||
dc = evas_common_draw_context_new();
|
||||
evas_common_draw_context_cutout_max_set
|
||||
(dc, gl_context->shared->info.tune.cutout.max);
|
||||
evas_common_draw_context_cutout_size_min_set
|
||||
(dc, gl_context->shared->info.tune.cutout_size.min);
|
||||
evas_common_draw_context_set_clip(dc, 0, 0, im2->w, im2->h);
|
||||
gl_context->dc = dc;
|
||||
|
||||
|
@ -2317,6 +2321,23 @@ eng_pixel_alpha_get(void *image, int x, int y, DATA8 *alpha, int src_region_x, i
|
|||
return EINA_TRUE;
|
||||
}
|
||||
|
||||
static void *
|
||||
eng_context_new(void *engine)
|
||||
{
|
||||
Render_Engine_GL_Generic *re = engine;
|
||||
Evas_Engine_GL_Context *gl_context;
|
||||
void *ctx;
|
||||
|
||||
gl_context = gl_generic_context_find(re, 1);
|
||||
|
||||
ctx = pfunc.context_new(&re->software);
|
||||
evas_common_draw_context_cutout_max_set
|
||||
(ctx, gl_context->shared->info.tune.cutout.max);
|
||||
evas_common_draw_context_cutout_size_min_set
|
||||
(ctx, gl_context->shared->info.tune.cutout_size.min);
|
||||
return ctx;
|
||||
}
|
||||
|
||||
static void
|
||||
eng_context_flush(void *engine)
|
||||
{
|
||||
|
@ -3110,6 +3131,7 @@ module_open(Evas_Module *em)
|
|||
ORD(engine_new);
|
||||
ORD(engine_free);
|
||||
|
||||
ORD(context_new);
|
||||
ORD(context_clip_image_set);
|
||||
ORD(context_clip_image_unset);
|
||||
ORD(context_clip_image_get);
|
||||
|
|
Loading…
Reference in New Issue