ColorSpaces have native SkColorSpaces
Bug: 120904891 Bug: 122844033 Bug: 122514935 Test: CtsGraphicsTestCases Create an SkColorSpace when creating an android.graphics.ColorSpace.Rgb. This allows simplifying getNativeColorSpace, so that each time we need it, we do not need to call back up into Java or reconstruct the SkColorSpace. Funnel all ColorSpace.Rgb constructors into one, so we can set a final mNativePtr in the base constructor. Update TransferParameters to also be final. Use the same TransferParameters as SRGB in EXTENDED_SRGB and DISPLAY_P3. When passing a BitmapFactory.Options to native, call getNativeInstance() (which may throw an Exception) and pass the result to native. Move native ColorSpace code into its own file. Make Paint methods @CriticalNative again, now that they do not need the JNIEnv. Remove unused decodeBitmap. Change-Id: I60adbb060b87ab6f92559f1217bfefc0b9ea72e1
This commit is contained in:
@@ -195,7 +195,8 @@ public final class BitmapRegionDecoder {
|
||||
|| rect.top >= getHeight())
|
||||
throw new IllegalArgumentException("rectangle is outside the image");
|
||||
return nativeDecodeRegion(mNativeBitmapRegionDecoder, rect.left, rect.top,
|
||||
rect.right - rect.left, rect.bottom - rect.top, options);
|
||||
rect.right - rect.left, rect.bottom - rect.top, options,
|
||||
BitmapFactory.Options.nativeColorSpace(options));
|
||||
}
|
||||
}
|
||||
|
||||
@@ -265,7 +266,7 @@ public final class BitmapRegionDecoder {
|
||||
|
||||
private static native Bitmap nativeDecodeRegion(long lbm,
|
||||
int start_x, int start_y, int width, int height,
|
||||
BitmapFactory.Options options);
|
||||
BitmapFactory.Options options, long colorSpaceHandle);
|
||||
private static native int nativeGetWidth(long lbm);
|
||||
private static native int nativeGetHeight(long lbm);
|
||||
private static native void nativeClean(long lbm);
|
||||
|
||||
Reference in New Issue
Block a user