Commit Graph

296 Commits

Author SHA1 Message Date
Vincent Torri f2111102cf build: fix duplicated use of the variable in multiple Makefile_*.am.
GL_SHADERS_GEN is defined in the Makefile.am of Ector and Evas. As these
Mafile_*.am are included in the same Makefile.am, there is a warning with
multiple defined triggered by automake. So this patch rename these 2 variables

Test Plan: autogen.sH

Reviewers: jpeg, cedric

Differential Revision: https://phab.enlightenment.org/D3711

Signed-off-by: Cedric BAIL <cedric@osg.samsung.com>
2016-02-18 13:37:31 -08:00
Jean-Philippe Andre 596c15af37 Evas: Fix the build... I hope
I forgot to modify some lines. Of course randomness made things
work for me.
2016-01-06 17:56:01 +09:00
Jean-Philippe Andre 83fd51ff68 Evas: Do not install evas_ector_buffer
This is an internal API, should not be installed.
2016-01-06 16:26:01 +09:00
Jean-Philippe Andre 932316e113 Evas: (try to) fix compilation
Not even sure if it's parallel compilation or not... classic case
of works-for-me.

Hopefully this should fix the build for others.
2016-01-05 18:59:22 +09:00
Wonsik Jung 7db9613e8c Evas_Engine: add TBM surface and clean up Native Struct
Summary:
Add TBM surface in wayland and clean up Native struct on Evas Engine.
Previous TBM surface for evas_object_image's native_surface_set is only in Evas X11 backend.
This patch has the code for wayland backend.
In addition, evas_native_tbm.c is moved to software_generic. Becuase this file is common.
And, Native in Evas_Engine is clean-up.

@feature

Test Plan:
TBM surface is tested with spacegrapher's test app(tbm.c) in Tizen Device.
Pixmap surface is tested in ubuntu with same test app.
EvasGL is tested with elementary_test.

Reviewers: jpeg, spacegrapher, raster, cedric

Subscribers: dkdk, scholb.kim, JoogabYun

Differential Revision: https://phab.enlightenment.org/D3501
2016-01-05 17:01:45 +09:00
Jean-Philippe Andre c1b4728487 Evas filters: Final fix after the ector refactor
This implements a generic way of scaling buffers, using fake
RGBA_Image wrapping ector buffer maps. The underlying algo is
still the good old linear sw scaler.

Now the filters *should* be back to their previous level of
usability. Performance will probably be even worse than it was
before, for GL, as more glReadPixels may be involved. Optimization
now consists in actually implementing the filters with GL shaders.
2016-01-05 16:02:27 +09:00
Jean-Philippe Andre 6696112691 Evas filters: Add GL buffer backed by RGBA_Image
Dumb implementation of a "smart" buffer capable of wrapping an
RGBA_Image but that can still be rendered on screen (ie, an
Evas_GL_Image is attached to it).
2016-01-05 15:43:44 +09:00
Jean-Philippe Andre a02c810059 Evas: Fix make check after ector gl work
evas_ector is not meant to be public so remove it from
the C++ bindings
2016-01-05 15:43:44 +09:00
Jean-Philippe Andre dc4790e08b Ector GL: Add skeletton for Evas.Ector.GL.Image.Buffer
This is an ector buffer backed by an existing Evas_GL_Image
2016-01-05 15:43:44 +09:00
Jean-Philippe Andre 7a8879ba8b ector: add engine-specific evas image buffer wrapper
Since Evas still relies entirely on Image_Entry and Evas_GL_Image,
we will need an engine-specific wrapper object creating a Buffer
around an existing cached image.

Currently only SW support is implemented. GL will be more fun to
do (with glReadPixels and whatnot).
2016-01-05 15:43:43 +09:00
perepelits.m e6bba4d91c [Evas] Refactor model's savers and loaders.
Summary:
Move common part to a separated document.
Make code more readable using smaller functions. (from Task T2713)

Everything is OK with make check.

Reviewers: cedric, raster, Hermet, stefan_schmidt

Reviewed By: stefan_schmidt

Subscribers: jpeg, artem.popov

Differential Revision: https://phab.enlightenment.org/D3430
2015-12-29 13:28:56 +09:00
Felipe Magno de Almeida a3db1dddd3 efl-js: JavaScript Eolian binding
To configure efl sources with bindings to use in nodejs add ––with-js=nodejs in configure flags to generate node files

$ configure --with-js=nodejs

and compile normally with:

$ make
$ make install

To use, you have to require efl:

efl = require('efl')

The bindings is divided in two parts: generated and manually
written. The generation uses the Eolian library for parsing Eo files
and generate C++ code that is compiled against V8 interpreter library
to create a efl.node file that can be required in a node.js instance.

@feature
2015-12-23 23:59:40 -02:00
Jean-Philippe Andre 4bcd2fa0f0 Revert "Evas: Refactor model's savers and loaders."
This reverts commit 01a32f64c0.

This broke make check with the following error:
evas_test_mesh.c:123:F:Meshes:evas_object_mesh_loader_saver:0: Failure 'res == 1' occurred

Reopen https://phab.enlightenment.org/D3420
2015-12-10 18:21:09 +09:00
perepelits.m 01a32f64c0 Evas: Refactor model's savers and loaders.
Summary:
Move common part to a separated document.
Make code more readable using smaller functions. (from Task T2713)

I did it again because somehow test is passing now. It seems like this test suite is unstable.
Please, let me know if there are any errors after running distcheck.

Reviewers: cedric, raster, Hermet, stefan_schmidt

Subscribers: jpeg, artem.popov

Differential Revision: https://phab.enlightenment.org/D3420
2015-12-10 16:50:06 +09:00
Jean-Philippe Andre b6ead19a94 Evas: Fix build for ubuntu... again
See 75fed54f0e
Apparently the proper CFLAGS are not set for SSE compilation.
SSE flags are set only for a specific file (now 2 of them).

As usual, it was worksforme but not for others. This should probably
fix that. Thanks Sub for the report and testing this solution.
2015-12-09 17:01:54 +09:00
Jean-Philippe Andre 31984449a5 Evas filters: Move 'fill' to its own file 2015-12-09 11:45:34 +09:00
Jean-Philippe Andre 75fed54f0e Evas: Add all 'draw' files to evas static lib
This should fix the build on old Ubuntu. I didn't get this error myself,
but apparently the following issue happened:

  CCLD   lib/ecore_evas/libecore_evas.la
lib/evas/.libs/libevas.so: undefined reference to `efl_draw_neon_init'
lib/evas/.libs/libevas.so: undefined reference to `efl_draw_sse2_init'
collect2: ld returned 1 exit status

Thanks @mer.kim for the report
2015-12-09 10:36:00 +09:00
Stefan Schmidt 96a9d75e0c Revert "evas: refactor model's savers and loaders."
This reverts commit 32c33ed64d.

This refactor broke the evas test cases for the model loaders and savers. I gave
it a week to get fixed but a first try did not succeed and its blocks a lot of
other automated testing. To be honest, it should have never gone it when it
breaks existing test cases. Once fixed this refactor can happily go in.

Fixes T2905
2015-12-08 22:33:05 +01:00
Stefan Schmidt 842a75423f Revert "build: fix distcheck after model saver and loader rework"
This reverts commit a7a2781a00.

Fix for a commit that needs reverting so we need to revert this patch as well.
See next commit or bug number for details.

Ref T2905
2015-12-08 22:32:16 +01:00
Jean-Philippe Andre 8f4018b690 Evas filters: Implement mix3 func for rgba masking
This operation was faked by running a mul and a blend ops. Now
they are combined into one. A GL shader should also be able
to do this in a single pass.
2015-12-04 16:10:06 +09:00
Jean-Philippe Andre b5500a8644 Evas: Move alpha functions to static_libs/draw
This is a pretty simple code refactor, moving pixel handling
to the new draw lib.
2015-12-03 18:42:50 +09:00
Jean-Philippe Andre 4bcea3eada Ector: Move cairo surface back to ector
The original plan was to have two different surfaces for GL and SW,
but this is probably not going to happen anytime soon. So, move
the implementation back to lib/ector. This avoid a file duplication.
2015-12-03 18:42:50 +09:00
Jean-Philippe Andre 52ec3d2d7e Ector: Rename C files to match their EO counterparts 2015-12-03 18:42:50 +09:00
Jean-Philippe Andre 615b2442b7 Ector: Move drawhelper to static_libs
Rename a few things:
 - draw helper -> efl_draw
 - Ector_Rop -> Efl.Gfx.Render_Op
 - ECTOR_ bla bla -> DRAW_ bla bla (base pixel ops)
 - ector_memfill -> draw_memset32 (and invert arg order to match memset)

The main rasterizer file is now draw.h in static_libs/draw
This is a non functional change, simple code refactor.
2015-12-03 18:42:50 +09:00
se.osadchy ce4146ec63 evas: fix bug with logic with eina_matrix in evas_3d_utils
Summary: Also need to fix logically dead code in coverity.

Reviewers: raster, Hermet, cedric

Subscribers: jpeg

Maniphest Tasks: T2832

Differential Revision: https://phab.enlightenment.org/D3346

Signed-off-by: Cedric BAIL <cedric@osg.samsung.com>
2015-12-02 14:15:01 -08:00
Stefan Schmidt a7a2781a00 build: fix distcheck after model saver and loader rework
32c33ed64d broke distcheck here as the header
files would not be included in the generated tarballs. This is the second or
third time I fixed soemthing like this after a loader/saver rework. I would
appreciate if the people involved would run distcheck on their own.
2015-12-02 11:33:12 +01:00
perepelits.m 32c33ed64d evas: refactor model's savers and loaders.
Summary:
Move common part to a separated document.
Make code more readable using smaller functions. (from Task T2713)

Reviewers: cedric, raster, Hermet

Subscribers: artem.popov

Differential Revision: https://phab.enlightenment.org/D3373
2015-12-01 16:39:29 -08:00
Daniel Hirt 40dfc4a45d Evas textblock: add support for hyphenation wrap style
We now support hyphenation in style. Use "wrap=hyphenation" to use this
wrap option. It will hyphenate based on explicit SOFT HYPHEN (&shy;)
placement in the text, and with the (optional) assistance of dictionaries
compatible with Hunspell's "hyphen" library.

This wrap mode favors breaking at hyphen positions in a word, over moving
the whole word to the next line. It will put an additional "-" at the
break position if it was hyphened.

Enabling the hyphen dictionaries is done by adding these configure
options:
  --enable-hyphen (requires Hunspell's "hyphen" library installed)
  --with-dictionaries-hyphen-dir=DIR (specifies the install location of
          the actual .dic dictionary files e.g. /usr/share/hyphen)

Note that dictionary files are expected to be in the form of "en_US.dic"
or anything that ends with it e.g. "hyph_en_US.dic" (this how they are
        named in Arch Linux).

@feature
2015-11-24 14:31:05 +02:00
Youngbok Shin a9b4be11e1 Evas object: Add paragraph_direciton APIs
Summary:
It adds evas_object_paragraph_direction_set, get APIs.
The APIs set or get paragraph direction to/from the given object.
It changes BiDi calculations and affect the direction and aligning of text.
It doesn't have any effect to text without Fribidi library.

The default paragraph direction is EVAS_BIDI_DIRECTION_INHERIT.
If dir is EVAS_BIDI_DIRECTION_INHERIT, paragraph direction is changed
according to smart parent object. If there is no smart parent object,
paragraph direction works as EVAS_BIDI_DIRECTION_NEUTRAL.

@feature

Test Plan:
Test cases included to the following files.
- evas_test_textblock.c
- evas_test_text.c
- evas_test_object_smart.c

Run "make check".

Reviewers: woohyun, raster, herdsman, tasn

Subscribers: c, raster, cedric

Differential Revision: https://phab.enlightenment.org/D1690
2015-11-19 11:43:39 +00:00
Stefan Schmidt 50108c9f1b evas: add forgotten file to SOURCES to fix distcheck
Added in 8ab190daec but forgotten to be added
to the SOURCES.
2015-11-12 15:01:29 +01:00
Joogab Yun 8f52b2d877 Evas software_x11: add DRI2-x11 support at image_native_set()
Summary: add DRI2-x11 feature at image_native_set() on Software-x11

This is based on TBM, which means Tizen platform.

Reviewers: spacegrapher, wonsik, raster, jpeg

Subscribers: scholb.kim, dkdk, cedric

Differential Revision: https://phab.enlightenment.org/D3291
2015-11-11 14:37:28 +09:00
Jean-Philippe Andre 38ad8fda8d Evas GL: Implement runtime generation and load of shaders
Instead of generating the shaders at compile-time, do this at
runtime. Also load only the required shaders in memory.

This saves 25000 LOC, lots of strings inside the .so files
and save a non negligible amount of memory since those shader
binaries can weigh a few megabytes in total.

The current shader selection mechanism is a bit complex and
uses eina_hash_int32 but this can be optimized later if it's
deemed too slow.
2015-11-10 16:12:20 +09:00
Bogdan Devichev 8ab190daec evas: add common part of savers and loaders.
Summary:
Common part will make savers and loaders shorter and easier for understanding and refactoring.
https://phab.enlightenment.org/T2713 - due to this task.
Should be merged after https://phab.enlightenment.org/D3030

Should be merged to start adding refactored savers and loaders.

Reviewers: Hermet, raster, Oleksander, cedric

Subscribers: cedric

Differential Revision: https://phab.enlightenment.org/D3038

Signed-off-by: Cedric BAIL <cedric@osg.samsung.com>
2015-11-09 15:27:26 -08:00
Bogdan Devichev f416f5adde evas: move model save/load from common to common3d.
Summary:
Move model save/load to common3d.
Here also will be common algorithms  and structures which will be used in all loaders and savers.
See task https://phab.enlightenment.org/T2713.

Reviewers: cedric, Hermet, raster, Oleksander

Subscribers: cedric

Differential Revision: https://phab.enlightenment.org/D3030

Signed-off-by: Cedric BAIL <cedric@osg.samsung.com>
2015-11-09 15:27:26 -08:00
Jean-Philippe Andre 4a830877f0 Evas GL shaders: Simplify a bit the shaders code
Following raster's change, the Program_Source struct is useless.
This is a big commit, again, but really all is auto-generated.
2015-10-19 20:27:22 +09:00
Carsten Haitzler 7b568a6152 evas gl fix color on bigendian with gl engine
this fixes rendering on ppc (bigendian) where we have thnigs swizzled
oddly. not bgra -> argb but rgba -> grab ...

so generate a bigendian shader file and use if on bigendian.

this should fix T2721

it fixes it in the visual screenshots i can get remotely.
2015-10-18 12:49:11 +09:00
Jean-Philippe Andre 93298d6dc2 Evas GL: Add a test case for Evas GL (make check)
For now this only covers SOME of Evas GL's functions.

It will try to run with opengl_x11 and buffer (OSMesa). It'll also
try to fail silently if the engine initialization failed, or if
OSMesa could not be found. If the engines work, then Evas GL must
work properly.
2015-10-14 20:14:51 +09:00
Stefan Schmidt c130b9e307 evas: include new header file in build to fix distcheck
Introduced in 72b13c3ebb the new header was
not deployed and thus not available in the tarball.
2015-10-01 12:21:52 +02:00
Carsten Haitzler 49adf8aa47 evas tiler update handler - move to region code to be accurate and fast
this move evas tiler that does update handling to use fully correct
regions using region.[xh]. this also removed old unused regionbuf code
and a bunch of commented out code no longer needed. much simpler now
and easier to maintain.
2015-09-24 14:09:09 +09:00
Stefan Schmidt f38fffa576 evas/gl_common: add new header files to build to make them available for dist 2015-08-27 16:42:18 +02:00
Nicolas Aguirre d990a7b12a Revert "Adds support of the eglfs module in the autotools config"
This reverts commit 3b2074aa71.
2015-08-03 14:34:57 +02:00
Florent Revest 3b2074aa71 Adds support of the eglfs module in the autotools config 2015-08-03 14:16:35 +02:00
Carsten Haitzler ec59636da4 evas - render2 - ensure region files are in dist 2015-07-25 22:34:17 +09:00
Jean-Philippe Andre 0446619355 Evas filters: Mark API as @beta
Until we're happy with it, keep the API as beta.

The EDC support should not change, and the Lua either, but the
API could potentially still change to accomodate for new needs
(vector graphics, anyone?). If we're happy with the current
interface, then we can remove the @beta flags.
2015-06-25 14:36:10 +09:00
Jean-Philippe Andre 64fd278c62 Evas filters: EO-ify the filters API
This creates the new interface
 Efl.Gfx.Filter

And the implementation is a mixin (evas_filter_mixin.c):
 Evas.Filter

All the filter rendering code has now been moved to this
new file. TODO: Merge image filtering.
2015-06-25 14:36:09 +09:00
Jean-Philippe Andre f3e16bc485 Evas filters: Implement Lua classes for colors & buffer
Reuse previous code for buffer. Keeps API stability.

The new class "color" is here for a more convenient color
representation. This way, colors can be represented in more
natural ways like: {r,g,b[,a]}, 0xaarrggbb, "red", "#rrggbb"

Class color is implemented in pure Lua, and adds a .lua file
to Evas' share folder.
2015-06-25 14:36:08 +09:00
Oleksandr Shcherbina d409df1caa evas: change interface evas_3d to evas_canvas3d
Summary:
Regard to https://phab.enlightenment.org/T2479 it is need for right generation
Eolian files

Reviewers: cedric

Subscribers: cedric, tasn

Differential Revision: https://phab.enlightenment.org/D2711

Signed-off-by: Cedric BAIL <cedric@osg.samsung.com>
2015-06-17 17:52:17 +02:00
Jean-Philippe Andre 4af5cba8e9 Evas: Remove shader_3d .x generated file from BUILT_SOURCES
This should fix the build after make clean.
Even though those .x files can be re-generated at compile time, they
are checked in in Git and shipped in tarballs. They must not be removed
during make clean.

Thanks Ross Vandegrift for the report.

@fix
2015-06-16 12:03:51 +09:00
Stefan Schmidt e644fd6a8c evas/render2: Put evas_render2_th_main.c in EXTRA_DIST to ship it in the tarball
We are not able to put it in SOURCES as it is not possible to compile this as
standalone object out of the context it is included in.
2015-06-10 10:08:39 +02:00
Chris Michael ee593050f1 evas-gl-drm: Rework gl_drm engine to function again
Summary: Previous gl_drm evas engine code did not work properly (or at
all really). This reworks/refactors the gl_drm engine code to work
again with the changes made to ecore_drm.

@fix

Signed-off-by: Chris Michael <cp.michael@samsung.com>
2015-06-05 10:00:44 -04:00