Detailed description |
|
Using LibartDevice.PushTrafo with a translation still draws objects at the old place.
When drawing an object, LibartDevice.get_svps gets called.
It checks if the object is in a cache and if libart_matrix is the same as the cached value then it uses the cache.
Since adding a translation to trafo_stack doesn't alter libart_matrix get_svps will return the cached values (as a side note, it also seems to put them back into the cache).
There is no code in Skencil that would exhibit this bug.
Attached is a patch to test/test_libartdevice.py with a new test case for this (no fix, though).
The code that compares the images is copied from the test case found in the same file. Note that when checking the rendered images I had to increase a lot that max_ratio parameter to make the tests pass for scaling and rotation. I don't know if this is bad, but the images still look very much the same, unlike those from the translation test. |
|