Resource contexts/surfaces are used for creating resources within Evas_GL.
In oder to handle Evas_GL runnig from different thread than the main one,
a resource context/surface pool was used. This turned out to be unnecssary
as they are not used very frequently. So, I got rid of the pool and
made the resources create as needed.
This can be used to reconfigure a swapper to another size, without the
need to destroy the swapper itself.
Although the shm pool is not being reused even when reconfiguring to a
smaller size, it could easily be.
This change is done right now only to keep the dx and dy offsets of a
previously requested swapper, which were not still used.
When doing double/triple buffering, and we go to merge the rectangles,
if we are triple buffering then we should not use the double-buffer
rectangles as a valid check for triple-buffer rectangles.
Signed-off-by: Christopher Michael <cp.michael@samsung.com>
When using swapping (double/triple), and we go to merge rectangles,
then we should check for a valid triple buffer (not double) before
trying to merge the 3rd buffer rectangles.
Signed-off-by: Christopher Michael <cp.michael@samsung.com>
downscaling. This makes quality much better and "at best"
equates to a 16 point sample (2x2 linear interpolation samples,
where a linear interpolation sample equates to a 2x2 sample).
This will have perfomance impact, but the quality is worth it and
makes it closer to software downscaling in quality. It supports
2x2, 2x1 and 1x2 oversampling. YUV not done, nor image mask
(font shaders not needed).
Using the server_allocation/allocation to determine the resize offset
was not completely precise, and causing the window to not always resize
correctly.
Additionally, calling evas_engine_info_set() on every resize step caused
the window content to blink and resize very slow, because the swap
buffer, swapper, and everything were being destroyed and recreated. Now
only the swapbuf_reconfigure is being called during the resize, which is
way faster.
The _pixel_alpha_get() function used in evas_object_image_is_inside won't
work with engines other than software - since it relies on engine data
being *always* RGBA_Image * - which is wrong for OpenGL backend that uses
Evas_GL_Image * for "engine_data" pointer.
Previously whenever evas_software_xlib_outbuf_new_region_for_update was
called for images that were rotated (!= 0) we created a new
evas_cache_image. This resulted in (quite severe) memory spikes whenever
an image was rotated.
Now we try to get the original image first and only if that fails allocate
a new one.
TDevilhorns is already working on the port to the xcb backend.
Signed-off-by: Daniel Willmann <d.willmann@samsung.com>
Signed-off-by: Stefan Schmidt <s.schmidt@samsung.com>
SVN revision: 83789
Comment out idle_flush (for now) as it is causing some segfaults with
elm_win_util_standard_add for some strange reason.
Signed-off-by: Christopher Michael <cp.michael@samsung.com>
SVN revision: 83436
Remove dead commented out code
Do not call wl_surface_attach if the buffer is the same as the one
already attached.
Signed-off-by: Christopher Michael <cp.michael@samsung.com>
SVN revision: 83293