diff options
author | David Walter Seikel | 2012-04-22 09:19:23 +1000 |
---|---|---|
committer | David Walter Seikel | 2012-04-22 09:19:23 +1000 |
commit | c963d75dfdeec11f82e79e727062fbf89afa2c04 (patch) | |
tree | 895633dbf641110be46f117c29890c49b3ffc0bd /libraries/evas/src/lib/engines/common/evas_image_main.c | |
parent | Adding the new extantz viewer and grid manager. (diff) | |
download | SledjHamr-c963d75dfdeec11f82e79e727062fbf89afa2c04.zip SledjHamr-c963d75dfdeec11f82e79e727062fbf89afa2c04.tar.gz SledjHamr-c963d75dfdeec11f82e79e727062fbf89afa2c04.tar.bz2 SledjHamr-c963d75dfdeec11f82e79e727062fbf89afa2c04.tar.xz |
Update EFL to latest beta.
Diffstat (limited to '')
-rw-r--r-- | libraries/evas/src/lib/engines/common/evas_image_main.c | 77 |
1 files changed, 71 insertions, 6 deletions
diff --git a/libraries/evas/src/lib/engines/common/evas_image_main.c b/libraries/evas/src/lib/engines/common/evas_image_main.c index d2f8c0b..9c233b3 100644 --- a/libraries/evas/src/lib/engines/common/evas_image_main.c +++ b/libraries/evas/src/lib/engines/common/evas_image_main.c | |||
@@ -16,6 +16,8 @@ | |||
16 | # include <memcheck.h> | 16 | # include <memcheck.h> |
17 | #endif | 17 | #endif |
18 | 18 | ||
19 | //#define SURFDBG 1 | ||
20 | |||
19 | static Evas_Cache_Image * eci = NULL; | 21 | static Evas_Cache_Image * eci = NULL; |
20 | static int reference = 0; | 22 | static int reference = 0; |
21 | 23 | ||
@@ -212,6 +214,30 @@ evas_common_rgba_image_free(Image_Entry *ie) | |||
212 | _evas_common_rgba_image_delete(ie); | 214 | _evas_common_rgba_image_delete(ie); |
213 | } | 215 | } |
214 | 216 | ||
217 | #ifdef SURFDBG | ||
218 | static Eina_List *surfs = NULL; | ||
219 | |||
220 | static void | ||
221 | surf_debug(void) | ||
222 | { | ||
223 | Eina_List *l; | ||
224 | Image_Entry *ie; | ||
225 | RGBA_Image *im; | ||
226 | int i = 0; | ||
227 | |||
228 | printf("----SURFS----\n"); | ||
229 | EINA_LIST_FOREACH(surfs, l, ie) | ||
230 | { | ||
231 | im = ie; | ||
232 | printf("%i - %p - %ix%i [%s][%s]\n", | ||
233 | i, im->image.data, ie->allocated.w, ie->allocated.h, | ||
234 | ie->file, ie->key | ||
235 | ); | ||
236 | i++; | ||
237 | } | ||
238 | } | ||
239 | #endif | ||
240 | |||
215 | EAPI void | 241 | EAPI void |
216 | evas_common_rgba_image_unload(Image_Entry *ie) | 242 | evas_common_rgba_image_unload(Image_Entry *ie) |
217 | { | 243 | { |
@@ -252,7 +278,12 @@ evas_common_rgba_image_unload(Image_Entry *ie) | |||
252 | #endif | 278 | #endif |
253 | 279 | ||
254 | if (im->image.data && !im->image.no_free) | 280 | if (im->image.data && !im->image.no_free) |
255 | free(im->image.data); | 281 | { |
282 | free(im->image.data); | ||
283 | #ifdef SURFDBG | ||
284 | surfs = eina_list_remove(surfs, ie); | ||
285 | #endif | ||
286 | } | ||
256 | im->image.data = NULL; | 287 | im->image.data = NULL; |
257 | ie->allocated.w = 0; | 288 | ie->allocated.w = 0; |
258 | ie->allocated.h = 0; | 289 | ie->allocated.h = 0; |
@@ -260,6 +291,9 @@ evas_common_rgba_image_unload(Image_Entry *ie) | |||
260 | #ifdef BUILD_ASYNC_PRELOAD | 291 | #ifdef BUILD_ASYNC_PRELOAD |
261 | ie->flags.preload_done = 0; | 292 | ie->flags.preload_done = 0; |
262 | #endif | 293 | #endif |
294 | #ifdef SURFDBG | ||
295 | surf_debug(); | ||
296 | #endif | ||
263 | } | 297 | } |
264 | 298 | ||
265 | void | 299 | void |
@@ -318,10 +352,20 @@ _evas_common_rgba_image_surface_alloc(Image_Entry *ie, unsigned int w, unsigned | |||
318 | else | 352 | else |
319 | siz = w * h * sizeof(DATA32); | 353 | siz = w * h * sizeof(DATA32); |
320 | 354 | ||
321 | if (im->image.data) free(im->image.data); | 355 | if (im->image.data) |
356 | { | ||
357 | free(im->image.data); | ||
358 | #ifdef SURFDBG | ||
359 | surfs = eina_list_remove(surfs, ie); | ||
360 | #endif | ||
361 | } | ||
322 | im->image.data = malloc(siz); | 362 | im->image.data = malloc(siz); |
323 | if (!im->image.data) return -1; | 363 | if (!im->image.data) return -1; |
324 | 364 | ie->allocated.w = w; | |
365 | ie->allocated.h = h; | ||
366 | #ifdef SURFDBG | ||
367 | surfs = eina_list_append(surfs, ie); | ||
368 | #endif | ||
325 | #ifdef HAVE_VALGRIND | 369 | #ifdef HAVE_VALGRIND |
326 | # ifdef VALGRIND_MAKE_READABLE | 370 | # ifdef VALGRIND_MAKE_READABLE |
327 | VALGRIND_MAKE_READABLE(im->image.data, siz); | 371 | VALGRIND_MAKE_READABLE(im->image.data, siz); |
@@ -332,7 +376,9 @@ _evas_common_rgba_image_surface_alloc(Image_Entry *ie, unsigned int w, unsigned | |||
332 | # endif | 376 | # endif |
333 | #endif | 377 | #endif |
334 | _evas_common_rgba_image_post_surface(ie); | 378 | _evas_common_rgba_image_post_surface(ie); |
335 | 379 | #ifdef SURFDBG | |
380 | surf_debug(); | ||
381 | #endif | ||
336 | return 0; | 382 | return 0; |
337 | } | 383 | } |
338 | 384 | ||
@@ -366,7 +412,12 @@ _evas_common_rgba_image_surface_delete(Image_Entry *ie) | |||
366 | im->cs.data = NULL; | 412 | im->cs.data = NULL; |
367 | 413 | ||
368 | if (im->image.data && !im->image.no_free) | 414 | if (im->image.data && !im->image.no_free) |
369 | free(im->image.data); | 415 | { |
416 | free(im->image.data); | ||
417 | #ifdef SURFDBG | ||
418 | surfs = eina_list_remove(surfs, ie); | ||
419 | #endif | ||
420 | } | ||
370 | #ifdef EVAS_CSERVE | 421 | #ifdef EVAS_CSERVE |
371 | else if (ie->data1) | 422 | else if (ie->data1) |
372 | evas_cserve_image_free(ie); | 423 | evas_cserve_image_free(ie); |
@@ -380,6 +431,9 @@ _evas_common_rgba_image_surface_delete(Image_Entry *ie) | |||
380 | #endif | 431 | #endif |
381 | ie->flags.loaded = 0; | 432 | ie->flags.loaded = 0; |
382 | evas_common_rgba_image_scalecache_dirty(&im->cache_entry); | 433 | evas_common_rgba_image_scalecache_dirty(&im->cache_entry); |
434 | #ifdef SURFDBG | ||
435 | surf_debug(); | ||
436 | #endif | ||
383 | } | 437 | } |
384 | 438 | ||
385 | static void | 439 | static void |
@@ -597,7 +651,15 @@ evas_common_image_colorspace_normalize(RGBA_Image *im) | |||
597 | #ifdef EVAS_CSERVE | 651 | #ifdef EVAS_CSERVE |
598 | if (((Image_Entry *)im)->data1) evas_cserve_image_free(&im->cache_entry); | 652 | if (((Image_Entry *)im)->data1) evas_cserve_image_free(&im->cache_entry); |
599 | #endif | 653 | #endif |
600 | if (!im->image.no_free) free(im->image.data); | 654 | if (!im->image.no_free) |
655 | { | ||
656 | free(im->image.data); | ||
657 | #ifdef SURFDBG | ||
658 | surfs = eina_list_remove(surfs, im); | ||
659 | #endif | ||
660 | ((Image_Entry *)im)->allocated.w = 0; | ||
661 | ((Image_Entry *)im)->allocated.h = 0; | ||
662 | } | ||
601 | im->image.data = im->cs.data; | 663 | im->image.data = im->cs.data; |
602 | im->cs.no_free = im->image.no_free; | 664 | im->cs.no_free = im->image.no_free; |
603 | } | 665 | } |
@@ -634,6 +696,9 @@ evas_common_image_colorspace_normalize(RGBA_Image *im) | |||
634 | break; | 696 | break; |
635 | } | 697 | } |
636 | im->cs.dirty = 0; | 698 | im->cs.dirty = 0; |
699 | #ifdef SURFDBG | ||
700 | surf_debug(); | ||
701 | #endif | ||
637 | } | 702 | } |
638 | 703 | ||
639 | EAPI void | 704 | EAPI void |