DECLARE_CONVERT_BLIT(IntArgb, ByteBinary1Bit); DECLARE_XOR_BLIT(IntArgb, ByteBinary1Bit); DECLARE_ALPHA_MASKBLIT(ByteBinary1Bit, IntArgb); DECLARE_ALPHA_MASKBLIT(IntArgb, ByteBinary1Bit); DECLARE_ALPHA_MASKFILL(ByteBinary1Bit); NativePrimitive ByteBinary1BitPrimitives[] = { REGISTER_SOLID_FILLRECT(ByteBinary1Bit), REGISTER_SOLID_FILLSPANS(ByteBinary1Bit), REGISTER_SOLID_LINE_PRIMITIVES(ByteBinary1Bit), REGISTER_XOR_FILLRECT(ByteBinary1Bit), REGISTER_XOR_FILLSPANS(ByteBinary1Bit), REGISTER_XOR_LINE_PRIMITIVES(ByteBinary1Bit), REGISTER_SOLID_DRAWGLYPHLIST(ByteBinary1Bit), REGISTER_SOLID_DRAWGLYPHLISTAA(ByteBinary1Bit), REGISTER_XOR_DRAWGLYPHLIST(ByteBinary1Bit), REGISTER_CONVERT_BLIT(ByteBinary1Bit, ByteBinary1Bit), REGISTER_CONVERT_BLIT(ByteBinary1Bit, IntArgb), REGISTER_CONVERT_BLIT(IntArgb, ByteBinary1Bit), REGISTER_XOR_BLIT(IntArgb, ByteBinary1Bit), REGISTER_ALPHA_MASKBLIT(ByteBinary1Bit, IntArgb), REGISTER_ALPHA_MASKBLIT(IntArgb, ByteBinary1Bit), REGISTER_ALPHA_MASKFILL(ByteBinary1Bit), }; jboolean RegisterByteBinary1Bit(JNIEnv *env) { return RegisterPrimitives(env, ByteBinary1BitPrimitives,
REGISTER_SCALE_BLIT(Index12Gray, Index8Gray), REGISTER_SCALE_BLIT_FLAGS(Index8Gray, Index8Gray, 0, SD_LOCK_LUT | SD_LOCK_INVGRAY), REGISTER_XPAR_CONVERT_BLIT(ByteIndexedBm, Index8Gray), REGISTER_XPAR_BLITBG(ByteIndexedBm, Index8Gray), REGISTER_XOR_BLIT(IntArgb, Index8Gray), REGISTER_ALPHA_MASKFILL(Index8Gray), REGISTER_ALPHA_MASKBLIT(IntArgb, Index8Gray), REGISTER_ALPHA_MASKBLIT(IntArgbPre, Index8Gray), REGISTER_ALPHA_MASKBLIT(IntRgb, Index8Gray), REGISTER_SRCOVER_MASKFILL(Index8Gray), REGISTER_SRCOVER_MASKBLIT(IntArgb, Index8Gray), REGISTER_SRCOVER_MASKBLIT(IntArgbPre, Index8Gray), REGISTER_SOLID_DRAWGLYPHLISTAA(Index8Gray), REGISTER_TRANSFORMHELPER_FUNCS(Index8Gray), }; extern jboolean checkSameLut(jint *SrcReadLut, jint *DstReadLut, SurfaceDataRasInfo *pSrcInfo, SurfaceDataRasInfo *pDstInfo); jboolean RegisterIndex8Gray(JNIEnv *env) { return RegisterPrimitives(env, Index8GrayPrimitives, ArraySize(Index8GrayPrimitives)); } jint PixelForIndex8Gray(SurfaceDataRasInfo *pRasInfo, jint rgb)
NAME_XPAR_SCALE_BLIT(IntArgbBm, IntArgb)), REGISTER_XPAR_BLITBG(IntArgbBm, IntRgb), REGISTER_XPAR_BLITBG_EQUIV(ByteIndexedBm, IntRgb, NAME_XPAR_BLITBG(ByteIndexedBm, IntArgb)), REGISTER_XOR_BLIT(IntArgb, IntRgb), REGISTER_SRC_MASKFILL(IntRgb), REGISTER_SRCOVER_MASKFILL(IntRgb), REGISTER_ALPHA_MASKFILL(IntRgb), REGISTER_SRCOVER_MASKBLIT(IntArgb, IntRgb), REGISTER_ALPHA_MASKBLIT(IntArgb, IntRgb), REGISTER_SRCOVER_MASKBLIT(IntArgbPre, IntRgb), REGISTER_ALPHA_MASKBLIT(IntArgbPre, IntRgb), REGISTER_ALPHA_MASKBLIT(IntRgb, IntRgb), REGISTER_SOLID_DRAWGLYPHLISTAA(IntRgb), REGISTER_SOLID_DRAWGLYPHLISTLCD(IntRgb), REGISTER_TRANSFORMHELPER_FUNCS(IntRgb), }; jboolean RegisterIntRgb(JNIEnv *env) { return RegisterPrimitives(env, IntRgbPrimitives, ArraySize(IntRgbPrimitives)); } DEFINE_CONVERT_BLIT(IntRgb, IntArgb, 1IntRgb) DEFINE_CONVERT_BLIT(ThreeByteBgr, IntRgb, 1IntRgb)
REGISTER_ANYINT_ISOSCALE_BLIT(IntArgbBm), REGISTER_ANYINT_ISOXOR_BLIT(IntArgbBm), REGISTER_CONVERT_BLIT(IntArgbBm, IntArgb), REGISTER_CONVERT_BLIT(IntArgb, IntArgbBm), REGISTER_CONVERT_BLIT(ByteIndexed, IntArgbBm), REGISTER_SCALE_BLIT(IntArgb, IntArgbBm), REGISTER_SCALE_BLIT(ByteIndexed, IntArgbBm), REGISTER_XPAR_CONVERT_BLIT(ByteIndexedBm, IntArgbBm), REGISTER_XPAR_SCALE_BLIT(ByteIndexedBm, IntArgbBm), REGISTER_XPAR_BLITBG(ByteIndexedBm, IntArgbBm), REGISTER_XOR_BLIT(IntArgb, IntArgbBm), REGISTER_ALPHA_MASKFILL(IntArgbBm), REGISTER_ALPHA_MASKBLIT(IntArgb, IntArgbBm), REGISTER_ALPHA_MASKBLIT(IntArgbPre, IntArgbBm), REGISTER_SOLID_DRAWGLYPHLISTAA(IntArgbBm), REGISTER_SOLID_DRAWGLYPHLISTLCD(IntArgbBm), REGISTER_TRANSFORMHELPER_FUNCS(IntArgbBm), }; jboolean RegisterIntArgbBm(JNIEnv *env) { return RegisterPrimitives(env, IntArgbBmPrimitives, ArraySize(IntArgbBmPrimitives)); } jint PixelForIntArgbBm(SurfaceDataRasInfo *pRasInfo, jint rgb) { return (rgb | ((rgb >> 31) << 24)); }
REGISTER_CONVERT_BLIT_EQUIV(Index8Gray, IntBgr, NAME_CONVERT_BLIT(ByteIndexed, IntArgb)), REGISTER_CONVERT_BLIT_EQUIV(Index12Gray, IntBgr, NAME_CONVERT_BLIT(Index12Gray, IntArgb)), REGISTER_XOR_BLIT(IntArgb, IntBgr), REGISTER_SRC_MASKFILL(IntBgr), REGISTER_SRCOVER_MASKFILL(IntBgr), REGISTER_ALPHA_MASKFILL(IntBgr), REGISTER_SRCOVER_MASKBLIT(IntArgb, IntBgr), REGISTER_ALPHA_MASKBLIT(IntArgb, IntBgr), REGISTER_SRCOVER_MASKBLIT(IntArgbPre, IntBgr), REGISTER_ALPHA_MASKBLIT(IntArgbPre, IntBgr), REGISTER_ALPHA_MASKBLIT(IntRgb, IntBgr), REGISTER_ALPHA_MASKBLIT(IntBgr, IntBgr), REGISTER_SOLID_DRAWGLYPHLISTAA(IntBgr), REGISTER_SOLID_DRAWGLYPHLISTLCD(IntBgr), REGISTER_TRANSFORMHELPER_FUNCS(IntBgr), }; jboolean RegisterIntBgr(JNIEnv *env) { return RegisterPrimitives(env, IntBgrPrimitives, ArraySize(IntBgrPrimitives)); } jint PixelForIntBgr(SurfaceDataRasInfo *pRasInfo, jint rgb) { return SwapIntDcmComponentsX123ToX321(rgb); }
REGISTER_SCALE_BLIT(ByteIndexed, ThreeByteBgr), REGISTER_XPAR_CONVERT_BLIT(ByteIndexedBm, ThreeByteBgr), REGISTER_XPAR_SCALE_BLIT(ByteIndexedBm, ThreeByteBgr), REGISTER_XPAR_SCALE_BLIT(IntArgbBm, ThreeByteBgr), REGISTER_XPAR_BLITBG(ByteIndexedBm, ThreeByteBgr), REGISTER_XPAR_CONVERT_BLIT(IntArgbBm, ThreeByteBgr), REGISTER_XPAR_BLITBG(IntArgbBm, ThreeByteBgr), REGISTER_XOR_BLIT(IntArgb, ThreeByteBgr), REGISTER_SRC_MASKFILL(ThreeByteBgr), REGISTER_SRCOVER_MASKFILL(ThreeByteBgr), REGISTER_ALPHA_MASKFILL(ThreeByteBgr), REGISTER_SRCOVER_MASKBLIT(IntArgb, ThreeByteBgr), REGISTER_ALPHA_MASKBLIT(IntArgb, ThreeByteBgr), REGISTER_ALPHA_MASKBLIT(IntRgb, ThreeByteBgr), REGISTER_SOLID_DRAWGLYPHLISTAA(ThreeByteBgr), }; jboolean RegisterThreeByteBgr(JNIEnv *env) { return RegisterPrimitives(env, ThreeByteBgrPrimitives, ArraySize(ThreeByteBgrPrimitives)); } DEFINE_CONVERT_BLIT(ThreeByteBgr, IntArgb, 1IntArgb) DEFINE_CONVERT_BLIT(IntArgb, ThreeByteBgr, 1IntRgb) DEFINE_CONVERT_BLIT(ByteGray, ThreeByteBgr, 3ByteRgb) DEFINE_CONVERT_BLIT_LUT8(ByteIndexed, ThreeByteBgr, ConvertOnTheFly)
REGISTER_CONVERT_BLIT(ThreeByteBgr, Ushort555Rgbx), REGISTER_CONVERT_BLIT(ByteGray, Ushort555Rgbx), REGISTER_CONVERT_BLIT(ByteIndexed, Ushort555Rgbx), REGISTER_SCALE_BLIT(Ushort555Rgbx, IntArgb), REGISTER_SCALE_BLIT(IntArgb, Ushort555Rgbx), REGISTER_SCALE_BLIT_EQUIV(IntRgb, Ushort555Rgbx, NAME_SCALE_BLIT(IntArgb, Ushort555Rgbx)), REGISTER_SCALE_BLIT(ThreeByteBgr, Ushort555Rgbx), REGISTER_SCALE_BLIT(ByteGray, Ushort555Rgbx), REGISTER_SCALE_BLIT(ByteIndexed, Ushort555Rgbx), REGISTER_XPAR_CONVERT_BLIT(ByteIndexedBm, Ushort555Rgbx), REGISTER_XPAR_SCALE_BLIT(ByteIndexedBm, Ushort555Rgbx), REGISTER_XPAR_SCALE_BLIT(IntArgbBm, Ushort555Rgbx), REGISTER_XPAR_BLITBG(ByteIndexedBm, Ushort555Rgbx), REGISTER_XOR_BLIT(IntArgb, Ushort555Rgbx), REGISTER_SOLID_DRAWGLYPHLISTAA(Ushort555Rgbx), }; jboolean RegisterUshort555Rgbx(JNIEnv *env) { return RegisterPrimitives(env, Ushort555RgbxPrimitives, ArraySize(Ushort555RgbxPrimitives)); } jint PixelForUshort555Rgbx(SurfaceDataRasInfo *pRasInfo, jint rgb) { return IntArgbToUshort555Rgbx(rgb); } DEFINE_CONVERT_BLIT(Ushort555Rgbx, IntArgb, 3ByteRgb)
REGISTER_SCALE_BLIT(ThreeByteBgr, ByteIndexed), REGISTER_SCALE_BLIT(ByteGray, ByteIndexed), REGISTER_SCALE_BLIT(Index12Gray, ByteIndexed), REGISTER_SCALE_BLIT_FLAGS(ByteIndexed, ByteIndexed, 0, SD_LOCK_LUT), REGISTER_XPAR_CONVERT_BLIT(ByteIndexedBm, ByteIndexed), REGISTER_XPAR_SCALE_BLIT(ByteIndexedBm, ByteIndexed), REGISTER_XPAR_SCALE_BLIT(IntArgbBm, ByteIndexed), REGISTER_XPAR_BLITBG(ByteIndexedBm, ByteIndexed), REGISTER_XPAR_CONVERT_BLIT(IntArgbBm, ByteIndexed), REGISTER_XPAR_BLITBG(IntArgbBm, ByteIndexed), REGISTER_XOR_BLIT(IntArgb, ByteIndexed), REGISTER_ALPHA_MASKFILL(ByteIndexed), REGISTER_ALPHA_MASKBLIT(IntArgb, ByteIndexed), REGISTER_ALPHA_MASKBLIT(IntRgb, ByteIndexed), REGISTER_SOLID_DRAWGLYPHLISTAA(ByteIndexed), }; jboolean RegisterByteIndexed(JNIEnv *env) { return RegisterPrimitives(env, ByteIndexedPrimitives, ArraySize(ByteIndexedPrimitives)); } jint PixelForByteIndexed(SurfaceDataRasInfo *pRasInfo, jint rgb) { jint r, g, b; ExtractIntDcmComponentsX123(rgb, r, g, b); return SurfaceData_InvColorMap(pRasInfo->invColorTable, r, g, b); }