mirror of
https://github.com/reactos/reactos.git
synced 2025-02-23 17:05:46 +00:00
Added two new subroutines in support for writing data to and from user space. Fixed calc in CoordCnvP to use float not fixed.
svn path=/trunk/; revision=28296
This commit is contained in:
parent
66469de606
commit
fcd3ddadc4
3 changed files with 46 additions and 3 deletions
|
@ -70,18 +70,20 @@ VOID FASTCALL
|
|||
CoordCnvP(MATRIX_S * mx, LPPOINT Point)
|
||||
{
|
||||
FLOAT x, y;
|
||||
gxf_long a, b;
|
||||
gxf_long a, b, c;
|
||||
|
||||
x = (FLOAT)Point->x;
|
||||
y = (FLOAT)Point->y;
|
||||
|
||||
a.l = EFtoF( &mx->efM11 );
|
||||
b.l = EFtoF( &mx->efM21 );
|
||||
x = x * a.f + y * b.f + mx->fxDx;
|
||||
c.l = EFtoF( &mx->efDx );
|
||||
x = x * a.f + y * b.f + c.f;
|
||||
|
||||
a.l = EFtoF( &mx->efM12 );
|
||||
b.l = EFtoF( &mx->efM22 );
|
||||
y = x * a.f + y * b.f + mx->fxDy;
|
||||
c.l = EFtoF( &mx->efDy );
|
||||
y = x * a.f + y * b.f + c.f;
|
||||
|
||||
FLOAT_TO_INT(x, Point->x );
|
||||
FLOAT_TO_INT(y, Point->y );
|
||||
|
|
|
@ -198,6 +198,43 @@ FLOATOBJ_AddFloat(
|
|||
#endif
|
||||
}
|
||||
|
||||
VOID FASTCALL
|
||||
XForm2MatrixS( MATRIX_S * Matrix, PXFORM XForm)
|
||||
{
|
||||
gxf_long f;
|
||||
f.f = XForm->eM11;
|
||||
FtoEF( &Matrix->efM11, f.l);
|
||||
f.f = XForm->eM12;
|
||||
FtoEF( &Matrix->efM12, f.l);
|
||||
f.f = XForm->eM21;
|
||||
FtoEF( &Matrix->efM21, f.l);
|
||||
f.f = XForm->eM22;
|
||||
FtoEF( &Matrix->efM22, f.l);
|
||||
f.f = XForm->eDx;
|
||||
FtoEF( &Matrix->efDx, f.l);
|
||||
f.f = XForm->eDy;
|
||||
FtoEF( &Matrix->efDy, f.l);
|
||||
}
|
||||
|
||||
VOID FASTCALL
|
||||
MatrixS2XForm( PXFORM XForm, MATRIX_S * Matrix)
|
||||
{
|
||||
gxf_long f;
|
||||
f.l = EFtoF(&Matrix->efM11);
|
||||
XForm->eM11 = f.f;
|
||||
f.l = EFtoF(&Matrix->efM12);
|
||||
XForm->eM12 = f.f;
|
||||
f.l = EFtoF(&Matrix->efM21);
|
||||
XForm->eM21 = f.f;
|
||||
f.l = EFtoF(&Matrix->efM22);
|
||||
XForm->eM22 = f.f;
|
||||
f.l = EFtoF(&Matrix->efDx);
|
||||
XForm->eDx = f.f;
|
||||
f.l = EFtoF(&Matrix->efDy);
|
||||
XForm->eDy = f.f;
|
||||
}
|
||||
|
||||
|
||||
VOID
|
||||
STDCALL
|
||||
FLOATOBJ_AddLong(
|
||||
|
|
|
@ -101,3 +101,7 @@ static __inline void INTERNAL_LPTODP(DC *dc, LPPOINT point)
|
|||
MulDiv((ty), (dc)->Dc_Attr.szlViewportExt.cy, (dc)->Dc_Attr.szlWindowExt.cy)
|
||||
|
||||
#endif
|
||||
|
||||
VOID FASTCALL XForm2MatrixS( MATRIX_S *, PXFORM);
|
||||
VOID FASTCALL MatrixS2XForm( PXFORM, MATRIX_S *);
|
||||
|
||||
|
|
Loading…
Reference in a new issue