Hello all,

As some of you have heard already, I've been working for the past few
months on an advanced font effects module for Evas. The main idea is to
integrate features like in Gimp in the Evas rendering engine itself, in
order to have some cool text effects.

I'd love to integrate this work within EFL 1.9 (the merge window is still
open :) ), but still leave it marked as experimental because it's... well,
not perfect quite yet.

Here's what's working:
- Software rendering
- Basic OpenGL (integration through full software rendering and pushing a
texture)
- Basic Edje integration (the best for quick testing)
- Text object

My work has been public since I started, in my dev branch
(devs/jpeg/fonteffects), but I guess no one really had a look at it yet :)


Fundamentally, it's a whole new part of Evas, called Evas_Filter (in
evas/filters) and almost nothing in Evas has been changed otherwise. We add
some basic support for Alpha images (1 byte per pixel, instead of the usual
RGBA).


The concept is to apply a series of operations to Alpha/RGBA buffers, and
blend the final result on screen. These buffers can be thought of as a
series of layers and the operations as filters (in the Gimp terminology).
So while the target is text for now, the whole concept has pretty much
nothing to do with text, really, just basic image processing :)

Right now, here are the available filters:
- Blend
- Mask (same as blend, but with 2 input images and an output)
- Bump (using a bump map and various colors)
- Displacement (using a specific displacement map image format)
- Transform (vertical flip only for now)
- Blur
- Curve (apply a color curve to any color channel)

Using proxy source images (any object actually), we can apply textures to
the text. And if the texture is, say, an animated Gif of a fire, then the
text will be on fire as well.


Finally, I'm introducing a new script language (yeah, sorry), that's pretty
simple, to describe the various buffers and commands to apply sequentially.
For example, to apply a simple dark blue drop shadow, one could do:

blur(ox=4, oy=6, dx=10, dy=10, color=darkblue);
blend(color=white);


A test app with examples is available in my repo, at:
https://git.enlightenment.org/devs/jpeg/font_effect_ui.git/

More examples will follow.
Also, images & screenshots should follow.


Right now, I am working (hard :P) at fixing a few remaining issues with
proxy rendering (crashes, dangling objects, you name it...) and I'll do a
final rebase of my work over master before the weekend. I removed my
changes in Textblock as they introduce way too many issues, especially with
the recent optimizations.


Soon, all your text will be on fire :-)


Best regards,

-- 
Jean-Philippe André
(jpeg)
------------------------------------------------------------------------------
Managing the Performance of Cloud-Based Applications
Take advantage of what the Cloud has to offer - Avoid Common Pitfalls.
Read the Whitepaper.
http://pubads.g.doubleclick.net/gampad/clk?id=121051231&iu=/4140/ostg.clktrk
_______________________________________________
enlightenment-devel mailing list
enlightenment-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/enlightenment-devel

Reply via email to