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
kotlin.mpp.enableGranularSourceSetsMetadata=true
kotlin.native.enableDependencyPropagation=false
dependencies.skia.windows-x64=m105-adda216f-2
dependencies.skia.linux-x64=m105-adda216f-2
dependencies.skia.macos-x64=m105-adda216f-2
dependencies.skia.windows-arm64=m105-adda216f-2
dependencies.skia.linux-arm64=m105-adda216f-2
dependencies.skia.macos-arm64=m105-adda216f-2
dependencies.skia.wasm-wasm=m105-adda216f-2
dependencies.skia.ios-x64=m105-adda216f-2
dependencies.skia.ios-arm64=m105-adda216f-2
dependencies.skia.iosSim-arm64=m105-adda216f-2
dependencies.skia.iosSim-x64=m105-adda216f-2
dependencies.skia.android-x64=m105-adda216f-2
dependencies.skia.android-arm64=m105-adda216f-2
dependencies.skia.windows-x64=m110-ad42464-1
dependencies.skia.linux-x64=m110-ad42464-1
dependencies.skia.macos-x64=m110-ad42464-1
dependencies.skia.windows-arm64=m110-ad42464-1
dependencies.skia.linux-arm64=m110-ad42464-1
dependencies.skia.macos-arm64=m110-ad42464-1
dependencies.skia.wasm-wasm=m110-ad42464-1
dependencies.skia.ios-x64=m110-ad42464-1
dependencies.skia.ios-arm64=m110-ad42464-1
dependencies.skia.iosSim-arm64=m110-ad42464-1
dependencies.skia.iosSim-x64=m110-ad42464-1
dependencies.skia.android-x64=m110-ad42464-1
dependencies.skia.android-arm64=m110-ad42464-1
org.gradle.jvmargs=-Xmx3G -XX:MaxMetaspaceSize=512m
kotlin.native.cacheKind.macosX64=none
......
......@@ -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 {
Stats.onNativeCall()
interopScope {
ImageFilter(
_nMakePaint(
paint = getPtr(paint),
_nMakeShader(
shader = getPtr(shader),
dither = dither,
crop = toInterop(crop?.serializeToIntArray())
)
)
}
} finally {
reachabilityBarrier(paint)
reachabilityBarrier(shader)
}
}
......@@ -791,8 +792,8 @@ private external fun _nMakeMerge(filters: InteropPointer, filtersLength: Int, cr
@ExternalSymbolName("org_jetbrains_skia_ImageFilter__1nMakeOffset")
private external fun _nMakeOffset(dx: Float, dy: Float, input: NativePointer, crop: InteropPointer): NativePointer
@ExternalSymbolName("org_jetbrains_skia_ImageFilter__1nMakePaint")
private external fun _nMakePaint(paint: NativePointer, crop: InteropPointer): NativePointer
@ExternalSymbolName("org_jetbrains_skia_ImageFilter__1nMakeShader")
private external fun _nMakeShader(shader: NativePointer, dither: Boolean, crop: InteropPointer): NativePointer
@ExternalSymbolName("org_jetbrains_skia_ImageFilter__1nMakePicture")
private external fun _nMakePicture(picture: NativePointer, l: Float, t: Float, r: Float, b: Float): NativePointer
......
......@@ -370,51 +370,6 @@ class Paint : Managed {
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
*
......@@ -674,21 +629,6 @@ private external fun _nGetStrokeJoin(ptr: NativePointer): Int
@ExternalSymbolName("org_jetbrains_skia_Paint__1nSetStrokeJoin")
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")
private external fun _nGetShader(ptr: NativePointer): NativePointer
......
......@@ -216,11 +216,9 @@ class ImageFilterTest {
}
@Test
fun makePaint() = imageFilterTest {
ImageFilter.makePaint(
paint = Paint().setStroke(false).setColor4f(Color4f(Color.RED), colorSpace = null),
crop = null
)
fun makeShader() = imageFilterTest {
val shader = Shader.makeColor(Color.RED)
ImageFilter.makeShader(shader = shader, crop = null)
}
@Test
......
......@@ -145,11 +145,12 @@ extern "C" JNIEXPORT jlong JNICALL Java_org_jetbrains_skia_ImageFilterKt__1nMake
return reinterpret_cast<jlong>(ptr);
}
extern "C" JNIEXPORT jlong JNICALL Java_org_jetbrains_skia_ImageFilterKt__1nMakePaint
(JNIEnv* env, jclass jclass, jlong paintPtr, jintArray cropInts) {
SkPaint* paint = reinterpret_cast<SkPaint*>(static_cast<uintptr_t>(paintPtr));
extern "C" JNIEXPORT jlong JNICALL Java_org_jetbrains_skia_ImageFilterKt__1nMakeShader
(JNIEnv* env, jclass jclass, jlong shaderPtr, jboolean ditherBoolean, jintArray cropInts) {
SkShader* shader = reinterpret_cast<SkShader*>(static_cast<uintptr_t>(shaderPtr));
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);
}
......
......@@ -155,25 +155,6 @@ extern "C" JNIEXPORT void JNICALL Java_org_jetbrains_skia_PaintKt__1nSetStrokeJo
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
(JNIEnv* env, jclass jclass, jlong ptr) {
SkPaint* instance = reinterpret_cast<SkPaint*>(static_cast<uintptr_t>(ptr));
......
......@@ -8,6 +8,7 @@
#include "src/utils/SkUTF.h"
#include "paragraph/interop.hh"
#include "TextStyle.h"
#include "include/core/SkBlendMode.h"
namespace java {
namespace io {
......@@ -1065,8 +1066,8 @@ SkString skString(JNIEnv* env, jstring s) {
jsize utfUnits = env->GetStringUTFLength(s);
jsize utf16Units = env->GetStringLength(s);
SkString res(utfUnits);
env->GetStringUTFRegion(s, 0, utf16Units, res.writable_str());
size_t utf8Units = utfToUtf8((unsigned char *) res.writable_str(), utfUnits);
env->GetStringUTFRegion(s, 0, utf16Units, res.data());
size_t utf8Units = utfToUtf8((unsigned char *) res.data(), utfUnits);
res.resize(utf8Units);
return res;
}
......
......@@ -102,7 +102,7 @@ namespace skija {
void onLoad(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);
}
}
......@@ -141,15 +141,15 @@ SKIKO_EXPORT KNativePointer org_jetbrains_skia_ImageFilter__1nMakeOffset
return reinterpret_cast<KNativePointer>(ptr);
}
SKIKO_EXPORT KNativePointer org_jetbrains_skia_ImageFilter__1nMakePaint
(KNativePointer paintPtr, KInt* cropRectInts) {
SkPaint* paint = reinterpret_cast<SkPaint*>((paintPtr));
SKIKO_EXPORT KNativePointer org_jetbrains_skia_ImageFilter__1nMakeShader
(KNativePointer shaderPtr, KBoolean ditherBoolean, KInt* cropRectInts) {
SkShader* shader = reinterpret_cast<SkShader*>((shaderPtr));
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);
}
SKIKO_EXPORT KNativePointer org_jetbrains_skia_ImageFilter__1nMakePicture
(KNativePointer picturePtr, KFloat l, KFloat t, KFloat r, KFloat b) {
SkPicture* picture = reinterpret_cast<SkPicture*>((picturePtr));
......
......@@ -158,25 +158,6 @@ SKIKO_EXPORT void org_jetbrains_skia_Paint__1nSetStrokeJoin
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
(KNativePointer ptr) {
SkPaint* instance = reinterpret_cast<SkPaint*>((ptr));
......
......@@ -91,7 +91,7 @@ namespace skija {
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);
}
......
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