Unverified Commit f21b1970 authored by Pavel's avatar Pavel Committed by GitHub

migrate to m110 (#667)

* migrate to m110

* use skia m110-ad42464-1

---------
Co-authored-by: 's avatarOleksandr Karpovich <a.n.karpovich@gmail.com>
parent 20cd0281
...@@ -3,19 +3,19 @@ deploy.version=0.0.0 ...@@ -3,19 +3,19 @@ deploy.version=0.0.0
kotlin.mpp.enableGranularSourceSetsMetadata=true kotlin.mpp.enableGranularSourceSetsMetadata=true
kotlin.native.enableDependencyPropagation=false kotlin.native.enableDependencyPropagation=false
dependencies.skia.windows-x64=m105-adda216f-2 dependencies.skia.windows-x64=m110-ad42464-1
dependencies.skia.linux-x64=m105-adda216f-2 dependencies.skia.linux-x64=m110-ad42464-1
dependencies.skia.macos-x64=m105-adda216f-2 dependencies.skia.macos-x64=m110-ad42464-1
dependencies.skia.windows-arm64=m105-adda216f-2 dependencies.skia.windows-arm64=m110-ad42464-1
dependencies.skia.linux-arm64=m105-adda216f-2 dependencies.skia.linux-arm64=m110-ad42464-1
dependencies.skia.macos-arm64=m105-adda216f-2 dependencies.skia.macos-arm64=m110-ad42464-1
dependencies.skia.wasm-wasm=m105-adda216f-2 dependencies.skia.wasm-wasm=m110-ad42464-1
dependencies.skia.ios-x64=m105-adda216f-2 dependencies.skia.ios-x64=m110-ad42464-1
dependencies.skia.ios-arm64=m105-adda216f-2 dependencies.skia.ios-arm64=m110-ad42464-1
dependencies.skia.iosSim-arm64=m105-adda216f-2 dependencies.skia.iosSim-arm64=m110-ad42464-1
dependencies.skia.iosSim-x64=m105-adda216f-2 dependencies.skia.iosSim-x64=m110-ad42464-1
dependencies.skia.android-x64=m105-adda216f-2 dependencies.skia.android-x64=m110-ad42464-1
dependencies.skia.android-arm64=m105-adda216f-2 dependencies.skia.android-arm64=m110-ad42464-1
org.gradle.jvmargs=-Xmx3G -XX:MaxMetaspaceSize=512m org.gradle.jvmargs=-Xmx3G -XX:MaxMetaspaceSize=512m
kotlin.native.cacheKind.macosX64=none kotlin.native.cacheKind.macosX64=none
......
...@@ -363,19 +363,20 @@ class ImageFilter internal constructor(ptr: NativePointer) : RefCnt(ptr) { ...@@ -363,19 +363,20 @@ class ImageFilter internal constructor(ptr: NativePointer) : RefCnt(ptr) {
} }
} }
fun makePaint(paint: Paint?, crop: IRect?): ImageFilter { fun makeShader(shader: Shader, dither: Boolean = false, crop: IRect?): ImageFilter {
return try { return try {
Stats.onNativeCall() Stats.onNativeCall()
interopScope { interopScope {
ImageFilter( ImageFilter(
_nMakePaint( _nMakeShader(
paint = getPtr(paint), shader = getPtr(shader),
dither = dither,
crop = toInterop(crop?.serializeToIntArray()) crop = toInterop(crop?.serializeToIntArray())
) )
) )
} }
} finally { } finally {
reachabilityBarrier(paint) reachabilityBarrier(shader)
} }
} }
...@@ -791,8 +792,8 @@ private external fun _nMakeMerge(filters: InteropPointer, filtersLength: Int, cr ...@@ -791,8 +792,8 @@ private external fun _nMakeMerge(filters: InteropPointer, filtersLength: Int, cr
@ExternalSymbolName("org_jetbrains_skia_ImageFilter__1nMakeOffset") @ExternalSymbolName("org_jetbrains_skia_ImageFilter__1nMakeOffset")
private external fun _nMakeOffset(dx: Float, dy: Float, input: NativePointer, crop: InteropPointer): NativePointer private external fun _nMakeOffset(dx: Float, dy: Float, input: NativePointer, crop: InteropPointer): NativePointer
@ExternalSymbolName("org_jetbrains_skia_ImageFilter__1nMakePaint") @ExternalSymbolName("org_jetbrains_skia_ImageFilter__1nMakeShader")
private external fun _nMakePaint(paint: NativePointer, crop: InteropPointer): NativePointer private external fun _nMakeShader(shader: NativePointer, dither: Boolean, crop: InteropPointer): NativePointer
@ExternalSymbolName("org_jetbrains_skia_ImageFilter__1nMakePicture") @ExternalSymbolName("org_jetbrains_skia_ImageFilter__1nMakePicture")
private external fun _nMakePicture(picture: NativePointer, l: Float, t: Float, r: Float, b: Float): NativePointer private external fun _nMakePicture(picture: NativePointer, l: Float, t: Float, r: Float, b: Float): NativePointer
......
...@@ -370,51 +370,6 @@ class Paint : Managed { ...@@ -370,51 +370,6 @@ class Paint : Managed {
reachabilityBarrier(this) reachabilityBarrier(this)
} }
/**
* Returns the filled equivalent of the stroked path.
*
* @param src Path read to create a filled version
* @return resulting Path
*/
fun getFillPath(src: Path): Path {
return getFillPath(src, null, 1f)
}
/**
* Returns the filled equivalent of the stroked path.
*
* @param src Path read to create a filled version
* @param cull Optional limit passed to PathEffect
* @param resScale if &gt; 1, increase precision, else if (0 &lt; resScale &lt; 1) reduce precision
* to favor speed and size
* @return resulting Path
*/
fun getFillPath(src: Path, cull: Rect?, resScale: Float): Path {
return try {
Stats.onNativeCall()
if (cull == null) org.jetbrains.skia.Path(
_nGetFillPath(
_ptr,
getPtr(src),
resScale
)
) else org.jetbrains.skia.Path(
_nGetFillPathCull(
_ptr,
getPtr(src),
cull.left,
cull.top,
cull.right,
cull.bottom,
resScale
)
)
} finally {
reachabilityBarrier(this)
reachabilityBarrier(src)
}
}
/** /**
* @param shader how geometry is filled with color; if null, color is used instead * @param shader how geometry is filled with color; if null, color is used instead
* *
...@@ -674,21 +629,6 @@ private external fun _nGetStrokeJoin(ptr: NativePointer): Int ...@@ -674,21 +629,6 @@ private external fun _nGetStrokeJoin(ptr: NativePointer): Int
@ExternalSymbolName("org_jetbrains_skia_Paint__1nSetStrokeJoin") @ExternalSymbolName("org_jetbrains_skia_Paint__1nSetStrokeJoin")
private external fun _nSetStrokeJoin(ptr: NativePointer, value: Int) private external fun _nSetStrokeJoin(ptr: NativePointer, value: Int)
@ExternalSymbolName("org_jetbrains_skia_Paint__1nGetFillPath")
private external fun _nGetFillPath(ptr: NativePointer, path: NativePointer, resScale: Float): NativePointer
@ExternalSymbolName("org_jetbrains_skia_Paint__1nGetFillPathCull")
private external fun _nGetFillPathCull(
ptr: NativePointer,
path: NativePointer,
left: Float,
top: Float,
right: Float,
bottom: Float,
resScale: Float
): NativePointer
@ExternalSymbolName("org_jetbrains_skia_Paint__1nGetShader") @ExternalSymbolName("org_jetbrains_skia_Paint__1nGetShader")
private external fun _nGetShader(ptr: NativePointer): NativePointer private external fun _nGetShader(ptr: NativePointer): NativePointer
......
...@@ -216,11 +216,9 @@ class ImageFilterTest { ...@@ -216,11 +216,9 @@ class ImageFilterTest {
} }
@Test @Test
fun makePaint() = imageFilterTest { fun makeShader() = imageFilterTest {
ImageFilter.makePaint( val shader = Shader.makeColor(Color.RED)
paint = Paint().setStroke(false).setColor4f(Color4f(Color.RED), colorSpace = null), ImageFilter.makeShader(shader = shader, crop = null)
crop = null
)
} }
@Test @Test
......
...@@ -145,11 +145,12 @@ extern "C" JNIEXPORT jlong JNICALL Java_org_jetbrains_skia_ImageFilterKt__1nMake ...@@ -145,11 +145,12 @@ extern "C" JNIEXPORT jlong JNICALL Java_org_jetbrains_skia_ImageFilterKt__1nMake
return reinterpret_cast<jlong>(ptr); return reinterpret_cast<jlong>(ptr);
} }
extern "C" JNIEXPORT jlong JNICALL Java_org_jetbrains_skia_ImageFilterKt__1nMakePaint extern "C" JNIEXPORT jlong JNICALL Java_org_jetbrains_skia_ImageFilterKt__1nMakeShader
(JNIEnv* env, jclass jclass, jlong paintPtr, jintArray cropInts) { (JNIEnv* env, jclass jclass, jlong shaderPtr, jboolean ditherBoolean, jintArray cropInts) {
SkPaint* paint = reinterpret_cast<SkPaint*>(static_cast<uintptr_t>(paintPtr)); SkShader* shader = reinterpret_cast<SkShader*>(static_cast<uintptr_t>(shaderPtr));
std::unique_ptr<SkIRect> crop = skija::IRect::toSkIRect(env, cropInts); std::unique_ptr<SkIRect> crop = skija::IRect::toSkIRect(env, cropInts);
SkImageFilter* ptr = SkImageFilters::Paint(*paint, crop.get()).release(); SkImageFilters::Dither dither = ditherBoolean ? SkImageFilters::Dither::kYes : SkImageFilters::Dither::kNo;
SkImageFilter* ptr = SkImageFilters::Shader(sk_ref_sp(shader), dither, crop.get()).release();
return reinterpret_cast<jlong>(ptr); return reinterpret_cast<jlong>(ptr);
} }
......
...@@ -155,25 +155,6 @@ extern "C" JNIEXPORT void JNICALL Java_org_jetbrains_skia_PaintKt__1nSetStrokeJo ...@@ -155,25 +155,6 @@ extern "C" JNIEXPORT void JNICALL Java_org_jetbrains_skia_PaintKt__1nSetStrokeJo
instance->setStrokeJoin(static_cast<SkPaint::Join>(join)); instance->setStrokeJoin(static_cast<SkPaint::Join>(join));
} }
extern "C" JNIEXPORT jlong JNICALL Java_org_jetbrains_skia_PaintKt__1nGetFillPath
(JNIEnv* env, jclass jclass, jlong ptr, jlong srcPtr, jfloat resScale) {
SkPaint* instance = reinterpret_cast<SkPaint*>(static_cast<uintptr_t>(ptr));
SkPath* src = reinterpret_cast<SkPath*>(static_cast<uintptr_t>(srcPtr));
SkPath* dst = new SkPath();
instance->getFillPath(*src, dst, nullptr, resScale);
return reinterpret_cast<jlong>(dst);
}
extern "C" JNIEXPORT jlong JNICALL Java_org_jetbrains_skia_PaintKt__1nGetFillPathCull
(JNIEnv* env, jclass jclass, jlong ptr, jlong srcPtr, jfloat left, jfloat top, jfloat right, jfloat bottom, jfloat resScale) {
SkPaint* instance = reinterpret_cast<SkPaint*>(static_cast<uintptr_t>(ptr));
SkPath* src = reinterpret_cast<SkPath*>(static_cast<uintptr_t>(srcPtr));
SkPath* dst = new SkPath();
SkRect cull {left, top, right, bottom};
instance->getFillPath(*src, dst, &cull, resScale);
return reinterpret_cast<jlong>(dst);
}
extern "C" JNIEXPORT jlong JNICALL Java_org_jetbrains_skia_PaintKt__1nGetMaskFilter extern "C" JNIEXPORT jlong JNICALL Java_org_jetbrains_skia_PaintKt__1nGetMaskFilter
(JNIEnv* env, jclass jclass, jlong ptr) { (JNIEnv* env, jclass jclass, jlong ptr) {
SkPaint* instance = reinterpret_cast<SkPaint*>(static_cast<uintptr_t>(ptr)); SkPaint* instance = reinterpret_cast<SkPaint*>(static_cast<uintptr_t>(ptr));
......
...@@ -8,6 +8,7 @@ ...@@ -8,6 +8,7 @@
#include "src/utils/SkUTF.h" #include "src/utils/SkUTF.h"
#include "paragraph/interop.hh" #include "paragraph/interop.hh"
#include "TextStyle.h" #include "TextStyle.h"
#include "include/core/SkBlendMode.h"
namespace java { namespace java {
namespace io { namespace io {
...@@ -1065,8 +1066,8 @@ SkString skString(JNIEnv* env, jstring s) { ...@@ -1065,8 +1066,8 @@ SkString skString(JNIEnv* env, jstring s) {
jsize utfUnits = env->GetStringUTFLength(s); jsize utfUnits = env->GetStringUTFLength(s);
jsize utf16Units = env->GetStringLength(s); jsize utf16Units = env->GetStringLength(s);
SkString res(utfUnits); SkString res(utfUnits);
env->GetStringUTFRegion(s, 0, utf16Units, res.writable_str()); env->GetStringUTFRegion(s, 0, utf16Units, res.data());
size_t utf8Units = utfToUtf8((unsigned char *) res.writable_str(), utfUnits); size_t utf8Units = utfToUtf8((unsigned char *) res.data(), utfUnits);
res.resize(utf8Units); res.resize(utf8Units);
return res; return res;
} }
......
...@@ -102,7 +102,7 @@ namespace skija { ...@@ -102,7 +102,7 @@ namespace skija {
void onLoad(JNIEnv* env); void onLoad(JNIEnv* env);
void onUnload(JNIEnv* env); void onUnload(JNIEnv* env);
using ICUUText = std::unique_ptr<UText, SkFunctionWrapper<decltype(utext_close), utext_close>>; using ICUUText = std::unique_ptr<UText, SkFunctionObject<utext_close>>;
std::shared_ptr<UBreakIterator> graphemeBreakIterator(SkString& text); std::shared_ptr<UBreakIterator> graphemeBreakIterator(SkString& text);
} }
} }
...@@ -141,15 +141,15 @@ SKIKO_EXPORT KNativePointer org_jetbrains_skia_ImageFilter__1nMakeOffset ...@@ -141,15 +141,15 @@ SKIKO_EXPORT KNativePointer org_jetbrains_skia_ImageFilter__1nMakeOffset
return reinterpret_cast<KNativePointer>(ptr); return reinterpret_cast<KNativePointer>(ptr);
} }
SKIKO_EXPORT KNativePointer org_jetbrains_skia_ImageFilter__1nMakePaint SKIKO_EXPORT KNativePointer org_jetbrains_skia_ImageFilter__1nMakeShader
(KNativePointer paintPtr, KInt* cropRectInts) { (KNativePointer shaderPtr, KBoolean ditherBoolean, KInt* cropRectInts) {
SkPaint* paint = reinterpret_cast<SkPaint*>((paintPtr)); SkShader* shader = reinterpret_cast<SkShader*>((shaderPtr));
std::unique_ptr<SkIRect> crop = skija::IRect::toSkIRect(cropRectInts); std::unique_ptr<SkIRect> crop = skija::IRect::toSkIRect(cropRectInts);
SkImageFilter* ptr = SkImageFilters::Paint(*paint, crop.get()).release(); SkImageFilters::Dither dither = ditherBoolean ? SkImageFilters::Dither::kYes : SkImageFilters::Dither::kNo;
SkImageFilter* ptr = SkImageFilters::Shader(sk_ref_sp(shader), dither, crop.get()).release();
return reinterpret_cast<KNativePointer>(ptr); return reinterpret_cast<KNativePointer>(ptr);
} }
SKIKO_EXPORT KNativePointer org_jetbrains_skia_ImageFilter__1nMakePicture SKIKO_EXPORT KNativePointer org_jetbrains_skia_ImageFilter__1nMakePicture
(KNativePointer picturePtr, KFloat l, KFloat t, KFloat r, KFloat b) { (KNativePointer picturePtr, KFloat l, KFloat t, KFloat r, KFloat b) {
SkPicture* picture = reinterpret_cast<SkPicture*>((picturePtr)); SkPicture* picture = reinterpret_cast<SkPicture*>((picturePtr));
......
...@@ -158,25 +158,6 @@ SKIKO_EXPORT void org_jetbrains_skia_Paint__1nSetStrokeJoin ...@@ -158,25 +158,6 @@ SKIKO_EXPORT void org_jetbrains_skia_Paint__1nSetStrokeJoin
instance->setStrokeJoin(static_cast<SkPaint::Join>(join)); instance->setStrokeJoin(static_cast<SkPaint::Join>(join));
} }
SKIKO_EXPORT KNativePointer org_jetbrains_skia_Paint__1nGetFillPath
(KNativePointer ptr, KNativePointer srcPtr, KFloat resScale) {
SkPaint* instance = reinterpret_cast<SkPaint*>((ptr));
SkPath* src = reinterpret_cast<SkPath*>((srcPtr));
SkPath* dst = new SkPath();
instance->getFillPath(*src, dst, nullptr, resScale);
return reinterpret_cast<KNativePointer>(dst);
}
SKIKO_EXPORT KNativePointer org_jetbrains_skia_Paint__1nGetFillPathCull
(KNativePointer ptr, KNativePointer srcPtr, KFloat left, KFloat top, KFloat right, KFloat bottom, KFloat resScale) {
SkPaint* instance = reinterpret_cast<SkPaint*>((ptr));
SkPath* src = reinterpret_cast<SkPath*>((srcPtr));
SkPath* dst = new SkPath();
SkRect cull {left, top, right, bottom};
instance->getFillPath(*src, dst, &cull, resScale);
return reinterpret_cast<KNativePointer>(dst);
}
SKIKO_EXPORT KNativePointer org_jetbrains_skia_Paint__1nGetMaskFilter SKIKO_EXPORT KNativePointer org_jetbrains_skia_Paint__1nGetMaskFilter
(KNativePointer ptr) { (KNativePointer ptr) {
SkPaint* instance = reinterpret_cast<SkPaint*>((ptr)); SkPaint* instance = reinterpret_cast<SkPaint*>((ptr));
......
...@@ -91,7 +91,7 @@ namespace skija { ...@@ -91,7 +91,7 @@ namespace skija {
std::vector<SkShaper::Feature> getFeaturesFromIntsArray(KInt* featuresArray, KInt featuresLen); std::vector<SkShaper::Feature> getFeaturesFromIntsArray(KInt* featuresArray, KInt featuresLen);
} }
using ICUUText = std::unique_ptr<UText, SkFunctionWrapper<decltype(utext_close), utext_close>>; using ICUUText = std::unique_ptr<UText, SkFunctionObject<utext_close>>;
std::shared_ptr<UBreakIterator> graphemeBreakIterator(SkString& text); std::shared_ptr<UBreakIterator> graphemeBreakIterator(SkString& text);
} }
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment