In commit cbcf5bc64a, newer librsvg APIs were used that are not available in versions between 2.36.0 and 2.50.0, e.g. rsvg_handle_get_intrinsic_size_in_pixels which was included in 2.51.x.
This has been resolved by adding a HAVE_SVG_2_51 and using it for both rsvg_handle_get_intrinsic_size_in_pixels and rsvg_handle_render_document, though the later technically landed in 2.46.0.
Reviewed-by: Christopher Michael <devilhorns@comcast.net>
Differential Revision: https://phab.enlightenment.org/D12293
A few of the functions used in this code have been deprecated in the
latest librsvg. This patch fixes the deprecated warnings by using
possible.
NB: As I am no cairo expert, someone may want to check that the proper
dimensions are used in read_svg_data function. I was not sure if this
should be using the 'scaled' dimensions or not.
Summary:
Usually application sets uv point value using proxy object size.
if source object is bigger than proxy object, then only part of
source image is used for map, and it leads to unexpected result.
This patch is solving this problem make map use source object size
instead of proxy object size by comparing both size.
Test Plan:
[Samle Code]
{F4606414}
[Sample Image]
{F4606413}
[Before apply map]
{F4606418}
[After apply map WITHOUT patch]
{F4606416}
[After apply map WITH patch]
{F4606417}
Reviewers: raster, Hermet
Reviewed By: raster
Subscribers: cedric, #reviewers, #committers
Tags: #efl
Differential Revision: https://phab.enlightenment.org/D12292
elm map has been broken for a long time now sue to upstream web api
changes/breaks made by openstreetmaps. this isn't sustainable to have
code do this. since it's broken there is little point keeping code for
something that is totally non-functional, so reduce code, document it
as broken and remove tests. at least symbols remain so no missing
symbols and code using it will end up with an empty non-functional
widget (much like they would without these changes anyway).
@feat
Summary: with HiDPI monitor (like 4k ones), the size of the windows are upsized with the Windows algo. The result leads to blocky font rendering for exemple. Set the scale in elm_config according to the values of the scale.
Test Plan: elm test with a text
Reviewers: raster
Subscribers: cedric, #reviewers, #committers
Tags: #efl
Differential Revision: https://phab.enlightenment.org/D12290
Test Plan: running the efl since several months without problem
Reviewers: raster
Reviewed By: raster
Subscribers: cedric, #reviewers, #committers
Tags: #efl
Differential Revision: https://phab.enlightenment.org/D12289
Summary:
Allow user to get currently used font size when Text Fitting is enabled.
previously, the user can not know what is current font size, he only specifies font size ranges, and the algorithm internally decides suitable font size.
with this change, the user has the ability to know the font size, that the fitting algorithm has picked
Reviewers: raster
Subscribers: raster, cedric, #reviewers, #committers
Tags: #efl
Differential Revision: https://phab.enlightenment.org/D12288
Summary:
egl images created using tbm surface for native surface set use
GL_TEXTURE_EXTERNA_OES as texture target, so we should bind to
this target when rendering. Or there is a GL_INVALID_OPERATION
error on glBindTexture in function _orig_shader_array_flush.
Thia patch follows logic of following commit;
7db0e20 evas/gl: Bind texture with external target for tbm surface
Reviewers: Hermet, raster, jsuya, herb
Reviewed By: Hermet
Subscribers: cedric, #reviewers, #committers
Tags: #efl
Differential Revision: https://phab.enlightenment.org/D12286
Summary:
It is non-sense that running timer even if the input/timer is invalid.
Stop the timer to prevent invalid key down repeating.
Subscribers: cedric, #reviewers, #committers
Tags: #efl
Differential Revision: https://phab.enlightenment.org/D12285
Summary:
Remove unnecessary point movement in rgb(255, 255, 255) case in svg parsing.
In svg parsing, move the pointer by 'rgb(' before calling
_color_parser() in the rgb(255, 255, 255) case.
In function, string pointer moved unnecessary, so parsing is incorrect.
Therefore, remove unnecessary point movement.
Test Plan:
svg sample code
```
<svg xmlns:svg="http://www.w3.org/2000/svg" viewBox="0 0 300 300">
<path d="M 0 0 h 200 v 200 z" style="fill:rgb(255, 155, 55);"/>
</svg>
```
before
{F4504779}
after
{F4504778}
Reviewers: Hermet
Subscribers: cedric, #reviewers, #committers
Tags: #efl
Differential Revision: https://phab.enlightenment.org/D12284
Summary:
calling elm_init does not guarantee of readiness of atspi bridge
even though elm_init is calling _elm_atspi_bridge_init.
widget or user could want to know when the atspi bridge is ready.
Reviewers: Hermet, jsuya, herb
Reviewed By: Hermet
Subscribers: cedric, #reviewers, #committers
Tags: #efl
Differential Revision: https://phab.enlightenment.org/D12283
Summary: we do not have to change several place for updating.
Reviewers: Hermet, jsuya, herb
Reviewed By: Hermet
Subscribers: cedric, #reviewers, #committers
Tags: #efl
Differential Revision: https://phab.enlightenment.org/D12282
This reverts commit e2d6691d52.
This reverts commit c02b796fdb.
This reverts commit 6c969f6b7d.
This reverts commit 74204bccd7.
This reverts commit 1304d95717.
This reverts commit 7c85be9674.
revert the EAPI changes that break cxx bindings build. sorry :( more
fixes needed than i thought
emile in these 2 cases allocates an empty uninitilised buffer that
will then be filled - gcc thinks we're passing uninit data to a func -
which is right but intended as it is later filled. disable this
warning for these segments of code.
Summary:
Change-Id: I17c79f89550e9a758a532babd55826b3c7ad2810
To show gif animation smoothly, we keep the current frame even if getting line is failed.
Currently, the frame image will be freed if getting gif line is failed and this makes the frame drop.
Reviewers: Hermet, kimcinoo, raster
Reviewed By: raster
Subscribers: raster, cedric, #reviewers, #committers
Tags: #efl
Differential Revision: https://phab.enlightenment.org/D12277
Summary:
Patch from a series of patches to rename EAPI symbols to specific
library DSOs.
= The Rationale =
EAPI was designed to be able to pass
`__attribute__ ((visibility ("default")))` for symbols with
GCC, which would mean that even if -fvisibility=hidden was used
when compiling the library, the needed symbols would get exported.
MSVC __almost__ works like GCC (or mingw) in which you can
declare everything as export and it will just work (slower, but
it will work). But there's a caveat: global variables will not
work the same way for MSVC, but works for mingw and GCC.
For global variables (as opposed to functions), MSVC requires
correct DSO visibility for MSVC: instead of declaring a symbol as
export for everything, you need to declare it as import when
importing from another DSO and export when defining it locally.
With current EAPI definitions, we get the following example
working in mingw and MSVC (observe it doesn't define any global
variables as exported symbols).
Example 1:
dll1:
```
EAPI void foo(void);
EAPI void bar()
{
foo();
}
```
dll2:
```
EAPI void foo()
{
printf ("foo\n");
}
```
This works fine with API defined as __declspec(dllexport) in both
cases and for gcc defining as
`__atttribute__((visibility("default")))`.
However, the following:
Example 2:
dll1:
```
EAPI extern int foo;
EAPI void foobar(void);
EAPI void bar()
{
foo = 5;
foobar();
}
```
dll2:
```
EAPI int foo = 0;
EAPI void foobar()
{
printf ("foo %d\n", foo);
}
```
This will work on mingw but will not work for MSVC. And that's why
EAPI is the only solution that worked for MSVC.
Co-authored-by: João Paulo Taylor Ienczak Zanette <jpaulotiz@gmail.com>
Co-authored-by: Ricardo Campos <ricardo.campos@expertise.dev>
Co-authored-by: Lucas Cavalcante de Sousa <lucks.sousa@gmail.com>
Reviewers: vtorri, raster
Reviewed By: raster
Subscribers: raster, cedric, #reviewers, #committers
Tags: #efl
Differential Revision: https://phab.enlightenment.org/D12273
Summary:
The symbols will be needed when we change how Eolian generates
import/export symbols in Eio
Reviewers: vtorri, raster
Subscribers: raster, cedric, #reviewers, #committers
Tags: #efl
Differential Revision: https://phab.enlightenment.org/D12272
Summary:
= The Rationale =
EAPI was designed to be able to pass
`__attribute__ ((visibility ("default")))` for symbols with
GCC, which would mean that even if -fvisibility=hidden was used
when compiling the library, the needed symbols would get exported.
MSVC __almost__ works like GCC (or mingw) in which you can
declare everything as export and it will just work (slower, but
it will work). But there's a caveat: global variables will not
work the same way for MSVC, but works for mingw and GCC.
For global variables (as opposed to functions), MSVC requires
correct DSO visibility for MSVC: instead of declaring a symbol as
export for everything, you need to declare it as import when
importing from another DSO and export when defining it locally.
With current EAPI definitions, we get the following example
working in mingw and MSVC (observe it doesn't define any global
variables as exported symbols).
Example 1:
dll1:
```
EAPI void foo(void);
EAPI void bar()
{
foo();
}
```
dll2:
```
EAPI void foo()
{
printf ("foo\n");
}
```
This works fine with API defined as __declspec(dllexport) in both
cases and for gcc defining as
`__atttribute__((visibility("default")))`.
However, the following:
Example 2:
dll1:
```
EAPI extern int foo;
EAPI void foobar(void);
EAPI void bar()
{
foo = 5;
foobar();
}
```
dll2:
```
EAPI int foo = 0;
EAPI void foobar()
{
printf ("foo %d\n", foo);
}
```
This will work on mingw but will not work for MSVC. And that's why
EAPI is the only solution that worked for MSVC.
Co-authored-by: João Paulo Taylor Ienczak Zanette <jpaulotiz@gmail.com>
Co-authored-by: Ricardo Campos <ricardo.campos@expertise.dev>
Co-authored-by: Lucas Cavalcante de Sousa <lucks.sousa@gmail.com>
Reviewers: vtorri, raster
Reviewed By: raster
Subscribers: raster, cedric, #reviewers, #committers
Tags: #efl
Differential Revision: https://phab.enlightenment.org/D12271
Summary:
= The Rationale =
EAPI was designed to be able to pass
`__attribute__ ((visibility ("default")))` for symbols with
GCC, which would mean that even if -fvisibility=hidden was used
when compiling the library, the needed symbols would get exported.
MSVC __almost__ works like GCC (or mingw) in which you can
declare everything as export and it will just work (slower, but
it will work). But there's a caveat: global variables will not
work the same way for MSVC, but works for mingw and GCC.
For global variables (as opposed to functions), MSVC requires
correct DSO visibility for MSVC: instead of declaring a symbol as
export for everything, you need to declare it as import when
importing from another DSO and export when defining it locally.
With current EAPI definitions, we get the following example
working in mingw and MSVC (observe it doesn't define any global
variables as exported symbols).
Example 1:
dll1:
```
EAPI void foo(void);
EAPI void bar()
{
foo();
}
```
dll2:
```
EAPI void foo()
{
printf ("foo\n");
}
```
This works fine with API defined as __declspec(dllexport) in both
cases and for gcc defining as
`__atttribute__((visibility("default")))`.
However, the following:
Example 2:
dll1:
```
EAPI extern int foo;
EAPI void foobar(void);
EAPI void bar()
{
foo = 5;
foobar();
}
```
dll2:
```
EAPI int foo = 0;
EAPI void foobar()
{
printf ("foo %d\n", foo);
}
```
This will work on mingw but will not work for MSVC. And that's why
EAPI is the only solution that worked for MSVC.
Co-authored-by: João Paulo Taylor Ienczak Zanette <jpaulotiz@gmail.com>
Co-authored-by: Ricardo Campos <ricardo.campos@expertise.dev>
Co-authored-by: Lucas Cavalcante de Sousa <lucks.sousa@gmail.com>
Reviewers: vtorri, raster
Subscribers: raster, cedric, #reviewers, #committers
Tags: #efl
Differential Revision: https://phab.enlightenment.org/D12270
Summary:
Patch from a series of patches to rename EAPI symbols to specific
library DSOs.
= The Rationale =
EAPI was designed to be able to pass
`__attribute__ ((visibility ("default")))` for symbols with
GCC, which would mean that even if -fvisibility=hidden was used
when compiling the library, the needed symbols would get exported.
MSVC __almost__ works like GCC (or mingw) in which you can
declare everything as export and it will just work (slower, but
it will work). But there's a caveat: global variables will not
work the same way for MSVC, but works for mingw and GCC.
For global variables (as opposed to functions), MSVC requires
correct DSO visibility for MSVC: instead of declaring a symbol as
export for everything, you need to declare it as import when
importing from another DSO and export when defining it locally.
With current EAPI definitions, we get the following example
working in mingw and MSVC (observe it doesn't define any global
variables as exported symbols).
Example 1:
dll1:
```
EAPI void foo(void);
EAPI void bar()
{
foo();
}
```
dll2:
```
EAPI void foo()
{
printf ("foo\n");
}
```
This works fine with API defined as __declspec(dllexport) in both
cases and for gcc defining as
`__atttribute__((visibility("default")))`.
However, the following:
Example 2:
dll1:
```
EAPI extern int foo;
EAPI void foobar(void);
EAPI void bar()
{
foo = 5;
foobar();
}
```
dll2:
```
EAPI int foo = 0;
EAPI void foobar()
{
printf ("foo %d\n", foo);
}
```
This will work on mingw but will not work for MSVC. And that's why
EAPI is the only solution that worked for MSVC.
Co-authored-by: João Paulo Taylor Ienczak Zanette <jpaulotiz@gmail.com>
Co-authored-by: Ricardo Campos <ricardo.campos@expertise.dev>
Co-authored-by: Lucas Cavalcante de Sousa <lucks.sousa@gmail.com>
Reviewers: vtorri, raster
Subscribers: raster, cedric, #reviewers, #committers
Tags: #efl
Differential Revision: https://phab.enlightenment.org/D12274
Summary:
This patch fixes wrong behavior for text block content fit when markup contains a part with specified font sizes (these parts will not be fitted by content fit algorithm).
+ THIS STILL NEED TEST TO BE ADDED
Subscribers: raster, cedric, #reviewers, #committers
Tags: #efl
Differential Revision: https://phab.enlightenment.org/D12275
add debug/error detection for the animator thread that might just sit
ans sleep waiting on epoll_wait + timerfd to expire... and it doesn't.
it SHOULD expire in less than 1 ft (frame time eg 16.66666667ms). but
i'm seeing it sometimes take 4 or 6 or 8 SECONDS to have epoll_wait
wake up... even thought i now set epoll_wait to always expire in 200ms
no matter what... even that it doesn't honor. something truly messed
up is happening with scheduling and i think this cascades through
everything - i see evas doing eglSwapBuffers() with nothing appearing
in the vbox screen... truly messed up. at least this adds some rror
detection for this and is at least a warning to a user that something
is messed up.
the old one was a bit... rough. the new one relies on the new fallback
to parent classes in edje to simplify colorclasses and can now apply
immediately. i've started on a palette editor gui - and it works
relatively well and applies live as you slide colors around. it looks
vaguely good too. i don't thnk we should hsave a widget to do this as
it's probably too much in elementary (the lib) that is far too niche
in use.
Summary: Windows has no fnmatch.h, so usage of Elementary on that OS will fail
Reviewers: raster
Reviewed By: raster
Subscribers: cedric, #reviewers, #committers
Tags: #efl
Differential Revision: https://phab.enlightenment.org/D12268
Summary: addd musl's fnmatch() implementation to Eina
Test Plan: compilation and simple test case
Reviewers: raster
Subscribers: cedric, #reviewers, #committers
Tags: #efl
Differential Revision: https://phab.enlightenment.org/D12261
this never worked... the code just was not there to look uop color
classes in text styles and change/replace them. this fixes that. it
implements them. it implements color_class to replace color=xxx but
also supports color=cc:colorclassname (so backing_color=cc:xxx works
too to specify a colorclass for a backing color, and underline and so
on). so now it's implemented and actually works... it can be used.
this SHOULD have alwasy worked... but hey. apoparently not.
@fix
Summary:
curl_global_init() in efl_net_dialer_http constructor.
curl_global_cleanup() need to call when it destructor.
Without this, module and libcurl internal data are leaking.
Reviewers: Hermet, raster
Reviewed By: raster
Subscribers: cedric, #reviewers, #committers
Tags: #efl
Differential Revision: https://phab.enlightenment.org/D12259
this allows insgtant response to being de-iconified which mean instant
beginniung of rendering. we should enable this by default too so
modify config to do just that.
this basically means if a window is iconified, efl will not render to
it to save power/effort. it'll start again when it de-iconifies
this shoulpd have been day 0, but now add new styles that add an
elm.swallow.icon spot for an icon in the frame and a style that looks
like a border (also with icon as borders have them) and a close button
too. overlay variants are for overlaying so might be semi-transparent
Summary:
Patch from a series of patches to rename EAPI symbols to specific
library DSOs.
= The Rationale =
EAPI was designed to be able to pass
`__attribute__ ((visibility ("default")))` for symbols with
GCC, which would mean that even if -fvisibility=hidden was used
when compiling the library, the needed symbols would get exported.
MSVC __almost__ works like GCC (or mingw) in which you can
declare everything as export and it will just work (slower, but
it will work). But there's a caveat: global variables will not
work the same way for MSVC, but works for mingw and GCC.
For global variables (as opposed to functions), MSVC requires
correct DSO visibility for MSVC: instead of declaring a symbol as
export for everything, you need to declare it as import when
importing from another DSO and export when defining it locally.
With current EAPI definitions, we get the following example
working in mingw and MSVC (observe it doesn't define any global
variables as exported symbols).
Example 1:
dll1:
```
EAPI void foo(void);
EAPI void bar()
{
foo();
}
```
dll2:
```
EAPI void foo()
{
printf ("foo\n");
}
```
This works fine with API defined as __declspec(dllexport) in both
cases and for gcc defining as
`__atttribute__((visibility("default")))`.
However, the following:
Example 2:
dll1:
```
EAPI extern int foo;
EAPI void foobar(void);
EAPI void bar()
{
foo = 5;
foobar();
}
```
dll2:
```
EAPI int foo = 0;
EAPI void foobar()
{
printf ("foo %d\n", foo);
}
```
This will work on mingw but will not work for MSVC. And that's why
EAPI is the only solution that worked for MSVC.
Co-authored-by: João Paulo Taylor Ienczak Zanette <jpaulotiz@gmail.com>
Co-authored-by: Ricardo Campos <ricardo.campos@expertise.dev>
Co-authored-by: Lucas Cavalcante de Sousa <lucks.sousa@gmail.com>
Reviewers: vtorri, jptiz, woohyun, lucas, SPAM-smith78899
Reviewed By: vtorri, SPAM-smith78899
Subscribers: SPAM-smith78899, raster, SPAM-cabanacatalogs, cedric, #reviewers, #committers
Tags: #efl
Differential Revision: https://phab.enlightenment.org/D12228
Summary:
eina: Implement Eina_Thread for native windows
The implementation design respects the fact that Eina_Thread is an
uintptr_t. Thus we allocate the thread struct in the heap and return a
pointer to it.
As such, we store the created thread structure in the target thread
TLS slot. For threads that were not created through eina API, in
eina_thread_self we allocate a new structure, push it to the TLS slot
and mark it to be freed on thread exit.
Reviewers: jptiz, vtorri, cedric, walac
Reviewed By: jptiz, cedric
Subscribers: raster, cedric, #reviewers, #committers, lucas
Tags: #efl
Differential Revision: https://phab.enlightenment.org/D12037
this can happen if dmabuf is invalid (already destroyed) so handle
this so evas knows and falls back to rendering a rect and complains to
stderr so we know
@fix
my previous disable didnt disable all the unused image stripping. this
now does. this code is buggy especially with image sets, to remove it
and let the warnings to the job for those compiling themes.
when canceling a all_promise it will cancel all futures. When that
happens, and one future is containing a promise, the value is unrolled,
and delivered as "Operation canceled" if this is happening to the last
future in all or any in race, the promise will then free its base ctx
which is already happening due to canceling.
With this this is not happening anymore.
what happened here is that people passed private data with a reference
to the object. Which is kind of a bad idea, as in some unthought of
conditions, events are forgot, which results in freeed memory beeing
accessed. This way its at least a error.
the downside of doing things like genlist is doing, is that a object can
be deleted, due to the fact that the processing call does not have a eo
call in its stack trace, the object is not reffed at all. Hence it
simply gets deleted in the middle of beeing proceded.
With this, this is at least here not happening.
Summary: and minor fix of some values in avif loader
Test Plan: entice still can read heif
Reviewers: raster
Subscribers: cedric, #reviewers, #committers
Tags: #efl
Differential Revision: https://phab.enlightenment.org/D12257
this is not perfect, but it tuned things to take less time overall but
can be a bit more jerky given massive amounts of text like
warandpeace, but it takes less time to finish an append cycle in the
background for sure. (loading up war and peace goes from 42sec in the
background spinning appending to 3sec in an entry on my overpowered box).
on my oldest x86 box i have sitting here it goes from 95sec to 10sec.
a 2x2 matrix visually here is about as good as 4x4. at least in what i
see, but on low end gpu's it can halve the cost. in fact i was watching the
gpu on my old i5-4200u drop down to 340-410mhz (no dithering is 320-360mhz).
i got to 630-660mhz with the original 4x4 code.
the 4x4 is still there ifdefed out. perhaps i can bring it back with a
high-quality dither option, but 2x3 i think is good enough.
this adds a
EVAS_GL_RENDER_DISABLE_DITHER=1
env var (set it to anything) to disable dithered rendering.p this is
an added cost, but normally not much at all, but it seems some gl
implementations are broken, and they can't generate correct code for
the dither shader, so this disables this if this env var above is set
In order to have that working on Xorg, this requires the libinput group
hack if you are not session leader.
For now this only has swipe bindings, other gestures can follow.
Summary: libavif can be built without a AV1 decoder. Check this in the image loader
Test Plan: entice
Reviewers: raster
Subscribers: cedric, #reviewers, #committers
Tags: #efl
Differential Revision: https://phab.enlightenment.org/D12252
it's broken. it doesnt render anything. input is broken. it isn't in
use so it doesnt justify fixing. no one has complained it's brokne
thus proof of it not in use, so proof that it's not needed, so do the
right thing and nuke it to save work
@feat
we need this to do formats and modifiers properly... and this is what
broke on the rpi4 - it started using interesting formats etc. ... new
feature to support a bug fix in e
@feat
Summary:
A crash may occur when image size is set larger than buffer.
So, modify boundary of the image drawing the image
so that it does not go out of the buffer.
Test Plan: N/A
Reviewers: Hermet
Reviewed By: Hermet
Subscribers: cedric, #reviewers, #committers, kimcinoo
Tags: #efl
Differential Revision: https://phab.enlightenment.org/D12251
the free logic here was wrong. The udev_device_get_parent results get
automatically unrefed when the original device is deleted.
This caused random segfaults when starting e.
Summary:
If current clipper object is equal to previous clipper object,
then the value of visible (or alpha) is same, because it is same object.
But there is a case that current visible value is different with
previous visible, when clipper object is same.
I added this patch to cover above case to draw childern of map.
See following flow.
evas_render_mapped
> if (_evas_render_has_map(obj) && !_evas_render_can_map(obj))
> if (!changed) changed = evas_object_smart_changed_get(obj);
The evas_object_smart_changed_get returned FALSE, even though
current visible value is different with previous one in the same
clipper object.
Reviewers: raster, Hermet, herb, jsuya
Reviewed By: Hermet
Subscribers: cedric, #reviewers, #committers
Tags: #efl
Differential Revision: https://phab.enlightenment.org/D12250
This patch removes the remainder of the Teamwork protocol &
implementation. The module has been removed from Enlightenment for
some time now so there is no need to generate a protocol or have any
legacy code remaining..