1 package mhr.appcore.blending;
3 import mhr.appcore.bitmap.BitmapInfo;
4 import mhr.appcore.bitmap.ChannelCount;
5 import mhr.appcore.bitmap.Depth;
6 import mhr.appcore.bitmap.NBitmap;
7 import mhr.appcore.bitmap.NativeType;
8 import mhr.appcore.exceptions.AlreadyDisposedException;
9 import mhr.appcore.utils.Rect;
16 protected native
static int blendTo(
int nativeType,
int mode,
long dstAdress,
long srcAdress,
int srcTlx,
int srcTly,
int srcBrx,
int srcBry,
int srcOrigX,
int srcOrigY);
18 protected native
static int blendTo(
int nativeType,
int mode,
long dstAdress,
long srcAdress,
int srcTlx,
int srcTly,
int srcBrx,
int srcBry,
int srcOrigX,
int srcOrigY,
21 protected native
static int blendTo(
int nativeType,
int mode,
long dstAdress,
int color,
int dstTlx,
int dstTly,
int dstBrx,
int dstBry);
23 protected native
static int blendTo(
int nativeType,
int mode,
long dstAdress,
int color,
int dstTlx,
int dstTly,
int dstBrx,
int dstBry,
double alpha);
25 protected native
static int addTo(
int nativeType,
long dstAdress,
long srcAdress,
int srcTlx,
int srcTly,
int srcBrx,
int srcBry,
int srcOrigX,
int srcOrigY);
27 protected native
static int addTo(
int nativeType,
long dstAdress,
long srcAdress,
int srcTlx,
int srcTly,
int srcBrx,
int srcBry,
int srcOrigX,
int srcOrigY,
double alpha);
29 protected native
static int addTo(
int nativeType,
long dstAdress,
long mskAdress,
long srcAdress,
int mskTlx,
int mskTly,
int mskBrx,
int mskBry,
int srcOrigX,
int srcOrigY,
30 int mskOrigX,
int mskOrigY);
32 protected native
static int addTo(
int nativeType,
long dstAdress,
long mskAdress,
long srcAdress,
int mskTlx,
int mskTly,
int mskBrx,
int mskBry,
int srcOrigX,
int srcOrigY,
33 int mskOrigX,
int mskOrigY,
double alpha);
35 protected native
static int removeFrom(
int nativeType,
long dstAdress,
long srcAdress,
int srcTlx,
int srcTly,
int srcBrx,
int srcBry,
int srcOrigX,
int srcOrigY);
37 protected native
static int removeFrom(
int nativeType,
long dstAdress,
long srcAdress,
int srcTlx,
int srcTly,
int srcBrx,
int srcBry,
int srcOrigX,
int srcOrigY,
double alpha);
39 protected native
static int removeFrom(
int nativeType,
long dstAdress,
long mskAdress,
long srcAdress,
int mskTlx,
int mskTly,
int mskBrx,
int mskBry,
int srcOrigX,
40 int srcOrigY,
int mskOrigX,
int mskOrigY);
42 protected native
static int removeFrom(
int nativeType,
long dstAdress,
long mskAdress,
long srcAdress,
int mskTlx,
int mskTly,
int mskBrx,
int mskBry,
int srcOrigX,
43 int srcOrigY,
int mskOrigX,
int mskOrigY,
double alpha);
45 protected native
static int addTo4ch(
int nativeType,
long dstAdress,
long srcAdress,
int srcTlx,
int srcTly,
int srcBrx,
int srcBry,
int srcOrigX,
int srcOrigY);
47 protected native
static int addTo4ch(
int nativeType,
long dstAdress,
long srcAdress,
int srcTlx,
int srcTly,
int srcBrx,
int srcBry,
int srcOrigX,
int srcOrigY,
double alpha);
49 protected native
static int addTo4ch(
int nativeType,
long dstAdress,
long mskAdress,
long srcAdress,
int mskTlx,
int mskTly,
int mskBrx,
int mskBry,
int srcOrigX,
50 int srcOrigY,
int mskOrigX,
int mskOrigY);
52 protected native
static int addTo4ch(
int nativeType,
long dstAdress,
long mskAdress,
long srcAdress,
int mskTlx,
int mskTly,
int mskBrx,
int mskBry,
int srcOrigX,
53 int srcOrigY,
int mskOrigX,
int mskOrigY,
double alpha);
55 protected native
static int removeFrom4ch(
int nativeType,
long dstAdress,
long srcAdress,
int srcTlx,
int srcTly,
int srcBrx,
int srcBry,
int srcOrigX,
int srcOrigY);
57 protected native
static int removeFrom4ch(
int nativeType,
long dstAdress,
long srcAdress,
int srcTlx,
int srcTly,
int srcBrx,
int srcBry,
int srcOrigX,
int srcOrigY,
60 protected native
static int removeFrom4ch(
int nativeType,
long dstAdress,
long mskAdress,
long srcAdress,
int mskTlx,
int mskTly,
int mskBrx,
int mskBry,
int srcOrigX,
61 int srcOrigY,
int mskOrigX,
int mskOrigY);
63 protected native
static int removeFrom4ch(
int nativeType,
long dstAdress,
long mskAdress,
long srcAdress,
int mskTlx,
int mskTly,
int mskBrx,
int mskBry,
int srcOrigX,
64 int srcOrigY,
int mskOrigX,
int mskOrigY,
double alpha);
66 protected native
static int drawTo(
int nativeType,
int mode,
long dstAdress,
long mskAdress,
int color,
int mskTlx,
int mskTly,
int mskBrx,
int mskBry,
int mskOrigX,
69 protected native
static int drawTo(
int nativeType,
int mode,
long dstAdress,
long mskAdress,
int color,
int mskTlx,
int mskTly,
int mskBrx,
int mskBry,
int mskOrigX,
70 int mskOrigY,
double alpha);
72 protected native
static int drawTo(
int nativeType,
int mode,
long dstAdress,
long mskAdress,
long srcAdress,
int mskTlx,
int mskTly,
int mskBrx,
int mskBry,
int srcOrigX,
73 int srcOrigY,
int mskOrigX,
int mskOrigY);
75 protected native
static int drawTo(
int nativeType,
int mode,
long dstAdress,
long mskAdress,
long srcAdress,
int mskTlx,
int mskTly,
int mskBrx,
int mskBry,
int srcOrigX,
76 int srcOrigY,
int mskOrigX,
int mskOrigY,
double alpha);
90 return blendTo(src.getNativeType().getValue(), mode.getValue(), dst.getAdress(), src.getAdress(), srcRect.tlx, srcRect.tly, srcRect.brx, srcRect.bry, srcOrigX,
93 throw new IllegalArgumentException(
"Operation is not applicable to suplied NBitmaps.");
101 return blendTo(src.getNativeType().getValue(), mode.getValue(), dst.getAdress(), src.getAdress(), srcRect.tlx, srcRect.tly, srcRect.brx, srcRect.bry, srcOrigX,
104 throw new IllegalArgumentException(
"Operation is not applicable to suplied NBitmaps.");
111 return blendTo(dst.getNativeType().getValue(), mode.getValue(), dst.getAdress(), color, dstRect.tlx, dstRect.tly, dstRect.brx, dstRect.bry);
113 throw new IllegalArgumentException(
"Operation is not applicable to suplied NBitmaps.");
120 return blendTo(dst.getNativeType().getValue(), mode.getValue(), dst.getAdress(), color, dstRect.tlx, dstRect.tly, dstRect.brx, dstRect.bry, alpha);
122 throw new IllegalArgumentException(
"Operation is not applicable to suplied NBitmaps.");
129 return addTo(src.getNativeType().getValue(), dst.getAdress(), src.getAdress(), srcRect.tlx, srcRect.tly, srcRect.brx, srcRect.bry, srcOrigX, srcOrigY);
131 throw new IllegalArgumentException(
"Operation is not applicable to suplied NBitmaps.");
138 return addTo(src.getNativeType().getValue(), dst.getAdress(), src.getAdress(), srcRect.tlx, srcRect.tly, srcRect.brx, srcRect.bry, srcOrigX, srcOrigY, alpha);
140 throw new IllegalArgumentException(
"Operation is not applicable to suplied NBitmaps.");
144 public static int addTo(
NBitmap dst,
NBitmap msk,
NBitmap src,
Rect mskRect,
int srcOrigX,
int srcOrigY,
int mskOrigX,
int mskOrigY)
throws IllegalArgumentException,
151 return addTo(dst.getNativeType().getValue(), dst.getAdress(), msk.getAdress(), src.getAdress(), mskRect.tlx, mskRect.tly, mskRect.brx, mskRect.bry, srcOrigX, srcOrigY,
154 throw new IllegalArgumentException(
"Operation is not applicable to suplied NBitmaps.");
165 return addTo(dst.getNativeType().getValue(), dst.getAdress(), msk.getAdress(), src.getAdress(), mskRect.tlx, mskRect.tly, mskRect.brx, mskRect.bry, srcOrigX, srcOrigY,
166 mskOrigX, mskOrigY, alpha);
168 throw new IllegalArgumentException(
"Operation is not applicable to suplied NBitmaps.");
175 return removeFrom(src.getNativeType().getValue(), dst.getAdress(), src.getAdress(), srcRect.tlx, srcRect.tly, srcRect.brx, srcRect.bry, srcOrigX, srcOrigY);
177 throw new IllegalArgumentException(
"Operation is not applicable to suplied NBitmaps.");
184 return removeFrom(src.getNativeType().getValue(), dst.getAdress(), src.getAdress(), srcRect.tlx, srcRect.tly, srcRect.brx, srcRect.bry, srcOrigX, srcOrigY, alpha);
186 throw new IllegalArgumentException(
"Operation is not applicable to suplied NBitmaps.");
197 return removeFrom(dst.getNativeType().getValue(), dst.getAdress(), msk.getAdress(), src.getAdress(), mskRect.tlx, mskRect.tly, mskRect.brx, mskRect.bry, srcOrigX,
198 srcOrigY, mskOrigX, mskOrigY);
200 throw new IllegalArgumentException(
"Operation is not applicable to suplied NBitmaps.");
211 return removeFrom(dst.getNativeType().getValue(), dst.getAdress(), msk.getAdress(), src.getAdress(), mskRect.tlx, mskRect.tly, mskRect.brx, mskRect.bry, srcOrigX,
212 srcOrigY, mskOrigX, mskOrigY, alpha);
214 throw new IllegalArgumentException(
"Operation is not applicable to suplied NBitmaps.");
222 return addTo4ch(src.getNativeType().getValue(), dst.getAdress(), src.getAdress(), srcRect.tlx, srcRect.tly, srcRect.brx, srcRect.bry, srcOrigX, srcOrigY);
224 throw new IllegalArgumentException(
"Operation is not applicable to suplied NBitmaps.");
232 return addTo4ch(src.getNativeType().getValue(), dst.getAdress(), src.getAdress(), srcRect.tlx, srcRect.tly, srcRect.brx, srcRect.bry, srcOrigX, srcOrigY, alpha);
234 throw new IllegalArgumentException(
"Operation is not applicable to suplied NBitmaps.");
245 return addTo4ch(dst.getNativeType().getValue(), dst.getAdress(), msk.getAdress(), src.getAdress(), mskRect.tlx, mskRect.tly, mskRect.brx, mskRect.bry, srcOrigX,
246 srcOrigY, mskOrigX, mskOrigY);
248 throw new IllegalArgumentException(
"Operation is not applicable to suplied NBitmaps.");
259 return addTo4ch(dst.getNativeType().getValue(), dst.getAdress(), msk.getAdress(), src.getAdress(), mskRect.tlx, mskRect.tly, mskRect.brx, mskRect.bry, srcOrigX,
260 srcOrigY, mskOrigX, mskOrigY, alpha);
262 throw new IllegalArgumentException(
"Operation is not applicable to suplied NBitmaps.");
270 return removeFrom4ch(src.getNativeType().getValue(), dst.getAdress(), src.getAdress(), srcRect.tlx, srcRect.tly, srcRect.brx, srcRect.bry, srcOrigX, srcOrigY);
272 throw new IllegalArgumentException(
"Operation is not applicable to suplied NBitmaps.");
280 return removeFrom4ch(src.getNativeType().getValue(), dst.getAdress(), src.getAdress(), srcRect.tlx, srcRect.tly, srcRect.brx, srcRect.bry, srcOrigX, srcOrigY, alpha);
282 throw new IllegalArgumentException(
"Operation is not applicable to suplied NBitmaps.");
293 return removeFrom4ch(dst.getNativeType().getValue(), dst.getAdress(), msk.getAdress(), src.getAdress(), mskRect.tlx, mskRect.tly, mskRect.brx, mskRect.bry, srcOrigX,
294 srcOrigY, mskOrigX, mskOrigY);
296 throw new IllegalArgumentException(
"Operation is not applicable to suplied NBitmaps.");
307 return removeFrom4ch(dst.getNativeType().getValue(), dst.getAdress(), msk.getAdress(), src.getAdress(), mskRect.tlx, mskRect.tly, mskRect.brx, mskRect.bry, srcOrigX,
308 srcOrigY, mskOrigX, mskOrigY, alpha);
310 throw new IllegalArgumentException(
"Operation is not applicable to suplied NBitmaps.");
319 return drawTo(dst.getNativeType().getValue(), mode.getValue(), dst.getAdress(), msk.getAdress(), color, mskRect.tlx, mskRect.tly, mskRect.brx, mskRect.bry, mskOrigX,
322 throw new IllegalArgumentException(
"Operation is not applicable to suplied NBitmaps.");
331 return drawTo(dst.getNativeType().getValue(), mode.getValue(), dst.getAdress(), msk.getAdress(), color, mskRect.tlx, mskRect.tly, mskRect.brx, mskRect.bry, mskOrigX,
334 throw new IllegalArgumentException(
"Operation is not applicable to suplied NBitmaps.");
345 return drawTo(dst.getNativeType().getValue(), mode.getValue(), dst.getAdress(), msk.getAdress(), src.getAdress(), mskRect.tlx, mskRect.tly, mskRect.brx, mskRect.bry,
346 srcOrigX, srcOrigY, mskOrigX, mskOrigY);
348 throw new IllegalArgumentException(
"Operation is not applicable to suplied NBitmaps.");
359 return drawTo(dst.getNativeType().getValue(), mode.getValue(), dst.getAdress(), msk.getAdress(), src.getAdress(), mskRect.tlx, mskRect.tly, mskRect.brx, mskRect.bry,
360 srcOrigX, srcOrigY, mskOrigX, mskOrigY, alpha);
362 throw new IllegalArgumentException(
"Operation is not applicable to suplied NBitmaps.");