Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
W
wine-winehq
Project
Project
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Registry
Registry
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
wine
wine-winehq
Commits
12e3eadd
Commit
12e3eadd
authored
Jul 17, 2007
by
Evan Stade
Committed by
Alexandre Julliard
Jul 18, 2007
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
gdiplus: Added GdipMultiplyMatrix.
parent
024800cb
Show whitespace changes
Inline
Side-by-side
Showing
5 changed files
with
46 additions
and
1 deletion
+46
-1
gdiplus.spec
dlls/gdiplus/gdiplus.spec
+1
-1
matrix.c
dlls/gdiplus/matrix.c
+36
-0
gdiplusenums.h
include/gdiplusenums.h
+7
-0
gdiplusflat.h
include/gdiplusflat.h
+1
-0
gdiplusgpstubs.h
include/gdiplusgpstubs.h
+1
-0
No files found.
dlls/gdiplus/gdiplus.spec
View file @
12e3eadd
...
...
@@ -424,7 +424,7 @@
@ stub GdipMeasureDriverString
@ stub GdipMeasureString
@ stub GdipMultiplyLineTransform
@ st
ub GdipMultiplyMatrix
@ st
dcall GdipMultiplyMatrix(ptr ptr long)
@ stub GdipMultiplyPathGradientTransform
@ stub GdipMultiplyPenTransform
@ stub GdipMultiplyTextureTransform
...
...
dlls/gdiplus/matrix.c
View file @
12e3eadd
...
...
@@ -25,6 +25,28 @@
#include "gdiplus.h"
#include "gdiplus_private.h"
/* Multiplies two matrices of the form
*
* idx:0 idx:1 0
* idx:2 idx:3 0
* idx:4 idx:5 1
*
* and puts the output in out.
* */
static
void
matrix_multiply
(
GDIPCONST
REAL
*
left
,
GDIPCONST
REAL
*
right
,
REAL
*
out
)
{
REAL
temp
[
6
];
int
i
,
odd
;
for
(
i
=
0
;
i
<
6
;
i
++
){
odd
=
i
%
2
;
temp
[
i
]
=
left
[
i
-
odd
]
*
right
[
odd
]
+
left
[
i
-
odd
+
1
]
*
right
[
odd
+
2
]
+
(
i
>=
4
?
right
[
odd
+
4
]
:
0
.
0
);
}
memcpy
(
out
,
temp
,
6
*
sizeof
(
REAL
));
}
GpStatus
WINGDIPAPI
GdipCreateMatrix2
(
REAL
m11
,
REAL
m12
,
REAL
m21
,
REAL
m22
,
REAL
dx
,
REAL
dy
,
GpMatrix
**
matrix
)
{
...
...
@@ -57,6 +79,20 @@ GpStatus WINGDIPAPI GdipDeleteMatrix(GpMatrix *matrix)
return
Ok
;
}
GpStatus
WINGDIPAPI
GdipMultiplyMatrix
(
GpMatrix
*
matrix
,
GpMatrix
*
matrix2
,
GpMatrixOrder
order
)
{
if
(
!
matrix
||
!
matrix2
)
return
InvalidParameter
;
if
(
order
==
MatrixOrderAppend
)
matrix_multiply
(
matrix
->
matrix
,
matrix2
->
matrix
,
matrix
->
matrix
);
else
matrix_multiply
(
matrix2
->
matrix
,
matrix
->
matrix
,
matrix
->
matrix
);
return
Ok
;
}
GpStatus
WINGDIPAPI
GdipTransformMatrixPoints
(
GpMatrix
*
matrix
,
GpPointF
*
pts
,
INT
count
)
{
...
...
include/gdiplusenums.h
View file @
12e3eadd
...
...
@@ -151,6 +151,12 @@ enum DashStyle
DashStyleCustom
};
enum
MatrixOrder
{
MatrixOrderPrepend
=
0
,
MatrixOrderAppend
=
1
};
#ifndef __cplusplus
typedef
enum
Unit
Unit
;
...
...
@@ -166,6 +172,7 @@ typedef enum InterpolationMode InterpolationMode;
typedef
enum
PixelOffsetMode
PixelOffsetMode
;
typedef
enum
DashCap
DashCap
;
typedef
enum
DashStyle
DashStyle
;
typedef
enum
MatrixOrder
MatrixOrder
;
#endif
/* end of c typedefs */
...
...
include/gdiplusflat.h
View file @
12e3eadd
...
...
@@ -87,6 +87,7 @@ GpStatus WINGDIPAPI GdipTransformPath(GpPath*,GpMatrix*);
GpStatus
WINGDIPAPI
GdipCreateMatrix2
(
REAL
,
REAL
,
REAL
,
REAL
,
REAL
,
REAL
,
GpMatrix
**
);
GpStatus
WINGDIPAPI
GdipDeleteMatrix
(
GpMatrix
*
);
GpStatus
WINGDIPAPI
GdipMultiplyMatrix
(
GpMatrix
*
,
GpMatrix
*
,
GpMatrixOrder
);
GpStatus
WINGDIPAPI
GdipTransformMatrixPoints
(
GpMatrix
*
,
GpPointF
*
,
INT
);
GpStatus
WINGDIPAPI
GdipCreatePathIter
(
GpPathIterator
**
,
GpPath
*
);
...
...
include/gdiplusgpstubs.h
View file @
12e3eadd
...
...
@@ -52,5 +52,6 @@ typedef RectF GpRectF;
typedef
LineJoin
GpLineJoin
;
typedef
DashCap
GpDashCap
;
typedef
DashStyle
GpDashStyle
;
typedef
MatrixOrder
GpMatrixOrder
;
#endif
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment