Lines Matching refs:hnd

113 #define PROCESS_LINE(hnd, fX0, fY0, fX1, fY1, checkBounds, pixelInfo)       \
129 jfloat xMinf = hnd->dhnd->xMinf + 0.5f; \
130 jfloat yMinf = hnd->dhnd->yMinf + 0.5f; \
131 jfloat xMaxf = hnd->dhnd->xMaxf + 0.5f; \
132 jfloat yMaxf = hnd->dhnd->yMaxf + 0.5f; \
151 hnd->dhnd->pDrawPixel(hnd->dhnd, X0, Y0); \
154 hnd->dhnd->pDrawPixel(hnd->dhnd, X0, Y0); \
165 hnd->dhnd->pDrawPixel(hnd->dhnd, X0, Y0); \
168 hnd->dhnd->pDrawLine(hnd->dhnd, X0, Y0, X1, Y1); \
184 hnd->dhnd->pDrawPixel(hnd->dhnd, X1, Y1); \
190 #define PROCESS_POINT(hnd, fX, fY, checkBounds, pixelInfo) \
195 (hnd->dhnd->yMin > _Y || \
196 hnd->dhnd->yMax <= _Y || \
197 hnd->dhnd->xMin > _X || \
198 hnd->dhnd->xMax <= _X)) break; \
202 * assert(hnd->dhnd->yMin <= _Y && \
203 * hnd->dhnd->yMax > _Y && \
204 * hnd->dhnd->xMin <= _X && \
205 * hnd->dhnd->xMax > _X); \
214 hnd->dhnd->pDrawPixel(hnd->dhnd, _X, _Y); \
217 hnd->dhnd->pDrawPixel(hnd->dhnd, _X, _Y); \
473 void ProcessFixedLine(ProcessHandler* hnd,jint x1,jint y1,jint x2,jint y2,
485 PROCESS_POINT(hnd, x1 + MDP_HALF_MULT, y1 + MDP_HALF_MULT,
558 PROCESS_LINE(hnd, rx1, ry1, rx2, ry2, checkBounds, pixelInfo);
565 static void DrawMonotonicQuad(ProcessHandler* hnd,
658 hnd->pProcessFixedLine(hnd, x1, y1, x2, y2, pixelInfo, checkBounds,
667 hnd->pProcessFixedLine(hnd, x2, y2, xe, ye, pixelInfo, checkBounds,
676 static void ProcessMonotonicQuad(ProcessHandler* hnd,
697 if (hnd->clipMode == PH_MODE_DRAW_CLIP) {
702 if (hnd->dhnd->xMaxf < xMin || hnd->dhnd->xMinf > xMax ||
703 hnd->dhnd->yMaxf < yMin || hnd->dhnd->yMinf > yMax) {
712 if (hnd->dhnd->yMaxf < yMin || hnd->dhnd->yMinf > yMax ||
713 hnd->dhnd->xMaxf < xMin)
722 if (hnd->dhnd->xMinf > xMax) {
723 coords[0] = coords[2] = coords[4] = hnd->dhnd->xMinf;
737 ProcessMonotonicQuad(hnd, coords, pixelInfo);
739 ProcessMonotonicQuad(hnd, coords1, pixelInfo);
741 DrawMonotonicQuad(hnd, coords,
746 hnd->dhnd->xMinf >= xMin || hnd->dhnd->xMaxf <= xMax ||
747 hnd->dhnd->yMinf >= yMin || hnd->dhnd->yMaxf <= yMax,
758 static void ProcessFirstMonotonicPartOfQuad(ProcessHandler* hnd, jfloat* coords,
772 ProcessMonotonicQuad(hnd, coords1, pixelInfo);
780 static void ProcessQuad(ProcessHandler* hnd, jfloat* coords, jint* pixelInfo) {
861 ProcessFirstMonotonicPartOfQuad(hnd, coords, pixelInfo,
865 ProcessFirstMonotonicPartOfQuad(hnd, coords, pixelInfo,
869 ProcessFirstMonotonicPartOfQuad(hnd, coords, pixelInfo,
876 ProcessMonotonicQuad(hnd,coords,pixelInfo);
993 static void DrawMonotonicCubic(ProcessHandler* hnd,
1145 hnd->pProcessFixedLine(hnd, x1, y1, x2, y2, pixelInfo, checkBounds,
1148 hnd->pProcessFixedLine(hnd, x2, y2, xe, ye, pixelInfo, checkBounds,
1159 static void ProcessMonotonicCubic(ProcessHandler* hnd,
1184 if (hnd->clipMode == PH_MODE_DRAW_CLIP) {
1189 if (hnd->dhnd->xMaxf < xMin || hnd->dhnd->xMinf > xMax ||
1190 hnd->dhnd->yMaxf < yMin || hnd->dhnd->yMinf > yMax) {
1199 if (hnd->dhnd->yMaxf < yMin || hnd->dhnd->yMinf > yMax ||
1200 hnd->dhnd->xMaxf < xMin)
1209 if (hnd->dhnd->xMinf > xMax) {
1211 hnd->dhnd->xMinf;
1231 ProcessMonotonicCubic(hnd, coords, pixelInfo);
1233 ProcessMonotonicCubic(hnd, coords1, pixelInfo);
1236 DrawMonotonicCubic(hnd, coords,
1241 hnd->dhnd->xMinf > xMin || hnd->dhnd->xMaxf < xMax ||
1242 hnd->dhnd->yMinf > yMin || hnd->dhnd->yMaxf < yMax,
1253 static void ProcessFirstMonotonicPartOfCubic(ProcessHandler* hnd,
1275 ProcessMonotonicCubic(hnd, coords1, pixelInfo);
1284 static void ProcessCubic(ProcessHandler* hnd, jfloat* coords, jint* pixelInfo)
1351 ProcessFirstMonotonicPartOfCubic(hnd, coords, pixelInfo,
1356 ProcessFirstMonotonicPartOfCubic(hnd, coords, pixelInfo,
1363 ProcessMonotonicCubic(hnd,coords,pixelInfo);
1366 static void ProcessLine(ProcessHandler* hnd,
1380 xMin = hnd->dhnd->xMinf;
1381 yMin = hnd->dhnd->yMinf;
1382 xMax = hnd->dhnd->xMaxf;
1383 yMax = hnd->dhnd->yMaxf;
1393 if (hnd->clipMode == PH_MODE_DRAW_CLIP) {
1408 hnd->pProcessFixedLine(hnd, X1, Y1, X2, Y2, pixelInfo,
1431 hnd->pProcessFixedLine(hnd, X3, Y3, X1, Y1, pixelInfo,
1447 hnd->pProcessFixedLine(hnd, X1, Y1, X2, Y2, pixelInfo,
1454 hnd->pProcessFixedLine(hnd, X2, Y2, X3, Y3, pixelInfo,
1460 jboolean ProcessPath(ProcessHandler* hnd,
1486 if (hnd->stroke == PH_STROKE_PURE) {
1497 ADJUST(hnd->dhnd->xMin, LOWER_OUT_BND, UPPER_OUT_BND);
1498 ADJUST(hnd->dhnd->yMin, LOWER_OUT_BND, UPPER_OUT_BND);
1499 ADJUST(hnd->dhnd->xMax, LOWER_OUT_BND, UPPER_OUT_BND);
1500 ADJUST(hnd->dhnd->yMax, LOWER_OUT_BND, UPPER_OUT_BND);
1513 hnd->dhnd->xMinf = hnd->dhnd->xMin - 0.5f;
1514 hnd->dhnd->yMinf = hnd->dhnd->yMin - 0.5f;
1515 hnd->dhnd->xMaxf = hnd->dhnd->xMax - 0.5f - EPSF;
1516 hnd->dhnd->yMaxf = hnd->dhnd->yMax - 0.5f - EPSF;
1525 if (hnd->clipMode == PH_MODE_FILL_CLIP) {
1529 ProcessLine(hnd, tCoords, closeCoord,
1533 hnd->pProcessEndSubPath(hnd);
1584 ProcessLine(hnd, tCoords, tCoords + 2,
1625 ProcessQuad(hnd, tCoords, pixelInfo);
1627 ProcessLine(hnd, tCoords,
1675 ProcessCubic(hnd, tCoords, pixelInfo);
1677 ProcessLine(hnd, tCoords, tCoords + 6,
1694 ProcessLine(hnd, tCoords, closeCoord, pixelInfo);
1702 hnd->pProcessEndSubPath(hnd);
1711 if (hnd->clipMode == PH_MODE_FILL_CLIP) {
1715 ProcessLine(hnd, tCoords, closeCoord,
1719 hnd->pProcessEndSubPath(hnd);
1945 void FillPolygon(ProcessHandler* hnd,
1956 jint rightBnd = hnd->dhnd->xMax - 1;
1957 FillData* pfd = (FillData*)(hnd->pData);
2059 xl = xr = hnd->dhnd->xMin;
2073 hnd->dhnd->pDrawScanline(hnd->dhnd, xl, xr, y >> MDP_PREC);
2085 hnd->dhnd->pDrawScanline(hnd->dhnd, xl, rightBnd, y >> MDP_PREC);
2094 void StoreFixedLine(ProcessHandler* hnd,jint x1,jint y1,jint x2,jint y2,
2113 outXMin = (jint)(hnd->dhnd->xMinf * MDP_MULT);
2114 outXMax = (jint)(hnd->dhnd->xMaxf * MDP_MULT);
2115 outYMin = (jint)(hnd->dhnd->yMinf * MDP_MULT);
2116 outYMax = (jint)(hnd->dhnd->yMaxf * MDP_MULT);
2129 StoreFixedLine(hnd, x3, y3, x1, y1, pixelInfo,
2142 StoreFixedLine(hnd, x1, y1, x2, y2, pixelInfo,
2147 StoreFixedLine(hnd, x2, y2, x3, y3, pixelInfo,
2153 pfd = (FillData*)(hnd->pData);
2170 static void endSubPath(ProcessHandler* hnd) {
2171 FillData* pfd = (FillData*)(hnd->pData);
2177 static void stubEndSubPath(ProcessHandler* hnd) {
2190 ProcessHandler hnd =
2200 /* Initialization of the following fields in the declaration of the hnd
2204 hnd.dhnd = dhnd;
2205 hnd.pData = &fillData;
2206 hnd.stroke = stroke;
2209 res = ProcessPath(&hnd, (jfloat)transX, (jfloat)transY,
2215 FillPolygon(&hnd, fillRule);
2226 ProcessHandler hnd =
2236 /* Initialization of the following fields in the declaration of the hnd
2240 hnd.dhnd = dhnd;
2241 hnd.stroke = stroke;
2243 hnd.pProcessEndSubPath = (pProcessEndSubPath == NULL)?
2245 return ProcessPath(&hnd, (jfloat)transX, (jfloat)transY, coords, maxCoords,