path: root/src/modules/evas/engines/gl_common/evas_gl_texture.c (unfollow)
AgeCommit message (Collapse)Author
2014-07-09Evas gl: Simplify cspace matching for texturesJean-Philippe Andre
Some colorspaces (ETC, S3TC, GRY, ...) don't care about the value of BGRA support or the alpha flag. So, let's introduce the new boolean^Wenum value MATCH_ANY ;) Note: the compressed texture formats with alpha support have been marked as matching both TRUE and FALSE for alpha. The images should always have the alpha flag set to TRUE, though. The BGRA flag really doesn't matter.
2014-07-09Evas gl: Add support for ETC1+Alpha texturesJean-Philippe Andre
Compile-in the required shaders, add support for the new EVAS_COLORSPACE_ETC1_ALPHA, and upload textures as RGB+A pairs. @feature
2014-07-03Evas gl: Add support for S3TC texturesJean-Philippe Andre
Add support for DXT1, DXT3 and DXT5 textures (4 formats in total). @feature Add support for S3TC textures if the GPU supports them
2014-07-03Evas gl: Remove hack around CompressedTexImage2DJean-Philippe Andre
A compressed texture should be created with glCompressedTexImage2D only, and not with glTexImage2D (This returns GL_INVALID_VALUE).
2014-07-03Evas gl: Fix texture allocation (missing Y offset)Jean-Philippe Andre
I saw some GL error messages (with the GLERR() macro activated), that were caused by GL_INVALID_VALUE. For some (many) textures, tex->y was 0 but since we now use a 2D atlas (rectangle allocator), the first row of pixels should be repeated. This caused uploads to Y = tex->y - 1 = -1, which is invalid.
2014-07-03Evas: Support duplicated borders in surface allocJean-Philippe Andre
Now, the evas loader is supposed to advertise the actual border size in case of compressed texture formats. The only case where the border was non zero was ETC formats, from the TGV loader, so I think we don't need to keep the previous behaviour (auto-calculate borders for ETC).
2014-06-23evas/gl: eeeek. i missed removing one unnecessary checkingChunEon Park
2014-06-23evas/gl: increase message level and avoid unnecessary checkingChunEon Park
the checking is introduced previous my commit 5f52f5c9e5758f52f2bc9e4b7220c8c61076f4ea.
2014-06-23evas/gl: don't go forward if the format is not supported.ChunEon Park
2014-06-23evas/gl: abort is so cruel. print error and let it don't die there.ChunEon Park
2014-06-19evas: improvement of Eina Rectangle Pool and integration with Evas GL backend.Rajeev Ranjan
Summary: This patch introduce various new logic for packing/unpacking of Eina Rectangle in a pool. It is then used by Evas GL backend texture allocation to improve how efficiently we pack image in texture atlas. This lead to improved memory usage and reduced power consumption with usually a more stable higher FPS (as it use less texture to do the same task, their is less texture switch, so saving memory and speed at the same time). This patch was developped on Cedric's suggestions to optimize the packing logic using Skyline algorithm. This patch is based on master and is a new submission for earlier phab link Signed-off-by: Sanjay Nirankari <> Signed-off-by: Rajeev Ranjan <> Signed-off-by: Sreedeep Moulik <> Reviewers: cedric, raster CC: wonsik, jpeg, sreedeep.m, sanjay, govi Differential Revision: Signed-off-by: Cedric BAIL <>
2014-06-18evas_gl: add more matching formats to make cocoa_gl happyRaoul Hecky
2014-06-18fix whitespace like trailing spaces and tabsCarsten Haitzler (Rasterman)
2014-06-16Evas gl: Fix ETC2 texture atlassesJean-Philippe Andre
ETC2 textures were allocated using the same empty slots pool as RGBA textures. ETC1 texture atlasses should still be tested. An extension string is required to avoid using the bad fallback in place right now. But there is no such thing yet.
2014-06-12Evas gl: Enable texture atlasses with ETC1/2Jean-Philippe Andre
We prefer ETC2 textures when ETC2 support has been detected. According to the spec, glCompressedTexSubImage2D should work for ETC2. Try even with ETC1. This may fail at runtime. The fallback path is very dubious right now but without a proper test case I'm not sure which approach to take. We can also imagine cases where the GPU supports TexSubImage for ETC1 but ETC2 is not supported at all. This will need testing, as this case is not handled. @feature
2014-05-12Evas: Fix abort() when using ETC2 with alphaJean-Philippe Andre
2014-04-29Evas: Fix stretching of ETC1/2 texturesJean-Philippe Andre
ETC1/2 textures are (for now) allocated one by one for each image, because we use only glCompressedTexImage (not SubImage). So, the texture height must fit that of its content. This commit bypasses the usual pool allocation logic where textures are rounded up to the next multiple of 16 pixels in height, in case of ETC1/2.
2014-04-25Evas gl_x11: Add ETC2 support to the GL/X11 engineJean-Philippe Andre
This should allow texture upload with ETC2 RGB8 or RGBA8 formats. Untested for now... @feature
2014-04-17Evas gl: Fix texture border drawingJean-Philippe Andre
Since the introduction of color spaces other than RGBA8888 in the GL engines, there was an issue with border images scaled in GL. The left and right edges were simply not properly copied. This would then show artifacts when scaling very thin images (typically 2px wide).
2014-04-04Evas gl: Use implicit cast to DATA8 with image.data8Jean-Philippe Andre
data8 is there precisely to avoid casting the iamge data when handling it as DATA8. This is purely a cosmetic change
2014-04-01evas: add ETC1 texture format support to Evas.Cedric BAIL
2014-04-01evas: support uploading AGRY88 and GRY8 directly to GPU.Cedric BAIL
2014-04-01evas: add support for GL_LUMINANCE_ALPHA and GL_LUMINANCE when loading image ↵Cedric BAIL
from disk.
2014-01-13evas gl - fix egl/gles build after alpha4 change for fontsCarsten Haitzler (Rasterman)
2014-01-13evas gl - prefer alpha4 format for font textures if possible (save memory)Carsten Haitzler (Rasterman)
if alpha4 is possible (desktopgl) then use it for fonts as this should cut memory in half for them and possibly speed things up due to less memory bandwidth needed
2013-12-26evas gl engine - ensure on texture delete we never leave a cur tex id danglingCarsten Haitzler (Rasterman)
2013-11-27Revert "Revert "evas: allow fuzziness on the texture format returned by GL.""Cedric Bail
This reverts commit 87385b05c3117aa8d46fd4029bfdeadf3444a7b9 that is necessary for desktop target.
2013-11-26Revert "evas: allow fuzziness on the texture format returned by GL."Rafael Antognolli
This reverts commit 2b5b3438e82a9a1bb4086864660942d3c1ddc113. Breaks gl engines when using GLES + EGL.
2013-11-26evas: allow fuzziness on the texture format returned by GL.Cedric Bail
2013-10-30evas/cserve2: Fix image preload with gl-x11 engineJean-Philippe Andre
Cserves supports only the SW (xlib) and GL (gl-x11) engines. Also, improve cs2 support for some lesser used functions in the gl_x11 engine.
2013-07-15evas gl: cover some more cannot-allocate-texture cases.Carsten Haitzler (Rasterman)
2013-07-11evas gl engine - paranoia: check max texture size limits on texture allocCarsten Haitzler (Rasterman)
2013-07-03evas: fix bugin Enlightenment triggering a path where data are loaded, but ↵Cedric Bail
flags is not set. This fix T187.
2013-06-26evas: check wether we do have a data or not.Cedric Bail
2013-06-24evas: add support for asynchronously uploading GL texture.Cedric Bail
NOTE: when using Evas_Object image preload infrastructure the GL texture upload was uploaded from the main loop during the rendering stage. This could lead to some frame drop during fast animation due to the time needed to upload that texture. This patch fix this problem by uploading a small texture quickly (16x16) and waiting for going back to the main loop to be able to use the same GL context from another thread to do the texture upload asynchronously without blocking the main loop.
2013-06-20efl: formattingSebastian Dransfeld
2013-06-20efl: formattingSebastian Dransfeld
2013-06-20evas: fix texture allocation bugs.Cedric Bail
2013-06-14evas: preliminary work on texture destruction for async preload of texture.Cedric Bail
2013-06-14evas: cleanup GL texture allocation with some code refactoring.Cedric Bail
2013-06-04evas: refactorize gl texture creation code.Cedric Bail
2013-05-20evas/gl: Use GL_FRAMEBUFFER_BINDING, which is available on both.Rafael Antognolli
Instead of a define from GL_DRAW_FRAMEBUFFER_BINDING to the above one, just use it directly since it's available on gles and full gl.
2013-05-19Fix antognolli build break when --with-opengl=es.Chris Michael
Basically, EGL does not define a GL_DRAW_FRAMEBUFFER_BINDING so we test for that and if not found then define it to be GL_FRAMEBUFFER_BINDING Signed-off-by: Chris Michael <>
2013-05-18Revert this, there is no build break apparently. Give cookie back toChris Michael
antognolli Revert "include evas_gl_common.h" This reverts commit 81cee894e13257c6cedfdddbcab3e453cc5cd01a.
2013-05-18include evas_gl_common.hChris Michael
(Bad antognolli, No cookie !!) NB: Fixes build break !!! If we are going to use defines from glext.h, let's be sure to have the necessary header included Yes ?? ;) Signed-off-by: Chris Michael <>
2013-05-17evas/gl: Restore framebuffer after texture creation.Rafael Antognolli
If we don't do this, the framebuffer object used on shader_array_flush() will be wrong. NOTE: shader_array_flush() should take care of setting the fbo correctly.
2013-04-12[Evas] Updated eglMap/UnmapImageSEC extension definitionSung W. Park
Recently Samsung specific eglMap/UnmapImageSEC has been updated to support new features. The extension definition was updated in evas accordingly.
2013-03-15Fix opengl-es 2.0 engine support to only use GL_UNPACK_ROW_LENGTHCarsten Haitzler (Rasterman)
if the correct gles extension exists.
2013-02-26Fix evas GL common engine to have a shader to do oversampling onCarsten Haitzler (Rasterman)
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).
2012-11-24evas/gl - don't need to keep the texture altas height for the framebuffer.ChunEon Park
they won't be utilized anything by atlas. Cause of this, It wasted unnecessary texture memory. :( SVN revision: 79637