Commit Graph

185 Commits

Author SHA1 Message Date
Sung W. Park 64aa5a2670 evas: evas_gl - Got rid of resource pool in favor of creation on demand.
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.
2013-03-04 20:23:49 +09:00
Rafael Antognolli 3d0bd026ba evas/wayland_shm: Add evas_swapper_reconfigure().
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.
2013-02-28 12:48:41 -03:00
Christopher Michael ba86389448 Fix valid variable check.
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>
2013-02-27 10:19:06 +00:00
Christopher Michael 2fb518a691 Fix incorrect variable check.
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>
2013-02-27 10:17:55 +00:00
Rafael Antognolli 792413ebb6 evas/wayland_egl: Fix build error caused by wrong assignment. 2013-02-26 11:20:04 -03:00
Henrique Dante de Almeida ca8fc827a3 efl: Fixes to support compiling with CFLAGS=-Werror
This allows compiling with gcc 4.7.2 without errors (using the
default configuration).
2013-02-26 10:55:04 -03:00
Christopher Michael cbc203e0bf Evas: Fixed wrong EINA_UNUSED usage in the gl_x11 engine. 2013-02-26 13:52:54 +00:00
Henrique Dante de Almeida 211c33ff6e evas: Deal with double glShaderSource signature
The function glShaderSource may have 2 signatures:
http://stackoverflow.com/questions/12586695/signature-difference-in-openglshadersource-between-opengl-es-2-revisions
http://www.opengl.org/sdk/docs/man/xhtml/glShaderSource.xml
http://www.khronos.org/opengles/sdk/docs/man/xhtml/glShaderSource.xml

This patch changes all internal signatures to use the most restrictive signature.
2013-02-26 10:17:28 -03:00
Carsten Haitzler 683e5d7d08 Fix evas GL common engine to have a shader to do oversampling on
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).
2013-02-26 22:07:30 +09:00
Christopher Michael 1b5ffada1b Evas: Fixed wrong if in the x11 engine. 2013-02-25 10:35:54 +00:00
Stefan Schmidt 5e99f9b968 Revert "Refactor evas_sw_xlib_outbuf to allocate less in case of rotations."
This reverts commit 139737247d.

THis fix was completely wrong.

Conflicts:

	ChangeLog
2013-02-20 17:21:30 +00:00
Rafael Antognolli 8be4940bb3 evas/wayland_shm: Remove x,y offsets from swapbuf related APIs.
These offsets can be calculated later during the resize operations.
2013-02-19 10:42:39 -03:00
Rafael Antognolli dc0d88df9c ecore_evas/wayland_shm: Fixed window resize.
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.
2013-02-19 10:18:03 -03:00
Christopher Michael cf67e69b50 Fix swapper to take resize edges into account.
Signed-off-by: Christopher Michael <cp.michael@samsung.com>
2013-02-19 10:18:03 -03:00
Christopher Michael 232ea5b875 Fix function prototypes to take resize edges into account.
Signed-off-by: Christopher Michael <cp.michael@samsung.com>
2013-02-19 10:18:03 -03:00
Christopher Michael 899e4f745c Fix swapbuf setup to take resize edges into account.
Signed-off-by: Christopher Michael <cp.michael@samsung.com>
2013-02-19 10:18:02 -03:00
Christopher Michael 5dde66b4e4 Fix function prototypes to take x & y as params. Fix functions to take x & y as params (for resize edges).
Signed-off-by: Christopher Michael <cp.michael@samsung.com>
2013-02-19 10:18:02 -03:00
Christopher Michael c95160baae Fix swapper_setup function prototype to take x & y as params.
Signed-off-by: Christopher Michael <cp.michael@samsung.com>
2013-02-19 10:18:02 -03:00
Christopher Michael e4aae7301f Add x & y to Output buffer.
Signed-off-by: Christopher Michael <cp.michael@samsung.com>
2013-02-19 10:18:02 -03:00
Christopher Michael f541b8af90 Add edges struct to engine information.
Signed-off-by: Christopher Michael <cp.michael@samsung.com>
2013-02-19 10:18:02 -03:00
Ivan Briano 61b8e2aefe More removal of \r 2013-02-17 14:53:25 -03:00
Ivan Briano d0c0a21240 Remove \r from end of line.
No functional changes here.
2013-02-17 14:30:11 -03:00
Paulo C. A. Cavalcanti Jr 04e660c5c7 evas: Introduce pixel_alpha_get()
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.
2013-02-16 11:14:40 +01:00
Carsten Haitzler f4da5922d3 swapper -> use buf pitch, not swp->w * 4 ... if we have a buf and
pitch. :) (tnks wonsik!)



SVN revision: 83889
2013-02-14 10:39:59 +00:00
Carsten Haitzler 4452fad7a3 fix up apparent problem with egl context and sizing/rotation... need
to test more though.



SVN revision: 83878
2013-02-14 03:27:23 +00:00
Stefan Schmidt a9b1e78916 efl/evas: Remove stray ; from evas_gl_core.
SVN revision: 83830
2013-02-11 15:03:56 +00:00
Daniel Willmann 139737247d Refactor evas_sw_xlib_outbuf to allocate less in case of rotations.
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
2013-02-08 15:49:50 +00:00
Carsten Haitzler dbaf2b8fde and handle rotated swapbuf if bufsz doesnt match... PROPERLY.
SVN revision: 83781
2013-02-08 12:22:04 +00:00
Rafael Antognolli d74b652b29 evas/wayland_egl: Fix Evas pointer assignment.
Don't assign the public data to an Evas *.

SVN revision: 83778
2013-02-08 11:50:06 +00:00
Carsten Haitzler 5a80685803 swapper infra work - handle if buffer sizes dont match... :)
SVN revision: 83764
2013-02-08 07:23:31 +00:00
Christopher Michael c951fb5a2d Use palette mode none for conversion.
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
2013-01-29 14:40:21 +00:00
Rafael Antognolli 9afa66d722 evas/wayland_egl: Add do_async flag to this engine, but don't use it.
SVN revision: 83389
2013-01-28 20:00:03 +00:00
Christopher Michael 5df48569c8 Free the swapper when we remove the Outbuf.
Signed-off-by: Christopher Michael <cp.michael@samsung.com>

SVN revision: 83378
2013-01-28 08:31:22 +00:00
Carsten Haitzler a8b7d8551d oops - forgot to free swapper on swapbuf free! :)
SVN revision: 83377
2013-01-28 04:00:36 +00:00
Christopher Michael def83a6eb1 Add logging function macros
Signed-off-by: Christopher Michael <cp.michael@samsung.com>

SVN revision: 83294
2013-01-24 12:15:11 +00:00
Christopher Michael cfbdc648d1 Add logging functions
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
2013-01-24 12:15:07 +00:00
Christopher Michael b8a9d67c88 Add code to delete the shm pool when we destroy the swapper.
Signed-off-by: Christopher Michael <cp.michael@samsung.com>

SVN revision: 83291
2013-01-24 09:59:50 +00:00
Christopher Michael 76dea59613 Rewrite swapper code to use One shm pool and allocate buffers from
that pool.

Signed-off-by: Christopher Michael <cp.michael@samsung.com>

SVN revision: 83290
2013-01-24 09:21:40 +00:00
Christopher Michael e645261b95 Remove 'return' in idle_flush.
Signed-off-by: Christopher Michael <cp.michael@samsung.com>

SVN revision: 83289
2013-01-24 09:21:37 +00:00
Christopher Michael 801cfc567d Use eina_rectangle_free
Signed-off-by: Christopher Michael <cp.michael@samsung.com>

SVN revision: 83288
2013-01-24 09:21:34 +00:00
Christopher Michael fdd0a37c61 Add onebuf field to Outbuf struct.
Signed-off-by: Christopher Michael <cp.michael@samsung.com>

SVN revision: 83287
2013-01-24 09:21:30 +00:00
Christopher Michael 0e6b2ad6f7 Reset Render_Engine onebuf if it was set previously.
Signed-off-by: Christopher Michael <cp.michael@samsung.com>

SVN revision: 83286
2013-01-24 09:21:27 +00:00
Christopher Michael e1fdc232e1 Use eina_rectangle_free to free the rect.
Be sure to increment i here.

Signed-off-by: Christopher Michael <cp.michael@samsung.com>

SVN revision: 83285
2013-01-24 09:21:24 +00:00
Christopher Michael 95d6577c2d Add function prototype for swapper_idle_flush.
Signed-off-by: Christopher Michael <cp.michael@samsung.com>

SVN revision: 83284
2013-01-24 09:21:21 +00:00
Christopher Michael fd2c68dbf2 Add a swapper_buffer_idle_flush function to loop the Wl_Buffer
structures inside the swapper and release memory of any invalid ones.

Signed-off-by: Christopher Michael <cp.michael@samsung.com>

SVN revision: 83283
2013-01-24 09:21:18 +00:00
Christopher Michael 913d0cd170 Add code to handle idle_flush which will release memory that is unused
by invalid buffers.

Signed-off-by: Christopher Michael <cp.michael@samsung.com>

SVN revision: 83282
2013-01-24 09:21:15 +00:00
Christopher Michael f785c9fc21 Support an environment variable to set the number of buffers (double
buffer by default).

Signed-off-by: Christopher Michael <cp.michael@samsung.com>

SVN revision: 83281
2013-01-24 09:21:12 +00:00
Christopher Michael 18ba710320 Double buffer by default.
Signed-off-by: Christopher Michael <cp.michael@samsung.com>

SVN revision: 83280
2013-01-24 09:21:09 +00:00
Christopher Michael 313e82c680 Rename the env variable that we will check for buffering support.
Signed-off-by: Christopher Michael <cp.michael@samsung.com>

SVN revision: 83279
2013-01-24 09:21:06 +00:00
Christopher Michael 949d008b13 Check for valid wl_shm before trying to create the shm pool.
Signed-off-by: Christopher Michael <cp.michael@samsung.com>

SVN revision: 83277
2013-01-24 09:21:01 +00:00