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
