97 SurfaceDataBounds span; |
97 SurfaceDataBounds span; |
98 unsigned char *pMask = |
98 unsigned char *pMask = |
99 (maskArray |
99 (maskArray |
100 ? (*env)->GetPrimitiveArrayCritical(env, maskArray, 0) |
100 ? (*env)->GetPrimitiveArrayCritical(env, maskArray, 0) |
101 : 0); |
101 : 0); |
|
102 jint savesx = srcInfo.bounds.x1; |
|
103 jint savedx = dstInfo.bounds.x1; |
102 if (maskArray != NULL && pMask == NULL) { |
104 if (maskArray != NULL && pMask == NULL) { |
103 SurfaceData_InvokeRelease(env, dstOps, &dstInfo); |
105 SurfaceData_InvokeRelease(env, dstOps, &dstInfo); |
104 SurfaceData_InvokeRelease(env, srcOps, &srcInfo); |
106 SurfaceData_InvokeRelease(env, srcOps, &srcInfo); |
105 SurfaceData_InvokeUnlock(env, dstOps, &dstInfo); |
107 SurfaceData_InvokeUnlock(env, dstOps, &dstInfo); |
106 SurfaceData_InvokeUnlock(env, srcOps, &srcInfo); |
108 SurfaceData_InvokeUnlock(env, srcOps, &srcInfo); |
107 return; |
109 return; |
108 } |
110 } |
109 jint savesx = srcInfo.bounds.x1; |
|
110 jint savedx = dstInfo.bounds.x1; |
|
111 Region_StartIteration(env, &clipInfo); |
111 Region_StartIteration(env, &clipInfo); |
112 while (Region_NextIteration(&clipInfo, &span)) { |
112 while (Region_NextIteration(&clipInfo, &span)) { |
113 void *pSrc = PtrCoord(srcInfo.rasBase, |
113 void *pSrc = PtrCoord(srcInfo.rasBase, |
114 srcx + span.x1, srcInfo.pixelStride, |
114 srcx + span.x1, srcInfo.pixelStride, |
115 srcy + span.y1, srcInfo.scanStride); |
115 srcy + span.y1, srcInfo.scanStride); |