author | lana |
Wed, 05 Jan 2011 11:21:00 -0800 | |
changeset 7762 | 6e45e1e87347 |
parent 7745 | ebd6382e93fd |
parent 7668 | d4a77089c587 |
permissions | -rw-r--r-- |
7487
9b031d062ede
6775317: Improve performance of non-AA transformed rectangles and single wide lines in software pipelines
flar
parents:
diff
changeset
|
1 |
/* |
7668 | 2 |
* Copyright (c) 2008, 2010, Oracle and/or its affiliates. All rights reserved. |
7487
9b031d062ede
6775317: Improve performance of non-AA transformed rectangles and single wide lines in software pipelines
flar
parents:
diff
changeset
|
3 |
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. |
9b031d062ede
6775317: Improve performance of non-AA transformed rectangles and single wide lines in software pipelines
flar
parents:
diff
changeset
|
4 |
* |
9b031d062ede
6775317: Improve performance of non-AA transformed rectangles and single wide lines in software pipelines
flar
parents:
diff
changeset
|
5 |
* This code is free software; you can redistribute it and/or modify it |
9b031d062ede
6775317: Improve performance of non-AA transformed rectangles and single wide lines in software pipelines
flar
parents:
diff
changeset
|
6 |
* under the terms of the GNU General Public License version 2 only, as |
9b031d062ede
6775317: Improve performance of non-AA transformed rectangles and single wide lines in software pipelines
flar
parents:
diff
changeset
|
7 |
* published by the Free Software Foundation. Oracle designates this |
9b031d062ede
6775317: Improve performance of non-AA transformed rectangles and single wide lines in software pipelines
flar
parents:
diff
changeset
|
8 |
* particular file as subject to the "Classpath" exception as provided |
9b031d062ede
6775317: Improve performance of non-AA transformed rectangles and single wide lines in software pipelines
flar
parents:
diff
changeset
|
9 |
* by Oracle in the LICENSE file that accompanied this code. |
9b031d062ede
6775317: Improve performance of non-AA transformed rectangles and single wide lines in software pipelines
flar
parents:
diff
changeset
|
10 |
* |
9b031d062ede
6775317: Improve performance of non-AA transformed rectangles and single wide lines in software pipelines
flar
parents:
diff
changeset
|
11 |
* This code is distributed in the hope that it will be useful, but WITHOUT |
9b031d062ede
6775317: Improve performance of non-AA transformed rectangles and single wide lines in software pipelines
flar
parents:
diff
changeset
|
12 |
* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or |
9b031d062ede
6775317: Improve performance of non-AA transformed rectangles and single wide lines in software pipelines
flar
parents:
diff
changeset
|
13 |
* FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License |
9b031d062ede
6775317: Improve performance of non-AA transformed rectangles and single wide lines in software pipelines
flar
parents:
diff
changeset
|
14 |
* version 2 for more details (a copy is included in the LICENSE file that |
9b031d062ede
6775317: Improve performance of non-AA transformed rectangles and single wide lines in software pipelines
flar
parents:
diff
changeset
|
15 |
* accompanied this code). |
9b031d062ede
6775317: Improve performance of non-AA transformed rectangles and single wide lines in software pipelines
flar
parents:
diff
changeset
|
16 |
* |
9b031d062ede
6775317: Improve performance of non-AA transformed rectangles and single wide lines in software pipelines
flar
parents:
diff
changeset
|
17 |
* You should have received a copy of the GNU General Public License version |
9b031d062ede
6775317: Improve performance of non-AA transformed rectangles and single wide lines in software pipelines
flar
parents:
diff
changeset
|
18 |
* 2 along with this work; if not, write to the Free Software Foundation, |
9b031d062ede
6775317: Improve performance of non-AA transformed rectangles and single wide lines in software pipelines
flar
parents:
diff
changeset
|
19 |
* Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. |
9b031d062ede
6775317: Improve performance of non-AA transformed rectangles and single wide lines in software pipelines
flar
parents:
diff
changeset
|
20 |
* |
9b031d062ede
6775317: Improve performance of non-AA transformed rectangles and single wide lines in software pipelines
flar
parents:
diff
changeset
|
21 |
* Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA |
9b031d062ede
6775317: Improve performance of non-AA transformed rectangles and single wide lines in software pipelines
flar
parents:
diff
changeset
|
22 |
* or visit www.oracle.com if you need additional information or have any |
9b031d062ede
6775317: Improve performance of non-AA transformed rectangles and single wide lines in software pipelines
flar
parents:
diff
changeset
|
23 |
* questions. |
9b031d062ede
6775317: Improve performance of non-AA transformed rectangles and single wide lines in software pipelines
flar
parents:
diff
changeset
|
24 |
*/ |
9b031d062ede
6775317: Improve performance of non-AA transformed rectangles and single wide lines in software pipelines
flar
parents:
diff
changeset
|
25 |
|
9b031d062ede
6775317: Improve performance of non-AA transformed rectangles and single wide lines in software pipelines
flar
parents:
diff
changeset
|
26 |
#include "math.h" |
9b031d062ede
6775317: Improve performance of non-AA transformed rectangles and single wide lines in software pipelines
flar
parents:
diff
changeset
|
27 |
#include "GraphicsPrimitiveMgr.h" |
7745 | 28 |
#include "ParallelogramUtils.h" |
7487
9b031d062ede
6775317: Improve performance of non-AA transformed rectangles and single wide lines in software pipelines
flar
parents:
diff
changeset
|
29 |
|
9b031d062ede
6775317: Improve performance of non-AA transformed rectangles and single wide lines in software pipelines
flar
parents:
diff
changeset
|
30 |
#include "sun_java2d_loops_FillParallelogram.h" |
9b031d062ede
6775317: Improve performance of non-AA transformed rectangles and single wide lines in software pipelines
flar
parents:
diff
changeset
|
31 |
|
9b031d062ede
6775317: Improve performance of non-AA transformed rectangles and single wide lines in software pipelines
flar
parents:
diff
changeset
|
32 |
/* |
9b031d062ede
6775317: Improve performance of non-AA transformed rectangles and single wide lines in software pipelines
flar
parents:
diff
changeset
|
33 |
* Class: sun_java2d_loops_FillParallelogram |
9b031d062ede
6775317: Improve performance of non-AA transformed rectangles and single wide lines in software pipelines
flar
parents:
diff
changeset
|
34 |
* Method: FillParallelogram |
9b031d062ede
6775317: Improve performance of non-AA transformed rectangles and single wide lines in software pipelines
flar
parents:
diff
changeset
|
35 |
* Signature: (Lsun/java2d/SunGraphics2D;Lsun/java2d/SurfaceData;DDDDDD)V |
9b031d062ede
6775317: Improve performance of non-AA transformed rectangles and single wide lines in software pipelines
flar
parents:
diff
changeset
|
36 |
*/ |
9b031d062ede
6775317: Improve performance of non-AA transformed rectangles and single wide lines in software pipelines
flar
parents:
diff
changeset
|
37 |
JNIEXPORT void JNICALL |
9b031d062ede
6775317: Improve performance of non-AA transformed rectangles and single wide lines in software pipelines
flar
parents:
diff
changeset
|
38 |
Java_sun_java2d_loops_FillParallelogram_FillParallelogram |
9b031d062ede
6775317: Improve performance of non-AA transformed rectangles and single wide lines in software pipelines
flar
parents:
diff
changeset
|
39 |
(JNIEnv *env, jobject self, |
9b031d062ede
6775317: Improve performance of non-AA transformed rectangles and single wide lines in software pipelines
flar
parents:
diff
changeset
|
40 |
jobject sg2d, jobject sData, |
9b031d062ede
6775317: Improve performance of non-AA transformed rectangles and single wide lines in software pipelines
flar
parents:
diff
changeset
|
41 |
jdouble x0, jdouble y0, |
9b031d062ede
6775317: Improve performance of non-AA transformed rectangles and single wide lines in software pipelines
flar
parents:
diff
changeset
|
42 |
jdouble dx1, jdouble dy1, |
9b031d062ede
6775317: Improve performance of non-AA transformed rectangles and single wide lines in software pipelines
flar
parents:
diff
changeset
|
43 |
jdouble dx2, jdouble dy2) |
9b031d062ede
6775317: Improve performance of non-AA transformed rectangles and single wide lines in software pipelines
flar
parents:
diff
changeset
|
44 |
{ |
9b031d062ede
6775317: Improve performance of non-AA transformed rectangles and single wide lines in software pipelines
flar
parents:
diff
changeset
|
45 |
SurfaceDataOps *sdOps; |
9b031d062ede
6775317: Improve performance of non-AA transformed rectangles and single wide lines in software pipelines
flar
parents:
diff
changeset
|
46 |
SurfaceDataRasInfo rasInfo; |
9b031d062ede
6775317: Improve performance of non-AA transformed rectangles and single wide lines in software pipelines
flar
parents:
diff
changeset
|
47 |
NativePrimitive *pPrim; |
9b031d062ede
6775317: Improve performance of non-AA transformed rectangles and single wide lines in software pipelines
flar
parents:
diff
changeset
|
48 |
CompositeInfo compInfo; |
9b031d062ede
6775317: Improve performance of non-AA transformed rectangles and single wide lines in software pipelines
flar
parents:
diff
changeset
|
49 |
jint pixel; |
9b031d062ede
6775317: Improve performance of non-AA transformed rectangles and single wide lines in software pipelines
flar
parents:
diff
changeset
|
50 |
jint ix1, iy1, ix2, iy2; |
9b031d062ede
6775317: Improve performance of non-AA transformed rectangles and single wide lines in software pipelines
flar
parents:
diff
changeset
|
51 |
|
9b031d062ede
6775317: Improve performance of non-AA transformed rectangles and single wide lines in software pipelines
flar
parents:
diff
changeset
|
52 |
if ((dy1 == 0 && dx1 == 0) || (dy2 == 0 && dx2 == 0)) { |
9b031d062ede
6775317: Improve performance of non-AA transformed rectangles and single wide lines in software pipelines
flar
parents:
diff
changeset
|
53 |
return; |
9b031d062ede
6775317: Improve performance of non-AA transformed rectangles and single wide lines in software pipelines
flar
parents:
diff
changeset
|
54 |
} |
9b031d062ede
6775317: Improve performance of non-AA transformed rectangles and single wide lines in software pipelines
flar
parents:
diff
changeset
|
55 |
|
9b031d062ede
6775317: Improve performance of non-AA transformed rectangles and single wide lines in software pipelines
flar
parents:
diff
changeset
|
56 |
/* |
9b031d062ede
6775317: Improve performance of non-AA transformed rectangles and single wide lines in software pipelines
flar
parents:
diff
changeset
|
57 |
* Sort parallelogram by y values, ensure that each delta vector |
7745 | 58 |
* has a non-negative y delta. |
7487
9b031d062ede
6775317: Improve performance of non-AA transformed rectangles and single wide lines in software pipelines
flar
parents:
diff
changeset
|
59 |
*/ |
7745 | 60 |
SORT_PGRAM(x0, y0, dx1, dy1, dx2, dy2, ); |
61 |
||
62 |
PGRAM_MIN_MAX(ix1, ix2, x0, dx1, dx2, JNI_FALSE); |
|
7487
9b031d062ede
6775317: Improve performance of non-AA transformed rectangles and single wide lines in software pipelines
flar
parents:
diff
changeset
|
63 |
iy1 = (jint) floor(y0 + 0.5); |
9b031d062ede
6775317: Improve performance of non-AA transformed rectangles and single wide lines in software pipelines
flar
parents:
diff
changeset
|
64 |
iy2 = (jint) floor(y0 + dy1 + dy2 + 0.5); |
9b031d062ede
6775317: Improve performance of non-AA transformed rectangles and single wide lines in software pipelines
flar
parents:
diff
changeset
|
65 |
|
9b031d062ede
6775317: Improve performance of non-AA transformed rectangles and single wide lines in software pipelines
flar
parents:
diff
changeset
|
66 |
pPrim = GetNativePrim(env, self); |
9b031d062ede
6775317: Improve performance of non-AA transformed rectangles and single wide lines in software pipelines
flar
parents:
diff
changeset
|
67 |
if (pPrim == NULL) { |
9b031d062ede
6775317: Improve performance of non-AA transformed rectangles and single wide lines in software pipelines
flar
parents:
diff
changeset
|
68 |
return; |
9b031d062ede
6775317: Improve performance of non-AA transformed rectangles and single wide lines in software pipelines
flar
parents:
diff
changeset
|
69 |
} |
9b031d062ede
6775317: Improve performance of non-AA transformed rectangles and single wide lines in software pipelines
flar
parents:
diff
changeset
|
70 |
pixel = GrPrim_Sg2dGetPixel(env, sg2d); |
9b031d062ede
6775317: Improve performance of non-AA transformed rectangles and single wide lines in software pipelines
flar
parents:
diff
changeset
|
71 |
if (pPrim->pCompType->getCompInfo != NULL) { |
9b031d062ede
6775317: Improve performance of non-AA transformed rectangles and single wide lines in software pipelines
flar
parents:
diff
changeset
|
72 |
GrPrim_Sg2dGetCompInfo(env, sg2d, pPrim, &compInfo); |
9b031d062ede
6775317: Improve performance of non-AA transformed rectangles and single wide lines in software pipelines
flar
parents:
diff
changeset
|
73 |
} |
9b031d062ede
6775317: Improve performance of non-AA transformed rectangles and single wide lines in software pipelines
flar
parents:
diff
changeset
|
74 |
|
9b031d062ede
6775317: Improve performance of non-AA transformed rectangles and single wide lines in software pipelines
flar
parents:
diff
changeset
|
75 |
sdOps = SurfaceData_GetOps(env, sData); |
9b031d062ede
6775317: Improve performance of non-AA transformed rectangles and single wide lines in software pipelines
flar
parents:
diff
changeset
|
76 |
if (sdOps == NULL) { |
9b031d062ede
6775317: Improve performance of non-AA transformed rectangles and single wide lines in software pipelines
flar
parents:
diff
changeset
|
77 |
return; |
9b031d062ede
6775317: Improve performance of non-AA transformed rectangles and single wide lines in software pipelines
flar
parents:
diff
changeset
|
78 |
} |
9b031d062ede
6775317: Improve performance of non-AA transformed rectangles and single wide lines in software pipelines
flar
parents:
diff
changeset
|
79 |
|
9b031d062ede
6775317: Improve performance of non-AA transformed rectangles and single wide lines in software pipelines
flar
parents:
diff
changeset
|
80 |
GrPrim_Sg2dGetClip(env, sg2d, &rasInfo.bounds); |
9b031d062ede
6775317: Improve performance of non-AA transformed rectangles and single wide lines in software pipelines
flar
parents:
diff
changeset
|
81 |
SurfaceData_IntersectBoundsXYXY(&rasInfo.bounds, ix1, iy1, ix2, iy2); |
9b031d062ede
6775317: Improve performance of non-AA transformed rectangles and single wide lines in software pipelines
flar
parents:
diff
changeset
|
82 |
if (rasInfo.bounds.y2 <= rasInfo.bounds.y1 || |
9b031d062ede
6775317: Improve performance of non-AA transformed rectangles and single wide lines in software pipelines
flar
parents:
diff
changeset
|
83 |
rasInfo.bounds.x2 <= rasInfo.bounds.x1) |
9b031d062ede
6775317: Improve performance of non-AA transformed rectangles and single wide lines in software pipelines
flar
parents:
diff
changeset
|
84 |
{ |
9b031d062ede
6775317: Improve performance of non-AA transformed rectangles and single wide lines in software pipelines
flar
parents:
diff
changeset
|
85 |
return; |
9b031d062ede
6775317: Improve performance of non-AA transformed rectangles and single wide lines in software pipelines
flar
parents:
diff
changeset
|
86 |
} |
9b031d062ede
6775317: Improve performance of non-AA transformed rectangles and single wide lines in software pipelines
flar
parents:
diff
changeset
|
87 |
|
9b031d062ede
6775317: Improve performance of non-AA transformed rectangles and single wide lines in software pipelines
flar
parents:
diff
changeset
|
88 |
if (sdOps->Lock(env, sdOps, &rasInfo, pPrim->dstflags) != SD_SUCCESS) { |
9b031d062ede
6775317: Improve performance of non-AA transformed rectangles and single wide lines in software pipelines
flar
parents:
diff
changeset
|
89 |
return; |
9b031d062ede
6775317: Improve performance of non-AA transformed rectangles and single wide lines in software pipelines
flar
parents:
diff
changeset
|
90 |
} |
9b031d062ede
6775317: Improve performance of non-AA transformed rectangles and single wide lines in software pipelines
flar
parents:
diff
changeset
|
91 |
|
9b031d062ede
6775317: Improve performance of non-AA transformed rectangles and single wide lines in software pipelines
flar
parents:
diff
changeset
|
92 |
ix1 = rasInfo.bounds.x1; |
9b031d062ede
6775317: Improve performance of non-AA transformed rectangles and single wide lines in software pipelines
flar
parents:
diff
changeset
|
93 |
iy1 = rasInfo.bounds.y1; |
9b031d062ede
6775317: Improve performance of non-AA transformed rectangles and single wide lines in software pipelines
flar
parents:
diff
changeset
|
94 |
ix2 = rasInfo.bounds.x2; |
9b031d062ede
6775317: Improve performance of non-AA transformed rectangles and single wide lines in software pipelines
flar
parents:
diff
changeset
|
95 |
iy2 = rasInfo.bounds.y2; |
9b031d062ede
6775317: Improve performance of non-AA transformed rectangles and single wide lines in software pipelines
flar
parents:
diff
changeset
|
96 |
if (ix2 > ix1 && iy2 > iy1) { |
9b031d062ede
6775317: Improve performance of non-AA transformed rectangles and single wide lines in software pipelines
flar
parents:
diff
changeset
|
97 |
sdOps->GetRasInfo(env, sdOps, &rasInfo); |
9b031d062ede
6775317: Improve performance of non-AA transformed rectangles and single wide lines in software pipelines
flar
parents:
diff
changeset
|
98 |
if (rasInfo.rasBase) { |
9b031d062ede
6775317: Improve performance of non-AA transformed rectangles and single wide lines in software pipelines
flar
parents:
diff
changeset
|
99 |
jdouble lslope = (dy1 == 0) ? 0 : dx1 / dy1; |
9b031d062ede
6775317: Improve performance of non-AA transformed rectangles and single wide lines in software pipelines
flar
parents:
diff
changeset
|
100 |
jdouble rslope = (dy2 == 0) ? 0 : dx2 / dy2; |
9b031d062ede
6775317: Improve performance of non-AA transformed rectangles and single wide lines in software pipelines
flar
parents:
diff
changeset
|
101 |
jlong ldx = DblToLong(lslope); |
9b031d062ede
6775317: Improve performance of non-AA transformed rectangles and single wide lines in software pipelines
flar
parents:
diff
changeset
|
102 |
jlong rdx = DblToLong(rslope); |
9b031d062ede
6775317: Improve performance of non-AA transformed rectangles and single wide lines in software pipelines
flar
parents:
diff
changeset
|
103 |
jint cy1, cy2, loy, hiy; |
9b031d062ede
6775317: Improve performance of non-AA transformed rectangles and single wide lines in software pipelines
flar
parents:
diff
changeset
|
104 |
dx1 += x0; |
9b031d062ede
6775317: Improve performance of non-AA transformed rectangles and single wide lines in software pipelines
flar
parents:
diff
changeset
|
105 |
dy1 += y0; |
9b031d062ede
6775317: Improve performance of non-AA transformed rectangles and single wide lines in software pipelines
flar
parents:
diff
changeset
|
106 |
dx2 += x0; |
9b031d062ede
6775317: Improve performance of non-AA transformed rectangles and single wide lines in software pipelines
flar
parents:
diff
changeset
|
107 |
dy2 += y0; |
9b031d062ede
6775317: Improve performance of non-AA transformed rectangles and single wide lines in software pipelines
flar
parents:
diff
changeset
|
108 |
cy1 = (jint) floor(dy1 + 0.5); |
9b031d062ede
6775317: Improve performance of non-AA transformed rectangles and single wide lines in software pipelines
flar
parents:
diff
changeset
|
109 |
cy2 = (jint) floor(dy2 + 0.5); |
9b031d062ede
6775317: Improve performance of non-AA transformed rectangles and single wide lines in software pipelines
flar
parents:
diff
changeset
|
110 |
|
9b031d062ede
6775317: Improve performance of non-AA transformed rectangles and single wide lines in software pipelines
flar
parents:
diff
changeset
|
111 |
/* Top triangular portion. */ |
9b031d062ede
6775317: Improve performance of non-AA transformed rectangles and single wide lines in software pipelines
flar
parents:
diff
changeset
|
112 |
loy = iy1; |
9b031d062ede
6775317: Improve performance of non-AA transformed rectangles and single wide lines in software pipelines
flar
parents:
diff
changeset
|
113 |
hiy = (cy1 < cy2) ? cy1 : cy2; |
9b031d062ede
6775317: Improve performance of non-AA transformed rectangles and single wide lines in software pipelines
flar
parents:
diff
changeset
|
114 |
if (hiy > iy2) hiy = iy2; |
9b031d062ede
6775317: Improve performance of non-AA transformed rectangles and single wide lines in software pipelines
flar
parents:
diff
changeset
|
115 |
if (loy < hiy) { |
9b031d062ede
6775317: Improve performance of non-AA transformed rectangles and single wide lines in software pipelines
flar
parents:
diff
changeset
|
116 |
jlong lx = PGRAM_INIT_X(loy, x0, y0, lslope); |
9b031d062ede
6775317: Improve performance of non-AA transformed rectangles and single wide lines in software pipelines
flar
parents:
diff
changeset
|
117 |
jlong rx = PGRAM_INIT_X(loy, x0, y0, rslope); |
9b031d062ede
6775317: Improve performance of non-AA transformed rectangles and single wide lines in software pipelines
flar
parents:
diff
changeset
|
118 |
(*pPrim->funcs.fillparallelogram)(&rasInfo, |
9b031d062ede
6775317: Improve performance of non-AA transformed rectangles and single wide lines in software pipelines
flar
parents:
diff
changeset
|
119 |
ix1, loy, ix2, hiy, |
9b031d062ede
6775317: Improve performance of non-AA transformed rectangles and single wide lines in software pipelines
flar
parents:
diff
changeset
|
120 |
lx, ldx, rx, rdx, |
9b031d062ede
6775317: Improve performance of non-AA transformed rectangles and single wide lines in software pipelines
flar
parents:
diff
changeset
|
121 |
pixel, pPrim, &compInfo); |
9b031d062ede
6775317: Improve performance of non-AA transformed rectangles and single wide lines in software pipelines
flar
parents:
diff
changeset
|
122 |
} |
9b031d062ede
6775317: Improve performance of non-AA transformed rectangles and single wide lines in software pipelines
flar
parents:
diff
changeset
|
123 |
|
9b031d062ede
6775317: Improve performance of non-AA transformed rectangles and single wide lines in software pipelines
flar
parents:
diff
changeset
|
124 |
/* Middle parallelogram portion, which way does it slant? */ |
9b031d062ede
6775317: Improve performance of non-AA transformed rectangles and single wide lines in software pipelines
flar
parents:
diff
changeset
|
125 |
if (cy1 < cy2) { |
9b031d062ede
6775317: Improve performance of non-AA transformed rectangles and single wide lines in software pipelines
flar
parents:
diff
changeset
|
126 |
/* Middle parallelogram portion, slanted to right. */ |
9b031d062ede
6775317: Improve performance of non-AA transformed rectangles and single wide lines in software pipelines
flar
parents:
diff
changeset
|
127 |
/* left leg turned a corner at y0+dy1 */ |
9b031d062ede
6775317: Improve performance of non-AA transformed rectangles and single wide lines in software pipelines
flar
parents:
diff
changeset
|
128 |
/* right leg continuing on its initial trajectory from y0 */ |
9b031d062ede
6775317: Improve performance of non-AA transformed rectangles and single wide lines in software pipelines
flar
parents:
diff
changeset
|
129 |
loy = cy1; |
9b031d062ede
6775317: Improve performance of non-AA transformed rectangles and single wide lines in software pipelines
flar
parents:
diff
changeset
|
130 |
hiy = cy2; |
9b031d062ede
6775317: Improve performance of non-AA transformed rectangles and single wide lines in software pipelines
flar
parents:
diff
changeset
|
131 |
if (loy < iy1) loy = iy1; |
9b031d062ede
6775317: Improve performance of non-AA transformed rectangles and single wide lines in software pipelines
flar
parents:
diff
changeset
|
132 |
if (hiy > iy2) hiy = iy2; |
9b031d062ede
6775317: Improve performance of non-AA transformed rectangles and single wide lines in software pipelines
flar
parents:
diff
changeset
|
133 |
if (loy < hiy) { |
9b031d062ede
6775317: Improve performance of non-AA transformed rectangles and single wide lines in software pipelines
flar
parents:
diff
changeset
|
134 |
jlong lx = PGRAM_INIT_X(loy, dx1, dy1, rslope); |
9b031d062ede
6775317: Improve performance of non-AA transformed rectangles and single wide lines in software pipelines
flar
parents:
diff
changeset
|
135 |
jlong rx = PGRAM_INIT_X(loy, x0, y0, rslope); |
9b031d062ede
6775317: Improve performance of non-AA transformed rectangles and single wide lines in software pipelines
flar
parents:
diff
changeset
|
136 |
(*pPrim->funcs.fillparallelogram)(&rasInfo, |
9b031d062ede
6775317: Improve performance of non-AA transformed rectangles and single wide lines in software pipelines
flar
parents:
diff
changeset
|
137 |
ix1, loy, ix2, hiy, |
9b031d062ede
6775317: Improve performance of non-AA transformed rectangles and single wide lines in software pipelines
flar
parents:
diff
changeset
|
138 |
lx, rdx, rx, rdx, |
9b031d062ede
6775317: Improve performance of non-AA transformed rectangles and single wide lines in software pipelines
flar
parents:
diff
changeset
|
139 |
pixel, pPrim, &compInfo); |
9b031d062ede
6775317: Improve performance of non-AA transformed rectangles and single wide lines in software pipelines
flar
parents:
diff
changeset
|
140 |
} |
9b031d062ede
6775317: Improve performance of non-AA transformed rectangles and single wide lines in software pipelines
flar
parents:
diff
changeset
|
141 |
} else if (cy2 < cy1) { |
9b031d062ede
6775317: Improve performance of non-AA transformed rectangles and single wide lines in software pipelines
flar
parents:
diff
changeset
|
142 |
/* Middle parallelogram portion, slanted to left. */ |
9b031d062ede
6775317: Improve performance of non-AA transformed rectangles and single wide lines in software pipelines
flar
parents:
diff
changeset
|
143 |
/* left leg continuing on its initial trajectory from y0 */ |
9b031d062ede
6775317: Improve performance of non-AA transformed rectangles and single wide lines in software pipelines
flar
parents:
diff
changeset
|
144 |
/* right leg turned a corner at y0+dy2 */ |
9b031d062ede
6775317: Improve performance of non-AA transformed rectangles and single wide lines in software pipelines
flar
parents:
diff
changeset
|
145 |
loy = cy2; |
9b031d062ede
6775317: Improve performance of non-AA transformed rectangles and single wide lines in software pipelines
flar
parents:
diff
changeset
|
146 |
hiy = cy1; |
9b031d062ede
6775317: Improve performance of non-AA transformed rectangles and single wide lines in software pipelines
flar
parents:
diff
changeset
|
147 |
if (loy < iy1) loy = iy1; |
9b031d062ede
6775317: Improve performance of non-AA transformed rectangles and single wide lines in software pipelines
flar
parents:
diff
changeset
|
148 |
if (hiy > iy2) hiy = iy2; |
9b031d062ede
6775317: Improve performance of non-AA transformed rectangles and single wide lines in software pipelines
flar
parents:
diff
changeset
|
149 |
if (loy < hiy) { |
9b031d062ede
6775317: Improve performance of non-AA transformed rectangles and single wide lines in software pipelines
flar
parents:
diff
changeset
|
150 |
jlong lx = PGRAM_INIT_X(loy, x0, y0, lslope); |
9b031d062ede
6775317: Improve performance of non-AA transformed rectangles and single wide lines in software pipelines
flar
parents:
diff
changeset
|
151 |
jlong rx = PGRAM_INIT_X(loy, dx2, dy2, lslope); |
9b031d062ede
6775317: Improve performance of non-AA transformed rectangles and single wide lines in software pipelines
flar
parents:
diff
changeset
|
152 |
(*pPrim->funcs.fillparallelogram)(&rasInfo, |
9b031d062ede
6775317: Improve performance of non-AA transformed rectangles and single wide lines in software pipelines
flar
parents:
diff
changeset
|
153 |
ix1, loy, ix2, hiy, |
9b031d062ede
6775317: Improve performance of non-AA transformed rectangles and single wide lines in software pipelines
flar
parents:
diff
changeset
|
154 |
lx, ldx, rx, ldx, |
9b031d062ede
6775317: Improve performance of non-AA transformed rectangles and single wide lines in software pipelines
flar
parents:
diff
changeset
|
155 |
pixel, pPrim, &compInfo); |
9b031d062ede
6775317: Improve performance of non-AA transformed rectangles and single wide lines in software pipelines
flar
parents:
diff
changeset
|
156 |
} |
9b031d062ede
6775317: Improve performance of non-AA transformed rectangles and single wide lines in software pipelines
flar
parents:
diff
changeset
|
157 |
} |
9b031d062ede
6775317: Improve performance of non-AA transformed rectangles and single wide lines in software pipelines
flar
parents:
diff
changeset
|
158 |
|
9b031d062ede
6775317: Improve performance of non-AA transformed rectangles and single wide lines in software pipelines
flar
parents:
diff
changeset
|
159 |
/* Bottom triangular portion. */ |
9b031d062ede
6775317: Improve performance of non-AA transformed rectangles and single wide lines in software pipelines
flar
parents:
diff
changeset
|
160 |
loy = (cy1 > cy2) ? cy1 : cy2; |
9b031d062ede
6775317: Improve performance of non-AA transformed rectangles and single wide lines in software pipelines
flar
parents:
diff
changeset
|
161 |
if (loy < iy1) loy = iy1; |
9b031d062ede
6775317: Improve performance of non-AA transformed rectangles and single wide lines in software pipelines
flar
parents:
diff
changeset
|
162 |
hiy = iy2; |
9b031d062ede
6775317: Improve performance of non-AA transformed rectangles and single wide lines in software pipelines
flar
parents:
diff
changeset
|
163 |
if (loy < hiy) { |
9b031d062ede
6775317: Improve performance of non-AA transformed rectangles and single wide lines in software pipelines
flar
parents:
diff
changeset
|
164 |
/* left leg turned its corner at y0+dy1, now moving right */ |
9b031d062ede
6775317: Improve performance of non-AA transformed rectangles and single wide lines in software pipelines
flar
parents:
diff
changeset
|
165 |
/* right leg turned its corner at y0+dy2, now moving left */ |
9b031d062ede
6775317: Improve performance of non-AA transformed rectangles and single wide lines in software pipelines
flar
parents:
diff
changeset
|
166 |
jlong lx = PGRAM_INIT_X(loy, dx1, dy1, rslope); |
9b031d062ede
6775317: Improve performance of non-AA transformed rectangles and single wide lines in software pipelines
flar
parents:
diff
changeset
|
167 |
jlong rx = PGRAM_INIT_X(loy, dx2, dy2, lslope); |
9b031d062ede
6775317: Improve performance of non-AA transformed rectangles and single wide lines in software pipelines
flar
parents:
diff
changeset
|
168 |
(*pPrim->funcs.fillparallelogram)(&rasInfo, |
9b031d062ede
6775317: Improve performance of non-AA transformed rectangles and single wide lines in software pipelines
flar
parents:
diff
changeset
|
169 |
ix1, loy, ix2, hiy, |
9b031d062ede
6775317: Improve performance of non-AA transformed rectangles and single wide lines in software pipelines
flar
parents:
diff
changeset
|
170 |
lx, rdx, rx, ldx, |
9b031d062ede
6775317: Improve performance of non-AA transformed rectangles and single wide lines in software pipelines
flar
parents:
diff
changeset
|
171 |
pixel, pPrim, &compInfo); |
9b031d062ede
6775317: Improve performance of non-AA transformed rectangles and single wide lines in software pipelines
flar
parents:
diff
changeset
|
172 |
} |
9b031d062ede
6775317: Improve performance of non-AA transformed rectangles and single wide lines in software pipelines
flar
parents:
diff
changeset
|
173 |
} |
9b031d062ede
6775317: Improve performance of non-AA transformed rectangles and single wide lines in software pipelines
flar
parents:
diff
changeset
|
174 |
SurfaceData_InvokeRelease(env, sdOps, &rasInfo); |
9b031d062ede
6775317: Improve performance of non-AA transformed rectangles and single wide lines in software pipelines
flar
parents:
diff
changeset
|
175 |
} |
9b031d062ede
6775317: Improve performance of non-AA transformed rectangles and single wide lines in software pipelines
flar
parents:
diff
changeset
|
176 |
SurfaceData_InvokeUnlock(env, sdOps, &rasInfo); |
9b031d062ede
6775317: Improve performance of non-AA transformed rectangles and single wide lines in software pipelines
flar
parents:
diff
changeset
|
177 |
} |