Commit Graph

180 Commits

Author SHA1 Message Date
Cedric BAIL 26ee52dd61 evas: add NV12 and MT12 colorspace.
MT12 is has documented in Linux videodev documentation
a 64 * 32 macro block tiled colorspace format used on
Samsung hardware.


SVN revision: 62967
2011-08-29 20:56:48 +00:00
Sung W. Park f3d21a04d0 From: "Sung W. Park" <sungwoo@gmail.com>
Subject: [E-devel]  [Review] [Patch] Evas_GL bug fixes/updates


I've fixed some minor issues that I've been pushing off for later.

The patch does the following:

1. Evas_GL and Evas had an issue where the viewport parameters were
being reset in the wrong context. Previously, this issue was temporarily
patched by flushing evas' pipeline and setting
evas_gl_common_context_use(NULL) in EvasGL's
make current. I know, it was pretty hacky. It turns out that in
evas_engine,
there was a code evas_gl_common_context_resize(NULL) without doing
eng_window_use() first.  So i've added that part and problem went was
resolved properly. :-)

2. Naturally, I've taken out the temporary patch from 1.

3. I've added code that took care of glBindFramebuffer(..., fbo) where
the
fbo had to be saved and restored in case the user wanted to use his
own fbo.
Also, I've had to take care of the case when fbo is 0 since 0 need to
point
to evas_gl surface.

4. I've updated make_current a little as well.



SVN revision: 62780
2011-08-25 06:30:52 +00:00
Jiyoun Park 4b59fd460e From: Jiyoun Park <jy0703.park@samsung.com>
Subject: [E-devel] [Patch] evas gl engine's texture creation

Hello. 

1. _pool_tex_dynamic_new function, it didn’t set pt to NULL when secsym_eglCreateImage function failed.
In this case, it returns wrong pt pointer and it has possibility to make crash.
So I add free pt code and return NULL code into _pool_tex_dynamic_new function.

2. I modified eng_image_data_get of gl engine.

If Evas_GL_Image's texture creation failed and evas_gl_image's cache image was droped, 
Im->im can be NULL. So I add check code. 
Example: evas_gl_common_image_content_hint_set
     1) EVAS_IMAGE_CONTENT_HINT_DYNAMIC , it drop cache image
     2) if evas_gl_common_texture_dynamic_new failed
     3) then, im->im =NULL, im->tex=NULL
        In this situation, if application call's evas_object_image_data_get function, 
It make crash in evas_cache_image_load_data function.

3. I think function's related with evas_object's engine data have to be return NULL if it failed.
If function's returns null, evas object code can handle error more easily.  
But evas object's code was implemented differently each case. Does my suggestion right?
I add engine data null check code to evas_object_image based on upper consumtion.
If it is wrong , the patch code related with evas object image have to be removed.
If it is right , I will survey other evas object type also.  



SVN revision: 62775
2011-08-25 04:48:45 +00:00
Cedric BAIL 7ae4bd0f31 evas: add YUY2 shader to GL engine.
TODO: add NV12 and NV12T to evas.


SVN revision: 62721
2011-08-23 15:13:40 +00:00
우승수 f34ac1e24a From: 우승수 <om101.woo@samsung.com>
Subject: [E-devel] [Patch] Map/Unmap image for zero-copy texture

this modifies the zero copy texture feature to map and unmap on get and put
data to allow the put to "flush gpu caches".



SVN revision: 62493
2011-08-16 07:06:36 +00:00
Daniel Juyung Seo 3277e6b5e0 evas: Fixed indentations with arbitrary files.
SVN revision: 62370
2011-08-12 03:50:57 +00:00
Jiyoun Park dae46003e7 From: Jiyoun Park <jy0703.park@samsung.com>
Subject: RE: [E-devel] [Patch] Animation gif feature patch

Animated gif suport in evas and api's to handle animated images and
frame flipping. from jy.



SVN revision: 62331
2011-08-11 06:04:08 +00:00
ChunEon Park 5440167a6d evas/evas_engine - patched by Seung-Soo Woo <om101.woo@samsung.com>
Dear all,

eng_image_stride_get() of gl backend get fault stride value.
In case of using dynamic image, it get from dyn.w*4.
But, dyn.stride was already got from secsym_eglGetImageAttribSEC() in _pool_tex_dynamic_new().
dyn.stride can be changed according to DDK.
So, the stride needs to get from dyn.stride.

Please find enclosed file.

Thanks.



SVN revision: 61463
2011-07-18 05:32:06 +00:00
ChunEon Park 6852dc4971 evas/evas_engine - patched by Seung-Soo Woo.
Dear all,

There is a below issue.

Problem : Evas gl engine call eglWaitNative() and eglWaitGL() before/after eglSwapBuffers().
The sync APIs are not call only in case of SGX_DDK.
Resolution : It is necessary to check MALI string too.

So, I fixed it.
Please find enclosed file.

Thanks.



SVN revision: 61226
2011-07-11 06:29:20 +00:00
Iván Briano 541012930b Fix building gl_xlib as a static module
SVN revision: 61164
2011-07-09 01:47:01 +00:00
Carsten Haitzler 7e9a7c59df actually - we dont need to clear at all. rely on engine alpha
returning right value and let evas_render do it.



SVN revision: 60748
2011-06-28 08:11:07 +00:00
Carsten Haitzler 5e6d04feaf fix clear of gl buffer for alpha dest gl engine rendering
SVN revision: 60724
2011-06-27 08:35:59 +00:00
Vincent Torri 18d1e68924 whitespaces--------
SVN revision: 60426
2011-06-17 07:47:28 +00:00
Carsten Haitzler 6b8645a8b4 from sungwoo <- fix gl context setup with evas_gl when working between
windows.



SVN revision: 60257
2011-06-13 06:03:00 +00:00
Christopher Michael 01c5c9f340 Evas: GL_X11 engine: Do not set UNUSED on variables that we actually
use and remove some extra whitespace between functions.



SVN revision: 60153
2011-06-09 19:25:21 +00:00
Carsten Haitzler 5d2bd283c3 disable evas filter code. buggy. doesn't work right.
SVN revision: 59898
2011-06-02 10:40:43 +00:00
Carsten Haitzler 3fa85660f8 fix gl engine make current impl (for ne evas gl stuff so no chlog
needed)  to handle make current return value right



SVN revision: 59834
2011-05-31 07:10:37 +00:00
Lucas De Marchi 10237c5b56 evas: fix misspellings
Misspellings found by codespell



SVN revision: 59822
2011-05-30 16:45:08 +00:00
Tom Hacohen a8ddf9b1f8 Evas engines: Adjust all the rest of the engines to use Evas_Font_Set.
SVN revision: 59784
2011-05-29 13:56:23 +00:00
Carsten Haitzler 4dd1d5cf62 fix load of data to ACTUALLY set the load error in evas's image
objects. including preload.



SVN revision: 59529
2011-05-19 11:19:22 +00:00
Carsten Haitzler 23c715b282 fixed issues on evas gl suport from sungwoo.
SVN revision: 59492
2011-05-18 09:49:58 +00:00
Carsten Haitzler a5d62bdbcd Fix: egl mode in engine forgot to call pre/post swap callback. thanks
guanglim!



SVN revision: 59322
2011-05-11 09:14:59 +00:00
Tom Hacohen e93f10b8aa Evas font-engine: Remove passing of strings to font_draw.
This is not needed anymore because we have working string objects.

SVN revision: 59133
2011-05-02 15:33:46 +00:00
Sung W. Park bc8af94bfa From: "Sung W. Park" <sungwoo@gmail.com>
Subject: evas_gl_api_get patch.

Here's a patch that simply overrides the GL functions for Evas_GL
except for two functions that I provide on my own.  It may have some symbol
resolving warnings but that'll all go away eventually when we do everything
via dlsym or getProcAddress.
 
You can apply the patch to the latest revision of evas.  (I've just
updated them) I'm also attaching a sample GLES program that uses
evas_gl_api_get. You don't need to link it to -lGL.



SVN revision: 59092
2011-05-02 02:14:00 +00:00
Sung W. Park d12e4f28d4 From: "Sung W. Park" <sungwoo@gmail.com>
Subject: [E-devel] [Review] [Patch] Evas - OpenGL on Evas: surface
texture creation patch

I'm attaching a patch that addresses the awkward usage case. It's something
that didn't bother me initially but the more I look at it, i think
it's a little off. :-)

The initial version of the evas_gl that I've submitted had the
following use case.

   evasgl = evas_gl_new(e);
   sfc = evas_gl_surface_create(...);
   ctx = evas_gl_context_create(...);

// Make current triggers surface texture and FBO to be created
   evas_gl_make_current(evasgl, sfc, ctx);

// Then you can do a surface_get to retrieve the proper texture and set it
   evas_gl_native_surface_get(evasgl, sfc, &ns);
   evas_object_image_native_surface_set(img_obj, &ns);
   
   The unnatural thing about this use case is that you have to call the make_current
one time in order for evas_gl to generate a surface texture.  This is because
you need a context to create a texture.  Unfortunately, this makes the usage
case really awkward.

So, instead, I've decided to get rid of the need for calling the make_current
by generating a surface texture when evas_gl_surface_create() is called
by using the evas' gl context.  This works because the newly created context
shares resources with evas.  in fact, this is what i'm currently doing with surface
deletion anyway so I thought this solution was reasonable.

Here's how it looks after you get rid of the make_current:

   evasgl = evas_gl_new(e);
   sfc = evas_gl_surface_create(...);
   ctx = evas_gl_context_create(...);

   evas_gl_native_surface_get(evasgl, sfc, &ns);
   evas_object_image_native_surface_set(img_obj, &ns);

The patch is pretty small and straightforward.
            


SVN revision: 58892
2011-04-25 08:41:36 +00:00
Sung W. Park db20d2aeab From: "Sung W. Park" <sungwoo@gmail.com>
(part of the evas-gl work)

the patch basically checks to see if the current context is evas' gl context
and if it is, it'll call evas_gl_common_context_flush().  I think this
is the proper



SVN revision: 58786
2011-04-21 09:23:42 +00:00
Carsten Haitzler 7ed47808cb more bad code - why pass in void * image and data? sero point.. and it
totally is out of step with the rest of the api for gl_common.. that
alone would tell you "dont so that". ugh. more filter fixes.



SVN revision: 58746
2011-04-20 08:05:23 +00:00
Brett Nash 9eaea94252 Evas: Filters:
More work, proudly supported by Samsung.  Filters!

So now you can apply a whole host of cheesy visual effects to objects at
runtime.  This is the first commit, there are a couple of more to come as I
tweak the filters, and fix blur with GL[1].

Please direct bugs to me nash@nash.id.au.

[1] You'd think shaders would be good at this.. but no, generic blur and GL
are like trying to get an apple product to work with Linux.

SVN revision: 58726
2011-04-19 05:47:56 +00:00
Carsten Haitzler 6b3e820f35 gles warning--
SVN revision: 58514
2011-04-09 04:13:21 +00:00
Carsten Haitzler fe933e7b34 and now REALLY fix that viewport bug...
SVN revision: 58386
2011-04-06 10:11:01 +00:00
Brett Nash b96d227334 Masking: Push a bit more arbitrary clipping
This seems to have got lost in my big messup before.  This pushes enough of
mask/arbitrary clip to be somewhat useful.  I need to push a little more soon
for it to be 100% happy, but this is useful level.

SVN revision: 58373
2011-04-06 05:38:38 +00:00
Carsten Haitzler 8859f850fb API add: From <dunamis.park@samsung.com> - sungwoo
start of evas gl api (with compile warning fixes).



SVN revision: 58318
2011-04-04 10:23:12 +00:00
Carsten Haitzler 36a0d2587b and now with some testing... actually fix the swapintervals fun :)
SVN revision: 57596
2011-03-08 15:56:39 +00:00
Carsten Haitzler e4b877f45d 2 different sync apis with differetn ext's. fix.
SVN revision: 57569
2011-03-08 11:20:49 +00:00
Carsten Haitzler d0ac8d8601 fix up gl side image cache to cleanly ref/deref and shadow image
cache. yes - changelog - this is just fixing up whats already
changelogged.



SVN revision: 56949
2011-02-11 06:23:10 +00:00
Carsten Haitzler aaad5f7319 fix most of nash's mess. 2 added aborts that nash has to fix.
SVN revision: 56891
2011-02-10 06:52:53 +00:00
Christopher Michael 0bee0601e1 Evas: Fixed a few 'implicit declaration' warnings.
Add missing evas_object_image_source functions.
      (was giving nasty 'implicit declarations' prior to this change)
    Add UNUSED to evas_common_map_rgba for npoints variable
      (wasn't used in that function)
    Fixed a little formatting in evas_object_main.c
    Add UNUSED to the eng_image_map_draw function of the gl_x11 engine.
      (npoints variable not used there)
    Fixed a little formatting in gl_x11 engine.



SVN revision: 56869
2011-02-09 18:39:54 +00:00
Carsten Haitzler 7881c0b849 improvement to gl engine wrt. caching.
SVN revision: 56801
2011-02-08 11:41:38 +00:00
Brett Nash aa59164001 Support for Proxy Objects (and others)
Proxy objects allow you to use another image as the source of an image.
Essentially allowing the same object to be rendered multiple times.  One
object (the source) is the original, each additional 'copy' is an image with
evas_object_image_source_set.

This is complete.

Also add partially working arbitrary maps, and arbitrary clipping.
Unfortunately both have some issues yet to be resolved (waiting on the next
feature to get merged together).

SVN revision: 56777
2011-02-06 23:52:17 +00:00
Tom Hacohen ff18fa8399 Evas: Multiple changes that all relate to the Harfbuzz integration:
1. Started feeding Evas_Text_Props to the font engine instead of Evas_BiDi_Props because no we have more general text properties as well - i.e, OpenType stuff.
2. Full Harfbuzz integration which gets compiled in by default (if harfbuzz is present) but only works if the environment variable EVAS_USE_OT is set to 1 (because OT is way slower than regular text rendering).
3. Cleaned the font querying/drawing functions.
4. Added font_shaped function to all of the engines, which by default calls teh harfbuzz stuff (default on linux that is).
5. Moved some source files around a bit to make more sense.

SVN revision: 56455
2011-01-30 10:36:39 +00:00
Carsten Haitzler d7e8cfba62 egl actually doesnt need a full reset - we CAN get the current context
and draw/read surfaces.



SVN revision: 55977
2011-01-07 10:16:17 +00:00
Carsten Haitzler efc042f2e7 missing support for swapinterval api in glx.
SVN revision: 55754
2010-12-26 10:15:28 +00:00
Carsten Haitzler 59b94cec34 and dont seg there.
SVN revision: 55319
2010-12-06 09:07:56 +00:00
Carsten Haitzler 640a4030f3 change native api to allow for other types of native data like texture
id's, fbo's etc. too - at least it's versioned now.



SVN revision: 55315
2010-12-06 07:09:51 +00:00
Carsten Haitzler 4147f2f231 make sure we ensure out gl context is current at each frame start
SVN revision: 55131
2010-12-02 08:01:19 +00:00
Carsten Haitzler 29a707fdf8 eek - case of stride value being wrong! fix!
SVN revision: 54087
2010-11-02 08:18:16 +00:00
Carsten Haitzler 2a9c976ec0 only set swap interval if it changes for egl - and dont waitgl if swap
native is available.



SVN revision: 53849
2010-10-25 07:22:43 +00:00
Carsten Haitzler 57b70bdb14 put in special known "save native" case to avoid needing the env var.
SVN revision: 53844
2010-10-25 01:57:48 +00:00
Carsten Haitzler d3a897bb54 allow evas gl engine skipping wait native if known to be safe.
SVN revision: 53760
2010-10-22 08:17:37 +00:00
Carsten Haitzler 6bbe56fefc fix for dyn image size change.
SVN revision: 53180
2010-10-08 05:11:32 +00:00