Commit Graph

195 Commits

Author SHA1 Message Date
Mike Blumenkrantz 80b018b790 add missing variable from r64139
direct all spankies to raster and Sung W. Park


SVN revision: 64514
2011-10-30 02:04:50 +00:00
Sung W. Park a3a5a85d92 From: "Sung W. Park" <sungwoo@gmail.com>
Subject: [E-devel] [E-Devel][Patch] Evas GL Color Format Enum change
(and ElmGLview changes accordingly)

I'm submitting a patch that changes the color format for Evas GL.

When I first wrote Evas_GL, I just had EVAS_GL_RGB_8 and EVAS_GL_RGBA_8 and etc
but it was misleading for some people.  It was more of a filler since I couldn't decide on
a name.  I'm finally changing it to make it more clear.



SVN revision: 64491
2011-10-28 11:08:23 +00:00
Carsten Haitzler 4483c0ef6f warning--
SVN revision: 64387
2011-10-25 12:07:56 +00:00
Carsten Haitzler bc10321643 disable getting of xft.dpi - always been an option but it just leads
to inconsistent rendering.



SVN revision: 64386
2011-10-25 12:01:44 +00:00
Cedric BAIL ce3a658ef7 evas: coorectly dirty YUV data.
SVN revision: 64254
2011-10-21 14:06:42 +00:00
Carsten Haitzler f95a1783a7 debug for future. for now found the problem.
SVN revision: 64248
2011-10-21 09:59:13 +00:00
Carsten Haitzler 11409eb48e have evas engine also to update rect math so we can exclude useless
updates when obscured objects change



SVN revision: 64246
2011-10-21 08:58:00 +00:00
Carsten Haitzler 1541b0e97e add call to get maximum image size (eg max texture size)
SVN revision: 64244
2011-10-21 08:17:14 +00:00
Carsten Haitzler a396da70de we dont need the dirty at the end either.
SVN revision: 64173
2011-10-19 09:50:55 +00:00
Cedric BAIL 519750e778 evas: simplify code at the same time.
SVN revision: 64169
2011-10-19 09:04:18 +00:00
Carsten Haitzler 6f3529fe65 nono - we dont dirty images when we set data...
SVN revision: 64168
2011-10-19 08:59:29 +00:00
Jiyoun Park bfbd9abf9d From: Jiyoun Park <jy0703.park@samsung.com>
Subject: [E-devel] [Patch] modify gl engine's animated function
related with cache entry

I modified the gl engine code related with animated images
This is very trivial.  Evas image object passes images to the engine. 
In the software engine, it is a cache entry , but in the GL engine, it is 
an Evas_GL Image. So I modified the gl engine code to get the cache entry
from the gl image.



SVN revision: 64143
2011-10-18 09:10:26 +00:00
Sung W. Park c1cc0a7ed2 From: "Sung W. Park" <sungwoo@gmail.com>
Subject: Re: [E-devel] [E-Devel][Review][Patch] Evas GL Extensions + a
bug fix


Here's an initial attempt at the GL extensions issue for Evas GL.

I have been in discussion with a few EFL developers regarding how we should
provide extensions.  Essentially, there are two ways to go about doing this.

1. provide evas_gl_proc_address_get() function as it is done in other
glue layers

2. provide all the extension functions in the EVAS_GL_API struct.

#1 approach is how it's done in other glue layers and the driver implementor can
provide new extensions easily.  It is however pretty annoying to get the
function prototypes right and use the function pointers and etc.

#2 approach provides all the extension functions in the struct so it's
definitely easier to use.  Adding new extensions can be a pain as people may
have to wait for new version releases.

For now, we thought it was OK to just throw them in the struct as in
#2 and try it out.  So, I've implemented this approach.  As for the extensions,
I've basically included all the extensions in gl2ext.h as EvasGL currently
provides all the GLES 2.0 functions.   In order to display the right
information, I had to override glGetString() with GL_EXTENSIONS as parameter to properly
display the supported extensions.

Also, I've added a few EGL extensions that have been
modified for EvasGL use.  For example, eglCreateImage/eglDestroyImage has been
defined as folllows.

   EvasGLImage  (*evasglCreateImage) (int target, void* buffer, int*
                                         attrib_list); void
                                            (*evasglDestroyImage)
(EvasGLImage image);

const char *evas_gl_string_query() function was added to return a string of
supported EvasGL extensions.  So essentially, a user can search this string to see
if the desired extension is supported.  if it is, he can use the functions.  He can
always check if the function pointers are NULL as well.

Take a look at the pach and let me know what you think.

______________

While I was adding the extension code, I've added a few fixes/ changes
to the EvasGL.

1. glDeletBuffers bug
- When I wad destroying evasgl context, I was deleting the context FBO with
glDeleteBuffers instead of glDeleteFramebuffers. This code in effect was
deleting BOs in other contexts and we had some funky behaviors as a
result.  The
bug has been fixed.

2. make_current
- I've made some changes to the make current code and also added a resource
context to the engine data.  the resource context is used for creating surface
texture/ fbos when surface/ context is created.  Before, i was using evas'
context but thought it'd be a good idea to use a separate context.



SVN revision: 64139
2011-10-18 08:13:23 +00:00
Youness Alaoui 93d79aa509 Evas: Check for dlsym and disable gl engines if not found
SVN revision: 64091
2011-10-15 09:31:04 +00:00
Cedric BAIL 308cf81312 evas: correctly handle direct mapping of data for non RGBA case.
SVN revision: 63726
2011-09-30 15:43:51 +00:00
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