On Fri, Jun 6, 2008 at 11:47 AM, Jose Gonzalez <[EMAIL PROTECTED]> wrote:
>  Mats Ekberg wrote:
>> I have attached a minimal test case that shows the same behaviour as
>> our application code. The image size is set once, but the second time
>> (if there has been a rendering in between) the assertion error occurs
>> if the new size differs from the old. We are not, as Carsten Haitzler
>> asked, calling evas_object_image_size_set() from inside the get_pixels
>> callback. Perhaps there are some other restrictions on when it is
>> allowed to change the image size?
>>
>> /Mats
>>
>> On Wed, Jun 4, 2008 at 5:09 PM, Cedric BAIL <[EMAIL PROTECTED]> wrote:
>>>> [...] when we resize it, we get the following assertion
>>>> error:
>>>>
>>>> evas-0.9.9.041/src/lib/cache/evas_cache_image.c:488:
>>>> evas_cache_image_size_set: Assertion `im->references > 0' failed.
>>>>
>>>> This does not happen the first time we set the image size, but as we
>>>> want the bitmap to exactly match the size of the displayed area, we
>>>> need to resize the buffer as the displayed area changes. Any ideas?
>>>>
>>>
>>> Sounds like a cache bug, do you have some test case for this that you
>>> could send to me ?
>
>     That certainly seems odd.. any news on this? One thing I did
> notice while quickly looking thru the "evas_object_image.c" file in
> canvas was that in the render_pre function there are a couple of
> instances where the engines' function "image_dirty_region" is used
> but its return value doesn't get set to anything (according to the
> use it's being put to, it should be giving o->engine_data, which is
> the internal version of the image structure). I quickly changed that
> but it did nothing to fix this particular problem.
>     There is an abundance of engine image funcs which return this.

I did some test around this and I think it came from the fact that
o->dirty_pixels is not set to 1 after the second call to
evas_object_image_size_set. A quick fix for your example is to call
evas_object_image_pixels_dirty_set just after
evas_object_image_size_set. I currently don't know enough to properly
fix evas, but this could help others find the right solution.

-- 
Cedric BAIL

-------------------------------------------------------------------------
Check out the new SourceForge.net Marketplace.
It's the best place to buy or sell services for
just about anything Open Source.
http://sourceforge.net/services/buy/index.php
_______________________________________________
enlightenment-devel mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/enlightenment-devel

Reply via email to