[Top][All Lists]

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
## Re: [Gnash-dev] Matrix hell

**From**: |
strk |

**Subject**: |
Re: [Gnash-dev] Matrix hell |

**Date**: |
Tue, 30 Sep 2008 10:49:26 +0200 |

On Tue, Sep 30, 2008 at 10:31:31AM +0200, strk wrote:
>* Zou, I'm having an hard time with that gnash matrix...*
>* *
>* This is the test:*
>* *
>* 1) Matrix is read from SWF:*
>* (a=1, b=0, c=0, d=-2, tx=200, ty=200)*
>* _xscale==100;*
>* _yscale==200; // expected to be positive on extraction*
>* _rotation==0;*
>* *
>* 2) _yscale is set to 100:*
>* (a=1, b=0, c=0, d=-1, tx=200, ty=200) // 'd' expected to retain sign*
>* _xscale==100;*
>* _yscale==100; // expected to be positive *
>* _rotation==0;*
>* *
>* 3) _yscale is set to -100*
>* (a=1, b=0, c=0, d=1, tx=200, ty=200) // 'd' expected to change sign*
>* _xscale==100;*
>* _yscale==-100; // as set by AS*
>* _rotation==0;*
>* *
>* 4) _yscale is set to 100 [ HERE GNASH FAILS ]*
>* (a=1, b=0, c=0, d=-1, tx=200, ty=200) // gnash gives 'd=1'*
>* _xscale==100;*
>* _yscale==100;*
>* _rotation==0;*
Just an observation: from step (3) to step (4)
we're basically callin matrix::set_y_scale(100)
to a matrix that's already an identity.
There's no way we can have matrix::set_y_scale()
determine whether or not that 'd' element of the
matrix should be sign-swapped or not by only
taking _yscale ! The same input would result
in another output if the matrix was read as
an identity one from the start...
-strk;