* log domains in lower-case only please. let's make it a standard so
we don't have to look at the code everytime to figure out the name...
* logs do NOT require trailing newline (\n), it's automatic!
* do NOT add newline inside log messages!
* add gl_common logging.
NOTE: I tried to compile all modules, but there are clear broken
modules such as cairo and qtopia. Other modules like gl_sdl are
broken as they were not updated to new gl_common api (resize
method AFAIR).
SVN revision: 53174
before trying to free it, else we segfault.
Fix compiler warnings wrt const vs non-const of Evas_BiDi_Props.
Fix formatting and remove whitespace also.
NB: The major change here is in evas_font_word_prerender wrt freeing
the 'last' word of the cache.
SVN revision: 53166
There is no meaning in negative values for image loading, marking as
dirty or size, so image internals (cache, entry) were changed to
unsigned, reducing possible errors, particularly with overflow.
engines were converted to the new way, but any 3rd party modules will
still work as they should be using values >= 0 only anyway.
please review.
new cases introduced by "comparison between signed and unsigned" were
fixed in the modules that used cache_entry or Image_Entry dimensions.
SVN revision: 52428
As we're heading for a release we better remove as much errors as
possible and as the first step I'm removing warnings due unused
parameters, variables and functions. These tend to pollute real errors
spotted by -Wall and clang/llvm.
This does not fixes all, just the clear that could be set to
__UNUSED__, particularly to do (and I'd like some help from the
authors):
* src/lib/engines/common/evas_font_{draw,query}.c (tasn):
intl_props is just used while doing BIDI, but also used in other
#ifdef blocks :-/
* evas_map_* (raster):
huge amount of warnings, code is quite confusing and thus I'm not
touching it. I have no idea whenever the commented blocks or extra
parameters are intended to be used or no.
* src/modules/engines/fbevas_fb_main.c (raster?):
is fb_setvt() to be used? If not do you mind removing it?
* src/modules/engines/gl_{common,x11} (raster):
huge amount of warnings, code is quite nested and full of #ifdefs
that does not help to give a clear picture of what's going on.
* src/bin/evas_cserve_main.c (raster):
I could have ignored most of the errors, but is the code correct? I
mean, there is no unload of images being applied. If you confirm
none of those warnings are harmful I can flag them as unused.
* src/lib/engines/common_8 (dottedmag):
lots of unused functions that were acquired from common_16, they
are unused and if they will not, then they should be removed.
SVN revision: 52421
soft16 was written as a single engine, thus it was all static/global
and had no EAPI in its functions, but then it was moved into
"src/lib/common_16" and got that, but got no prefix! That could cause
clash with other libraries, so adding such prefix.
soft8 was a copy of 16, thus had the same problems.
the engines were all based on software_x11, thus they defined the same
methods to deal with Xlib, however if you link them all in the same
binary (--enable-MODULE=static), the symbol would be redefined. Rename
symbols according to their module.
SVN revision: 52420
it? and... lets not just throw pointer onto pipelines just for the
hell of it.. as like.. hmm the object owning the pointer might be
freed before pipelien finishes.. or hell. it might change pointer
contents? :) need to nwo dup bidi intl_props. probably a better plan..
tasn looking at you... is to fix up evas bidi utils and make the intl
props a new/free thing (and sharable eh?) with reference counts to
avoid dups (just ref up most of the time - and if u change, make a new
intl prop - dont change current one) etc. etc. for now dup - this
gives a perf hit tho. at least async rendering works now.
SVN revision: 51736
Revert previous patch generated by badnull.cocci script, and apply the new one.
The main difference is that assert and assert-like functions are not touched
anymore.
SVN revision: 51650
makes zero sense. as such so far cppcheck has only found maybe 10% of
its grumbling and bitching as real bugs. shutting it up in some cases
is possible. in others it's possible BUT with a possible performance
penalty. that's unacceptable. wondering what to do.
SVN revision: 51557
Apply badzero.cocci, badnull.coci and badnull2.cocci
This should convert all cases where there's a comparison to NULL to simpler
forms. This patch applies the following transformations:
code before patch ||code after patch
===============================================================
return a == NULL; return !a;
return a != NULL; return !!a;
func(a == NULL); func(!a);
func(a != NULL); func(!!a);
b = a == NULL; b = !a;
b = a != NULL; b = !!a;
b = a == NULL ? c : d; b = !a ? c : d;
b = a != NULL ? c : d; b = a ? c : d;
other cases:
a == NULL !a
a != NULL a
SVN revision: 51487
1. Fixed evas_common_encoding_utf8 functions to get char * instead of unsigned char * and return Eina_Unicode instead of int.
2. Removed a couple of unused variables.
3. Removed deprecated evas_common_font_utf8* functions.
SVN revision: 51200
Change calls to malloc + memset to calloc whenever an automatic conversion can
be done.
Possible candidates are not treated here, only the ones we can be sure the
conversion is safe.
SVN revision: 51078
Sorry, but full documented code will be committed tomorrow, this commit is needed for the API stabilization.
Major changes in this commit:
1. Changed the textblock node system there is now a linked list for the format nodes and a linked list for the text nodes. Format and text nodes point to one anoter in a matter that will be explained in the source file (will be committed tomorrow). Each text node now represents a paragraph and each format node points to a specific location in a text node.
2. Text/Format nodes are now two distinct data types.
3. The concept of nodes is no longer exposed in the API except for the format nodes which are only slightly exposed just to enable users of the API to cycle all the formats in order to find stuff like anchors.
4. Every node has a PS (paragraph separator) format node pointing to it's end, except for the last one which has nothing. Nodes are only broken by PS's.
5. Changed the BiDi functions to work nicely with offsets in big chunks of text.
More is explained in the email with the subject 'Evas Textblock redesign + edje_entry adjustments' that will be sent tomorrow because of technical issues.
For full documentation about this object wait for the next commit.
SVN revision: 50930
* Remove vim modelines:
find . -name '*.[chx]' -exec sed -i '/\/\*$/ {N;N;/ \* vim:ts/d}' \{\} \;
find . -name '*.[chx]' -exec sed -i '/\/[\*\/] *vim:/d' \{\} \;
* Remove leading blank lines:
find . -name '*.[cxh]' -exec sed -i '/./,$!d'
If you use vim, use this in your .vimrc:
set ts=8 sw=3 sts=8 expandtab cino=>5n-3f0^-2{2(0W1st0
SVN revision: 50816
Added missing unicode & bidi opts to necessary places.
Fixes lots of compiler warnings.
NB - Not all engines tested. If you spot a problem wrt any specific
engine, please report it.
SVN revision: 50601
Changing textblock and text objects to work with Eina_Unicode instead of utf8 (internally, API remains intact).
Started relying on new fribidi 0.19.2 instead of the old fribidi.
A lot of fixes to the font engine.
Renaming of evas_common_font_utf8_* to evas_common_encoding_utf8_*
This relies on new Eina changes and types: Eina_Unicode, Eina_UStrbuf and Eina_UStringshare.
SVN revision: 50595
Subject: [E-devel] 8bpp xcb evas engine
Hi all,
I've implemented the 8bpp grayscale evas engine. It is based on the 16bpp
engine. It would be nice if someone could review the code and maybe commit
into svn. The patches against evas and ecore are attached.
SVN revision: 50560
Ouch, that was nasty! src/lib/cache/evas_cache_image.c was assuming
all Image_Entry were RGBA_Image (why?!?!?), thus doing the cast and
having mutexes and other to operate on garbage (possibly crashing due
segv). This happened to be the case with Soft16_Image used by
software_16 engines.
I'm not sure, but this may fix problems that people noticed with
async-render hanging their systems even if not explicitly enabled
during runtime.
I also found it quite strange the number of locks required by this
code! Clearly we could use macros to simplify and avoid bugs, but
maybe some atomic_inc/dec code should be used to remove half of the
mutexes in that code?
/me wonders what kinds of bug more we can expect from this code :-/
SVN revision: 50300
Software 16bpp variants were crashing if using preload as the
Image_Entry that was used by preload did not keep the loader and
module information, since these were only set in the
Soft16_Image::source. Now we copy these members while the source is
live.
SVN revision: 50299
Just set the EVAS_CPU_NO_NEON environment var if you want to disable Neon.
The same is done for other specific CPU codes, such as MMX, MMX2, SSE, etc.
SVN revision: 50271
The new wordcache option is an environment variable called:
EVAS_WORD_CACHE_MAX_WORDS
set this to a number between 1-500 to change the cache size.
Larger values (40+) fix regressions in a few of the expedite tests.
SVN revision: 50047
If you are having any problems with Arabic shaping please make sure you have FriBiDi version 0.19.2 installed at the time of compilation. If your distro doesn't have that version yet, make them upgrade, it's an year and a half old.
SVN revision: 49949
imlib2 bmp loader, but it was imcomplete compared to the bmp
standards, so i actually ended up reading the file format definitions
on line i could find and using lots of test images... wrote a new one.
you can at least view bmp files now. note - i found 1 bmp file that
claims to have an alpha channel (amask is non-empty) and then proceeds
to provide an image with pixels - all alpha 0. so its transparent when
it shouldnt be. beats me but looks like a broken bmp file to me when
it compes to specs.
SVN revision: 49324
rendering. to turn on:
1.
configure with --enable-async-render
2.
export EVAS_RENDER_MODE=non-blocking
presto. necessitates some api swizzling (thus the expedite. ecore etc. changes)
the kind of results you get on a desktop:
http://www.rasterman.com/files/evas-async-vs-none.html
SVN revision: 49087
Samsung Electronics just allowed me to release the first set of ARM neon
patches under the Evas licence. They are silently helping improve EFL and
this another product of their help.
These patches have been tested on a Cortex A8 and show consistent improvement
across the board. For expedite some tests up to 100% improvements, and
practical real world examples show that rendering limited applications show
similar improvements. For instance in one application from 17fps->30fps or
for another 40->63fps.
The patches are pure neon code (intrinsics tend to generate worse code). To
build under GCC you will need a recent GCC and the following C flags:
-mfloat-abi=softfp -mfpu=neon
I also recommend -O2 and -ffast-math.
If you have any problems please let me know.
SVN revision: 48733
Subject: [E-devel] [PATCH] evas: compile out unused dither tables
Don't include the rather large dither tables if small dithering code
is enabled during ./configure stage.
SVN revision: 46353
- they dont. in reality.
2. major text rendeering speedups. up to 41% in textblock intl, 33% in
textblock basic, 12-20$ in other text rendering tests. generic eina hash's
are just tooo slow for what we are doing there. specialised "Fash"
blocked-array.
3. still LOTS of optimisations left.
SVN revision: 45829
Evas image load was always reporint "generic" error, since it was
disconnected from actual loader modules.
This commit will break the module loader API (as it's restricted to
inside Evas, this should be no problem). The return was turned into
"Eina_Bool" for clarity, while an extra "int *error" is responsible to
report errors. This approach was choosen to force compiler warnings
and to try avoid mistakes as EINA_FALSE == EVAS_LOAD_ERROR_NONE and
thus we'd get opposite behavior if something slips.
Most loaders play well, except by eet that does not provide means to
know if the file open failed due missing file, incorrect format or
corrupted file :-(
Please report any issues. I added eina_log debugging to loader
functions, just run your Evas application as:
EINA_LOG_LEVELS=evas_main:4 your_app
SVN revision: 44666