summaryrefslogtreecommitdiff
path: root/src/lib/ector (follow)
AgeCommit message (Collapse)Author
2019-08-05ector_software_rasterizer: Add default value for stroke's miter_limitJunsuChoi
Summary: Currently the default value of miter_limit is defined as 0. miter_limit should be specified to a value other than 0. becuase it is affected by width. See below for an explanation of this. https://www.freetype.org/freetype2/docs/reference/ft2-glyph_stroker.html#ft_stroker_linejoin There is no particular reason why the default value is 0x4. It only refers to the standard of web svg. https://developer.mozilla.org/en-US/docs/Web/SVG/Attribute/stroke-miterlimit Test Plan: setenv("ECTOR_BACKEND", "default", 1); elm_init(argc, argv); Evas_Object *win = elm_win_util_standard_add(NULL, "test"); evas_object_smart_callback_add(win, "delete,request", win_del, 0); elm_win_autodel_set(win, 1); Evas_Object *bg = elm_bg_add(win); elm_bg_color_set(bg, 255,255,255); evas_object_size_hint_align_set(bg, EVAS_HINT_FILL, EVAS_HINT_FILL); evas_object_size_hint_weight_set(bg, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND); evas_object_show(bg); Evas *evas = evas_object_evas_get(win); Evas_Object *vg = evas_object_vg_add(evas); evas_object_show(vg); Evas_Object *container = evas_vg_container_add(vg); Evas_Object *shape = evas_vg_shape_add(container); //Default is EFL_GFX_JOIN_MITER evas_vg_shape_append_rect(shape, 0, 0, 100 , 100, 0, 0); evas_vg_shape_stroke_color_set(shape, 255, 0, 0, 255); evas_vg_shape_stroke_width_set(shape, 10); evas_vg_node_origin_set(shape, 50, 150); shape = evas_vg_shape_add(container); evas_vg_shape_append_rect(shape, 0, 0, 100 , 100, 0, 0); evas_vg_shape_stroke_join_set(shape, EFL_GFX_JOIN_BEVEL); evas_vg_shape_stroke_color_set(shape, 255, 0, 0, 255); evas_vg_shape_stroke_width_set(shape, 10); evas_vg_node_origin_set(shape, 200, 150); shape = evas_vg_shape_add(container); evas_vg_shape_append_rect(shape, 0, 0, 100 , 100, 0, 0); evas_vg_shape_stroke_join_set(shape, EFL_GFX_JOIN_ROUND); evas_vg_shape_stroke_color_set(shape, 255, 0, 0, 255); evas_vg_shape_stroke_width_set(shape, 10); evas_vg_node_origin_set(shape, 350, 150); evas_object_vg_root_node_set(vg, container); elm_object_content_set(bg, vg); elm_win_resize_object_add(win, bg); evas_object_resize(win, WIDTH, HEIGHT); evas_object_show(win); elm_run(); elm_shutdown(); Reviewers: smohanty, Hermet, kimcinoo Reviewed By: Hermet Subscribers: cedric, #reviewers, #committers Tags: #efl Differential Revision: https://phab.enlightenment.org/D9492
2019-07-26ector: Prevent access to NULL buffer in software rasterizerJunsuChoi
Summary: Prevents a crash caused by a null pointer exception when ector surface buffer is NULL. Test Plan: N/A Reviewers: Hermet, smohanty, kimcinoo Reviewed By: Hermet Subscribers: cedric, #reviewers, #committers Tags: #efl Differential Revision: https://phab.enlightenment.org/D9390
2019-07-22Ector.Renderer : Implement Ector.Renderer.(Software).Image classJunsuChoi
Summary: Implement a class and drawer that outputs image data from the Ector. Image data is output with a vector object and supports transform. Test Plan: N/A Reviewers: Hermet, smohanty, kimcinoo Reviewed By: Hermet Subscribers: cedric, #reviewers, #committers Tags: #efl Differential Revision: https://phab.enlightenment.org/D9218
2019-07-09Ector.Renderer: Prevent too many unref.JunsuChoi
Summary: pd-> surface will try efl_xref whenever surface_set is called. desturctor is called from a subclass, ref and unref do not match. So, Add this condition temporarily. Test Plan: N/A Reviewers: Hermet, smohanty, kimcinoo Reviewed By: Hermet Subscribers: cedric, #reviewers, #committers Tags: #efl Differential Revision: https://phab.enlightenment.org/D9235
2019-06-20ector: Fix precomp layer rendering issue when it has alpha valueJunsuChoi
Summary: When the precomp layer(parent layer) has alpha transparency and has more than 1 child layer and they overlap each other if vg object just propagate the alpha to child layer it will be applied twice in overlapped area. Even if the child layer does not have alpha transparency, parent alpha is applied to each child. Test Plan: N/A Reviewers: Hermet, smohanty Reviewed By: Hermet Subscribers: cedric, #reviewers, kimcinoo, #committers Tags: #efl Differential Revision: https://phab.enlightenment.org/D9072
2019-05-26eolian: rename @warn_unused and its associated APIDaniel Kolesa
@warn_unused in syntax is now called @no_unused - this is because "warning about unused" is a C thing (or rather, an extension to C) and various languages might want to use stricter behavior for this. Its associated API does the reverse now - it lets you query whether being unused is allowed at all. This is to match future behavior of Eolian (once it supports versioning) that will likely reverse it. @feature
2019-05-26eolian: remove param @nonullDaniel Kolesa
This has been deprecated for a while and is not strictly necessary - as a part of an effort to stabilize Eolian, remove this. Eolian will eventually gain support for versioning and use a reversed behavior (i.e. no NULL by default), but the API it wlll use for that will be very different. Features can always be added, it's much harder to drop them. @feature
2019-05-15ector_software_rasterizer: Improved masking calculation.JunsuChoi
Summary: The memory allocation for the buffer size is improved to allocate only the width size. Test Plan: N/A Reviewers: Hermet, kimcinoo Reviewed By: Hermet Subscribers: cedric, #reviewers, smohanty, #committers Tags: #efl Differential Revision: https://phab.enlightenment.org/D8873
2019-05-09eolian: move from eo_prefix to c_prefixDaniel Kolesa
2019-05-09ector_software_rasterizer : Move duplicate allocaJunsuChoi
Summary: Move the alloca() outside of the loop. Test Plan: N/A Reviewers: Hermet, kimcinoo Reviewed By: Hermet Subscribers: cedric, #reviewers, smohanty, #committers Tags: #efl Differential Revision: https://phab.enlightenment.org/D8869
2019-05-08ector_software_rasterizer: Support gradient mask blendingJunsuChoi
Summary: This patch supports mask blending of gradient shapes. Test Plan: N/A Reviewers: Hermet, kimcinoo Reviewed By: Hermet Subscribers: cedric, #reviewers, smohanty, #committers Tags: #efl Differential Revision: https://phab.enlightenment.org/D8855
2019-04-11ector_software_rasterizer: Implement mask blending function.JunsuChoi
Summary: Add Mask blend function(Add, Substract, Intersect, Difference) this blending function only use mask blending case. Test Plan: N/A Reviewers: Hermet Reviewed By: Hermet Subscribers: cedric, kimcinoo, #reviewers, smohanty, #committers Tags: #efl Differential Revision: https://phab.enlightenment.org/D8509
2019-04-02docs: Fix common misspellings in H filesXavi Artigas
Fixed all appearances of words from this list in H files: https://en.wikipedia.org/wiki/Wikipedia:Lists_of_common_misspellings/For_machines
2019-03-20docs: Remove obsolete @since tags from EO filesXavi Artigas
Summary: All legacy @since tags have already moved to the *.legacy.h files. EO files are now devoid of @since tags (except some eldbus still needed for legacy). Upcoming patches will add @since 1.22 to those APIs which come out of beta in this release. APIs marked @beta do not need @since tags. Test Plan: Everything builds, EO docs (like DocFX) have no Since tags. Reviewers: zmike, bu5hm4n, lauromoura, cedric Reviewed By: cedric Subscribers: cedric, #reviewers, #committers Tags: #efl Differential Revision: https://phab.enlightenment.org/D8430
2019-03-14build: add a option to disable eo file installationMarcel Hollerbach
Summary: this is done because .eo files are not stable, and in order to stop people depending on it, its better for now to disable the installation of them for now. ref T7676 Reviewers: stefan_schmidt, cedric, zmike, devilhorns Reviewed By: zmike Subscribers: #reviewers, #committers Tags: #efl Maniphest Tasks: T7676 Differential Revision: https://phab.enlightenment.org/D7897
2019-03-11eolian: enable checking of beta/stable contexts in all classesDaniel Kolesa
Summary: This enables all the checks unconditionally, without ignoring classes that don't have an Efl namespace. This required a lot of beta marking to make it build. It most likely doesn't mark types correctly, as that is not fully enabled yet. Reviewers: zmike, cedric, segfaultxavi, bu5hm4n Reviewed By: segfaultxavi Subscribers: #reviewers, #committers Tags: #efl Differential Revision: https://phab.enlightenment.org/D8266
2019-03-08headers: ensure Efl.h is always included behind BETA define guardsMike Blumenkrantz
Reviewed-by: Cedric BAIL <cedric.bail@free.fr> Differential Revision: https://phab.enlightenment.org/D8244
2019-03-08eo files: mark a bunch of types with @betaMike Blumenkrantz
Summary: these are all types that we do not currently want to release Depends on D8102 Reviewers: segfaultxavi Reviewed By: segfaultxavi Subscribers: segfaultxavi, cedric Tags: #efl_api Differential Revision: https://phab.enlightenment.org/D8241
2019-01-22ector: remove unused functionMarcel Hollerbach
done is not called, nor implemented in a single spot, lets remove it. It can still be readded once its needed. ref T5719 Reviewed-by: Cedric BAIL <cedric.bail@free.fr> Differential Revision: https://phab.enlightenment.org/D7713
2019-01-18efl: convert all abstracts to the new eolian syntaxMarcel Hollerbach
ref T7459 Reviewed-by: Daniel Kolesa <daniel@octaforge.org> Reviewed-by: Xavi Artigas <xavierartigas@yahoo.es> Differential Revision: https://phab.enlightenment.org/D7686
2019-01-18efl: convert all mixins to new eolian syntaxMarcel Hollerbach
ref T7459 Reviewed-by: Daniel Kolesa <daniel@octaforge.org> Reviewed-by: Xavi Artigas <xavierartigas@yahoo.es> Differential Revision: https://phab.enlightenment.org/D7685
2019-01-18efl: convert all classes to the new eolian syntaxMarcel Hollerbach
ref T7459 Reviewed-by: Daniel Kolesa <daniel@octaforge.org> Reviewed-by: Xavi Artigas <xavierartigas@yahoo.es> Differential Revision: https://phab.enlightenment.org/D7684
2019-01-17evas: make classes abstractMarcel Hollerbach
Summary: those classes are defining pure_virtual functions, so the class should be abstract. ref T7632 Depends on D7670 Reviewers: cedric, segfaultxavi, zmike, q66 Reviewed By: segfaultxavi Subscribers: #reviewers, #committers Tags: #efl Maniphest Tasks: T7632 Differential Revision: https://phab.enlightenment.org/D7671
2019-01-16evas/engines/gl_generic: remove multiclass inheritanceDaniel Kolesa
evas_ector_gl_buffer/evas_ector_gl_image_buffer contained a regular class in extensions list, which is wrong.
2019-01-11efl: refactor all mixinsMarcel Hollerbach
Differential Revision: https://phab.enlightenment.org/D7585
2018-12-28efl gfx_path: remove EFL_GFX_PATH_EVENT_CHANGEDHermet Park
Summary: Here is an additional optmization patch for removing unnecessary updation of path, For instance, let's assume this scenario: If one vg object has 20 path nodes(shapes), and every single nodes would have 50 path changes. (like, append_cubic, append_rect, append_xxx ...); There would 1000 events triggering. Furthermore, if there are 20 vector objects in one view, hese events would be triggered 20000 in one frame. It's insane, actually I could figured out that happens. and it took a lot of cpu consumption in some vector usages. efl_gfx_path_commit() is my idea to avoid this. When path is ready, the path need to get this api call in the last to make object changed properly. @feature Reviewers: #committers, cedric Reviewed By: #committers, cedric Subscribers: segfaultxavi, cedric, #reviewers, #committers Tags: #efl Differential Revision: https://phab.enlightenment.org/D7494
2018-12-26Revert "efl gfx_path: remove EFL_GFX_PATH_EVENT_CHANGED"Hermet Park
This reverts commit 7c38c0c9154b0971ccb8ecf5ea8f15467cfb6662. Oops, didn't intend this patch.
2018-12-26efl gfx_path: remove EFL_GFX_PATH_EVENT_CHANGEDHermet Park
Summary: Here is an additional optmization patch for removing unnecessary updation of path, For instance, let's assume this scenario: If one vg object has 20 path nodes(shapes), and every single nodes would have 50 path changes. (like, append_cubic, append_rect, append_xxx ...); There would 1000 events triggering. Furthermore, if there are 20 vector objects in one view, hese events would be triggered 20000 in one frame. It's insane, actually I could figured out that happens. and it took a lot of cpu consumption in some vector usages. efl_gfx_path_commit() is my idea to avoid this. When path is ready, the path need to get this api call in the last to make object changed properly. @feature Reviewers: #committers, cedric Subscribers: segfaultxavi, cedric, #reviewers, #committers Tags: #efl Differential Revision: https://phab.enlightenment.org/D7494
2018-12-20cmake: remove!Marcel Hollerbach
This build was never complete and also was not maintained probebly. It is also dropped in favour of meson which is cool, merged, works & is fast. Differential Revision: https://phab.enlightenment.org/D7010
2018-12-07ector software: Be careful at alloca() usage.Hermet Park
allocate one spare span memory then reuse it.
2018-12-07evas ector: add software implmentation for masking feature.Hermet Park
This implementation uses Ector_Buffer to generate mask image from vg container, and pass it to Ector engine. Ector renderer could blend this image as a mask. Yet only vg container works as a mask, we could extend shape to support masking later. Still vector gl drawing is not completed, We use software ector buffer to draw on it. This is on progessing.
2018-12-07ector: code refactoring.Hermet Park
make code clean and neat. no logical changes.
2018-12-03meson: use eolian_gen with -SMarcel Hollerbach
this ensures that eolian does not parse installed .eo files Differential Revision: https://phab.enlightenment.org/D7405
2018-11-28ector: fix indentation.Hermet Park
2018-11-28evas ector: Replace renderer preparation responsibility.Hermet Park
Replace fill/stroke renderer preparation of shapes to canvas vg, These renderer now is triggered by their own instances. This cairo change part is missing bym cbf70b32f049583fc0bf7542af7d89d4ef5d50c55.
2018-11-28evas ector: Replace renderer preparation responsibility.Hermet Park
Replace fill/stroke renderer preparation of shapes to canvas vg, These renderer now is triggered by their own instances.
2018-11-28ector: remove quality option.Hermet Park
This option is empty, useless. No plan to support it.
2018-11-23ector software: make a pair of ref/unref.Hermet Park
public_shape missed get xunref, it won't reache to zero reference. @fix
2018-11-23ector renderer: correct indentation.Hermet Park
2018-11-16meson - ector - fix eo dependencies to include all of themCarsten Haitzler (Rasterman)
move subdir after all eo files added to eo file deps var so it can use them all.
2018-11-16meson: cleanup the native-cpu optimization build codeMarcel Hollerbach
you were not able to disable the header checks, so if the header was not there it indicated that you could turn it of. However, the option check was in the has_header if not outside of it. Further more, header checks are done in the subdirectory that is done for header checks, unneccessary cpu_**** flags are removed, global optimization options are added to the global_arguments instead of just the package_c_args, which leads to the fact that also all binaries etc. are build by default with those optimization flags. This also reduces the amount of options to a minimum of 1 option, to just control if there should be the optimization or not. This also changes from host_maschine to target_mschine, since we probebly want to enable the optimization for the target maschine, not the host. Differential Revision: https://phab.enlightenment.org/D7296
2018-11-16meson: fix build breakMarcel Hollerbach
Summary: the optimization that is build here requries a few .eo.h files - so ensure that they are generated before they are used. This fixes the build of efl. Reviewers: ManMower, raster Reviewed By: ManMower Subscribers: cedric, #reviewers, #committers Tags: #efl Differential Revision: https://phab.enlightenment.org/D7295
2018-11-16ector: replace custom _efl_refplace by generic efl_replace.Cedric BAIL
Summary: Depends on D7274 Reviewers: Hermet, smohanty Reviewed By: Hermet Subscribers: #reviewers, #committers Tags: #efl Differential Revision: https://phab.enlightenment.org/D7275
2018-11-16ector: remove deprecated _efl_refplace and _efl_xrefplace.Cedric BAIL
Summary: Depends on D7275 Reviewers: Hermet, smohanty Reviewed By: Hermet Subscribers: #reviewers, #committers Tags: #efl Differential Revision: https://phab.enlightenment.org/D7276
2018-11-16ector: use efl_replace to make sure that no dangling pointer is left being.Cedric BAIL
Reviewers: Hermet, smohanty Reviewed By: Hermet Subscribers: #reviewers, #committers Tags: #efl Differential Revision: https://phab.enlightenment.org/D7273
2018-11-16ector: reorder destructor code to make sure that freed pointer are not ↵Cedric BAIL
possibly accessed during destruction. Summary: Depends on D7276 Reviewers: Hermet, smohanty Reviewed By: Hermet Subscribers: #reviewers, #committers Tags: #efl Differential Revision: https://phab.enlightenment.org/D7277
2018-11-16ector - fix meson build with sse3 on ix86 (32bit)Carsten Haitzler (Rasterman)
2018-11-15ector: fix wrong initalization count reference.Hermet Park
Ector shutdown couldn't terminate engine properly since it's counting statement is wrong.
2018-11-14evas ector: fix memory leaks.Hermet Park
Summary: Make it sure ref/unref pairs. unpaired reference count occures object dangled. @fix Reviewers: #committers Subscribers: cedric, #reviewers, #committers Tags: #efl Differential Revision: https://phab.enlightenment.org/D7270
2018-11-14ector/software: remove duplicate call.Hermet Park