Commit Graph

433 Commits

Author SHA1 Message Date
Jean-Philippe Andre 2e49f60f61 Evas 3d: Fix clang warning
Unused function
2015-04-21 21:08:30 +09:00
Jean-Philippe Andre 8e8444bf35 Evas GL common: Fix clang warnings
Mooooarrr!
2015-04-21 20:11:02 +09:00
Jean-Philippe Andre c98a8eb70a Evas 3d: Fix clang warnings 2015-04-21 20:11:02 +09:00
Jean-Philippe Andre 20dac6d27a Evas: Fix clang warning in generated shaders file
Use const char a[] instead of const char const a[].
2015-04-21 20:11:01 +09:00
Jean-Philippe Andre 9b6db6b3b5 Evas GL: Add some safety code
Set some pointers to NULL to avoid invalid accesses after free.
Move the similar condition for sfc after the make_current check.
2015-04-14 21:19:13 +09:00
Jean-Philippe Andre 404ecdd8d7 Evas GL common: Fix RGB+A textures
Since the shaders system rewrite, RGB+A (used for ETC1+Alpha encoding)
did not work anymore.
2015-04-14 16:37:12 +09:00
Jean-Philippe Andre 99347e9178 Evas GL common: Fix texture preload with RGB+Alpha 2015-04-14 16:37:12 +09:00
Jean-Philippe Andre be40389bea Evas GL common: Fix masking of maps based on RGB+A textures
That's like a case that will never happen.
Apply a map on an image loaded from an ETC1_ALPHA image. Oh, and
also add a mask on top of that.
2015-04-14 16:37:12 +09:00
Jean-Philippe Andre c646b0ace5 Evas GL common: Properly disable texuv3 when only texuv2 is used
Yet another vertex array fix (GL crash).
2015-04-13 17:43:52 +09:00
Jean-Philippe Andre 0c7857024b Evas GL common: Enable vertex arrays only when requested
This should fix Dave's crash with the GL engine.

Indeed the pointer to the color array is passed directly
to the driver, without memcpy. Then, during glDrawArrays, the
driver will try to address it... but it could as well be NULL or
invalid. So, crashes would occur.

Also mark use_vertex as always true. We keep this field only for the
alloc() function.
2015-04-13 17:43:42 +09:00
Jean-Philippe Andre 21c91928d2 Evas GL common: Fix size of vertices data buffer
This actually has more chances of fixing Dave's GL crash.
2015-04-13 13:51:53 +09:00
Jean-Philippe Andre be45a45a26 Evas GL common: Only push color VBO for map when required
Since the new shader selection system is able to check the
value of nomul, we can avoid pushing color when they are not
required (color is opaque white).

Hopefully this will fix Dave's crash (mayyyyybe...)
2015-04-13 11:40:04 +09:00
Carsten Haitzler f022c23166 evas - gl common engine - dont complain on every surace opt fetch
this causes a complint every single frame - not a good idea.
2015-04-12 11:36:28 +09:00
Dongyeon Kim 708c537790 Evas GL: Add missing dlopen for GLX 1.x version
Summary:
For GLX backend, we should dlopen libGL.so*
@fix

Test Plan: Evas GL 1.x test cases

Reviewers: cedric, jpeg

Reviewed By: jpeg

Subscribers: mythri, mer.kim, wonsik, cedric

Differential Revision: https://phab.enlightenment.org/D2322
2015-04-10 16:47:12 +09:00
Dongyeon Kim 3228c376ec Evas GL: remove direct surfaces hash
Summary:
Evas GL surface buffers are allocated at make current time now
rather than surface creation time, and since we pass evas gl surface handle
to the backend, we do not need direct surfaces hash anymore.

Test Plan: elementary test and evas gl test cases

Reviewers: cedric, jpeg

Reviewed By: jpeg

Subscribers: cedric, mythri, mer.kim, wonsik

Differential Revision: https://phab.enlightenment.org/D2320
2015-04-10 16:47:08 +09:00
Dongyeon Kim bbc4222eaf Evas GL: reset current surface to NULL when it is destroyed
Summary:
Hopefully this will fix some of the multiple windows issues for elm glview but not all.
@fix

Test Plan: elementary glview tests

Reviewers: cedric, jpeg

Reviewed By: jpeg

Subscribers: cedric

Differential Revision: https://phab.enlightenment.org/D2317
2015-04-10 16:47:01 +09:00
Oleksandr Shcherbina 364dcab234 [evas/evas_3D] Uninitialized component of vector gl_FragColor in shadow_map shader
Summary:
@fix
During execution example evas-3d-obj, part of 3D objects showed with red ripple.
The reason is not completely initialize component vector gl_FragColor

Reviewers: cedric, Hermet

Reviewed By: Hermet

Subscribers: cedric

Differential Revision: https://phab.enlightenment.org/D2292
2015-04-10 14:26:55 +09:00
mythri.venugopal 0580f88990 Evas GL: Add missed GLES 3.0 functions in evgl_load_gles3_api.
Reviewers: wonsik, spacegrapher, jpeg

Subscribers: cedric

Differential Revision: https://phab.enlightenment.org/D2300
2015-04-08 15:14:43 +09:00
Jean-Philippe Andre f419555cd8 Evas GL: Skip direct rendering check if the surface is indirect
Note: These checks are only for debugging.
2015-04-06 17:24:43 +09:00
Daekwang Ryu 29cb8aeb59 Evas GL: check EvasGL cache file version with micro version
Summary: check EvasGL cache file version with micro version

Reviewers: cedric, raster, jpeg, Sergeant_Whitespace

Reviewed By: Sergeant_Whitespace

Subscribers: Sergeant_Whitespace, cedric, wonsik, spacegrapher, mer.kim

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

Signed-off-by: Jean-Philippe Andre <jp.andre@samsung.com>
2015-04-06 16:32:49 +09:00
Oleksandr Shcherbina e2f11bf4cb Revert "Evas 3D: Fix shadow map shader"
Summary:
This reverts commit 4af7a947a6.
There is more convenient way remove noise in vector gl_Fragcolor at shadow_map
shader, because current decision lead to useless issue with shadow effect.
Need just add default initialize at the begining in shader file smth like that
gl_FragColor = vec4(1);
I suppose do that after this patch.

Reviewers: cedric, raster, Hermet

Reviewed By: Hermet

Subscribers: cedric

Differential Revision: https://phab.enlightenment.org/D2290
2015-04-06 10:45:42 +09:00
Jean-Philippe ANDRE 2748fae3f4 Evas GL common: Fix shaders for GLX
Oops! There had to be a breakage somewhere. That's it :)
Thanks Oleksander Shcherbina for the report.

Fixes T2266.
2015-04-03 17:57:07 +09:00
Jean-Philippe Andre 676c10b153 Evas GL common: Fix GL masking with 12,21,22 sampling
This is a new feature introduced by the shaders refactoring:
even masking shaders now support smooth sampling of the masked image
using the special 12,21,22 shaders.

Also, refactor the list of texture bindings so that it's
automatically generated by the script, as opposed to being a
manual list...
2015-04-03 15:45:07 +09:00
Jean-Philippe Andre 61ab78d3f1 Evas GL common: Fix shader sampling and check nomul
Now that the shader select function checks the values of "sam"
and "nomul", we can avoid sending the color to the shader when
it's a "nomul" shader. This will most likely give a performance
boost of roughly 0.00000001%.
2015-04-03 11:26:14 +09:00
Jean-Philippe Andre f8f1a3e9ed Evas GL common: Factorize GL shader selection code
Improve the shader selection function to handle all possible
cases. Only images really need special handling as they
support so many parameters.
2015-04-03 11:26:14 +09:00
Jean-Philippe Andre a3de2ee3fd Evas GL common: Factorize shader generation code
Remove all individual shaders, factorize everything into
one vertex and one fragment shader. All previous functionality
has been kept as is[*]. Some new features have been added
(new shader types).

This is a first step in simplifying and improving the shaders system.
Next: simplify shader selection

[*] Yeah, that's quite a bold statement here. Maybe I broke everything.
2015-04-03 11:26:13 +09:00
Jean-Philippe Andre 8586b75a2a Evas masking: Remove map_mask shaders
Those are now duplicates of IMG_MASK
2015-04-03 11:26:13 +09:00
Jean-Philippe Andre 1864362aaf Evas masking: Implement polygon masking (GL) 2015-04-01 11:02:18 +09:00
Jean-Philippe Andre e38f5cafd5 Evas masking: Ensure texture is up-to-date before drawing (GL) 2015-04-01 11:02:18 +09:00
Jean-Philippe Andre 2b1e221fd9 Evas GL common: whitespace fixes 2015-04-01 10:42:42 +09:00
Jean-Philippe Andre ed157ee67b Evas masking: Implement line masking in GL
This commit also introduces a few whitespace changes...
2015-04-01 10:39:36 +09:00
Jean-Philippe Andre 740995e089 Evas GL generic: Simplify "scaled" images (used for masking)
Invert the meaning of scaled (w,h), so that im->(w,h) corresponds
to the final scaled size, and the original size is stored directly
in the texture itself.

This simplifies code a little bit.

Also, lift the limitation on the maximum texture size, as those
virtual textures are not limited by GPU texture size.
2015-04-01 09:59:49 +09:00
Jean-Philippe Andre 32009a0e8c Evas masking: Refactor GL code
Use the same method as for map masking:
- Pass absolute geometry of the mask to the push functions,
- Compute absolute position in the shader (like gl_Position)
  and apply scaling factor + offset to sample the mask.

Masking now uses a single vec4 attribute instead of hi-jacking
other vertices.

This way, all masking shaders share the same code and are way
simpler. On the other hand, the vertex shaders have a little bit
more work to do.
2015-04-01 09:53:55 +09:00
Oleksandr Shcherbina 4af7a947a6 Evas 3D: Fix shadow map shader
Summary:
Silly mistake after this b9b5ced501 commit.
Seems uninitialized components of vector gl_FragColor

Reviewers: cedric, Hermet, jpeg

Subscribers: cedric

Differential Revision: https://phab.enlightenment.org/D2258
2015-03-31 08:35:51 +09:00
Dmytro Dadyka efecbef773 [Evas: Evas_3D] Improve shaders math
Reviewers: cedric, jpeg

Subscribers: cedric

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

On many platforms the built-in mix(x, y, a) function faster
than its equivalent x * a + y * (1 - a)
2015-03-25 16:08:32 -07:00
Dmytro Dadyka ea5375f4a2 [Evas: Evas_3D] Refactor shader system: refactored shadow map shade mode.
Reviewers: cedric, jpeg

Subscribers: cedric

Differential Revision: https://phab.enlightenment.org/D2240
2015-03-25 10:37:17 -07:00
Dmytro Dadyka a4d1cfa609 [Evas: Evas_3D] Refactor shader system: refactored parallax shade mode.
Reviewers: cedric, jpeg

Subscribers: cedric

Differential Revision: https://phab.enlightenment.org/D2241
2015-03-25 10:35:43 -07:00
Cedric BAIL dd6db2b603 evas: fix use after free.
Thanks to Thanatermesis for tracking this in T2135.
2015-03-24 23:10:51 +01:00
Jean-Philippe ANDRE c4cd274ad9 Evas 3D: Add forgotten changes after generation of shaders 2015-03-24 11:45:32 -07:00
mythri.venugopal 49b95b9c6c Evas GL: Add missed GLES 3.0 functions.
Summary:
Initialise glVertexAttribDivisor & glVertexAttribIPointer
EvasGL function pointers.

Reviewers: wonsik, spacegrapher, jpeg

Reviewed By: jpeg

Subscribers: cedric

Differential Revision: https://phab.enlightenment.org/D2236
2015-03-24 11:25:34 -07:00
Dmytro Dadyka 06978b210b [Evas: Evas_3D] Refactor shader system: refactored normal map shade mode.
Reviewers: cedric, jpeg

Subscribers: cedric

Differential Revision: https://phab.enlightenment.org/D2232
2015-03-24 10:50:41 -07:00
Dmytro Dadyka 02da66541f [Evas: Evas_3D] Refactor shader system: refactored color pick shade mode.
Reviewers: cedric, jpeg

Subscribers: cedric

Differential Revision: https://phab.enlightenment.org/D2230
2015-03-24 10:50:36 -07:00
Dmytro Dadyka f95136f139 [Evas: Evas_3D] Refactor shader system: refactored diffuse shade mode.
Reviewers: cedric, jpeg

Subscribers: cedric

Differential Revision: https://phab.enlightenment.org/D2229
2015-03-24 10:50:31 -07:00
Dmytro Dadyka ffa7de039c [Evas: Evas_3D] Refactor shader system: refactored vertex color shade mode.
Reviewers: cedric, jpeg

Subscribers: cedric

Differential Revision: https://phab.enlightenment.org/D2228
2015-03-24 10:50:25 -07:00
Dmytro Dadyka 8110ec94f4 [Evas: Evas_3D] Refactor shader system: refactored flat shade mode.
Reviewers: cedric, jpeg

Subscribers: cedric

Differential Revision: https://phab.enlightenment.org/D2224
2015-03-24 10:49:25 -07:00
Dmytro Dadyka ce5a912419 [Evas: Evas_3D] Fix shader code for using with GL_ES
Summary: GL_ES variables precision added.

Reviewers: cedric, jpeg

Subscribers: cedric

Differential Revision: https://phab.enlightenment.org/D2234
2015-03-24 10:43:38 -07:00
Dmytro Dadyka 1bf3ca03f7 [Evas: Evas_3D] Refactor shaders: used m4 for removing duplication of code.
Reviewers: Hermet, raster, cedric, jpeg

Subscribers: cedric

Differential Revision: https://phab.enlightenment.org/D2076
2015-03-23 14:59:19 -07:00
Dmytro Dadyka 9e3244b222 Fix wrong drawing of shadows for some blending modes
Reviewers: cedric, Hermet

Reviewed By: Hermet

Subscribers: cedric

Differential Revision: https://phab.enlightenment.org/D2198
2015-03-20 14:10:00 +09:00
Chris Michael 87263cf0bd evas-gl-common: Fix building when --with-opengl=es
Summary: If we are building for only gles 2.0, then we cannot use
glAlphaFunc else we get compile errors. This adds an #ifndef around
that block to fix building

@fix

Signed-off-by: Chris Michael <cp.michael@samsung.com>
2015-03-19 09:55:52 -04:00
Youngbok Shin e197f8804f evas: Support bitmap embedded color font.
Summary:
Add the code for getting bitmap buffers from embedded color font,
And draw the bitmap buffers as images.
For drawing the bitmap buffers as images,
evas_common_draw_context_font_ext_set internal API is changed to
pass additional gl engine functions.
T2139
@feature

Test Plan:
1. Set a bitmap embedded color font to textblock.
2. Set a unicode emoticon text.
3. See the result.

Please check the sample unicode in the following link.
http://www.fileformat.info/info/unicode/char/1f3af/index.htm
http://www.fileformat.info/info/unicode/char/1f555/index.htm
http://www.fileformat.info/info/unicode/char/2600/index.htm
http://www.fileformat.info/info/unicode/char/263a/index.htm

Reviewers: tasn, woohyun, jpeg, raster

Reviewed By: raster

Subscribers: herdsman, cedric

Differential Revision: https://phab.enlightenment.org/D2084
2015-03-19 19:02:03 +09:00