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.
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...)
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
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
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
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
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
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...
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%.
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.
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.
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.
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)
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>