Unverified Commit 4312d53f authored by Pavel's avatar Pavel Committed by GitHub

migrate to m105 (#562)

* fix RunRecordClone data layout in debug mode

* migrate to skia chrome/m105

* fix tests

* allow to retrieve text from Paragraph

* add missing includes; use c++17 on windows; bump skia version
parent c08102bb
......@@ -145,10 +145,12 @@ fun compileNativeBridgesTask(os: OS, arch: Arch): TaskProvider<CompileSkikoCppTa
val iosArchFlags = when (arch) {
Arch.Arm64 -> arrayOf(
"-target", "arm64-apple-ios",
"-mios-version-min=11.0",
"-isysroot", "$sdkRoot/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk"
)
Arch.X64 -> arrayOf(
"-target", "x86_64-apple-ios-simulator",
"-mios-version-min=11.0",
"-isysroot", "$sdkRoot/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator.sdk"
)
else -> throw GradleException("Unsupported arch: $arch")
......
......@@ -68,14 +68,14 @@ enum class SkiaBuildType(
"Debug",
flags = arrayOf("-DSK_DEBUG"),
clangFlags = arrayOf("-std=c++17", "-g"),
msvcCompilerFlags = arrayOf("/Zi"),
msvcCompilerFlags = arrayOf("/Zi /std:c++17"),
msvcLinkerFlags = arrayOf("/DEBUG"),
),
RELEASE(
id = "Release",
flags = arrayOf("-DNDEBUG"),
clangFlags = arrayOf("-std=c++17", "-O3"),
msvcCompilerFlags = arrayOf("/O2"),
msvcCompilerFlags = arrayOf("/O2 /std:c++17"),
msvcLinkerFlags = arrayOf("/DEBUG"),
);
override fun toString() = id
......
......@@ -3,15 +3,15 @@ deploy.version=0.0.0
kotlin.mpp.enableGranularSourceSetsMetadata=true
kotlin.native.enableDependencyPropagation=false
dependencies.skia.windows-x64=m99-f85ab491eb-2
dependencies.skia.linux-x64=m99-f85ab491eb-2
dependencies.skia.macos-x64=m99-f85ab491eb-2
dependencies.skia.linux-arm64=m99-f85ab491eb-2
dependencies.skia.macos-arm64=m99-f85ab491eb-2
dependencies.skia.wasm-wasm=m99-f85ab491eb-2
dependencies.skia.ios-x64=m99-f85ab491eb-2
dependencies.skia.ios-arm64=m99-f85ab491eb-2
dependencies.skia.android-x64=m99-f85ab491eb-2
dependencies.skia.android-arm64=m99-f85ab491eb-2
dependencies.skia.windows-x64=m105-f204b137b9-5
dependencies.skia.linux-x64=m105-f204b137b9-5
dependencies.skia.macos-x64=m105-f204b137b9-5
dependencies.skia.linux-arm64=m105-f204b137b9-5
dependencies.skia.macos-arm64=m105-f204b137b9-5
dependencies.skia.wasm-wasm=m105-f204b137b9-5
dependencies.skia.ios-x64=m105-f204b137b9-5
dependencies.skia.ios-arm64=m105-f204b137b9-5
dependencies.skia.android-x64=m105-f204b137b9-5
dependencies.skia.android-arm64=m105-f204b137b9-5
org.gradle.jvmargs=-Xmx3G -XX:MaxMetaspaceSize=512m
......@@ -3,6 +3,7 @@
#include <stdint.h>
#include "jni_helpers.h"
#include "SkColorSpace.h"
#include "SkSurface.h"
#include "src/core/SkAutoMalloc.h"
......
......@@ -4,6 +4,7 @@
#include "exceptions_handler.h"
#include "window_util.h"
#include "SkColorSpace.h"
#include "SkSurface.h"
#include "src/core/SkAutoMalloc.h"
......
......@@ -6,6 +6,7 @@
#include "exceptions_handler.h"
#include "window_util.h"
#include "SkColorSpace.h"
#include "GrBackendSurface.h"
#include "GrDirectContext.h"
#include "SkSurface.h"
......
......@@ -11,6 +11,7 @@ public:
uint32_t fCount;
SkPoint fOffset;
uint32_t fFlags;
SkDEBUGCODE(unsigned fMagic;)
uint16_t* glyphBuffer() const {
// Glyphs are stored immediately following the record.
......
......@@ -25,8 +25,7 @@ class RuntimeEffect internal constructor(ptr: NativePointer) : RefCnt(ptr) {
}
fun makeShader(
uniforms: Data?, children: Array<Shader?>?, localMatrix: Matrix33?,
isOpaque: Boolean
uniforms: Data?, children: Array<Shader?>?, localMatrix: Matrix33?
): Shader {
Stats.onNativeCall()
val childCount = children?.size ?: 0
......@@ -34,7 +33,7 @@ class RuntimeEffect internal constructor(ptr: NativePointer) : RefCnt(ptr) {
for (i in 0 until childCount) childrenPtrs[i] = getPtr(children!![i])
val matrix = localMatrix?.mat
return interopScope {
Shader(_nMakeShader(_ptr, getPtr(uniforms), toInterop(childrenPtrs), childCount, toInterop(matrix), isOpaque))
Shader(_nMakeShader(_ptr, getPtr(uniforms), toInterop(childrenPtrs), childCount, toInterop(matrix)))
}
}
}
......@@ -45,7 +44,7 @@ internal expect fun RuntimeEffect.Companion.makeFromResultPtr(ptr: NativePointer
@ExternalSymbolName("org_jetbrains_skia_RuntimeEffect__1nMakeShader")
private external fun _nMakeShader(
runtimeEffectPtr: NativePointer, uniformPtr: NativePointer, childrenPtrs: InteropPointer,
childCount: Int, localMatrix: InteropPointer, isOpaque: Boolean
childCount: Int, localMatrix: InteropPointer
): NativePointer
......
......@@ -255,6 +255,15 @@ class Paragraph internal constructor(ptr: NativePointer, text: ManagedString?) :
}
}
fun getText(): String {
return try {
return _text.toString()
} finally {
reachabilityBarrier(this)
reachabilityBarrier(_text)
}
}
private object _FinalizerHolder {
val PTR = Paragraph_nGetFinalizer()
}
......
......@@ -52,16 +52,6 @@ class ParagraphBuilder(style: ParagraphStyle?, fc: FontCollection?) :
return this
}
fun setParagraphStyle(style: ParagraphStyle?): ParagraphBuilder {
return try {
Stats.onNativeCall()
_nSetParagraphStyle(_ptr, getPtr(style))
this
} finally {
reachabilityBarrier(style)
}
}
fun build(): Paragraph {
return try {
Stats.onNativeCall()
......@@ -109,8 +99,5 @@ private external fun _nAddPlaceholder(
baseline: Float
)
@ExternalSymbolName("org_jetbrains_skia_paragraph_ParagraphBuilder__1nSetParagraphStyle")
private external fun _nSetParagraphStyle(ptr: NativePointer, stylePtr: NativePointer)
@ExternalSymbolName("org_jetbrains_skia_paragraph_ParagraphBuilder__1nBuild")
private external fun _nBuild(ptr: NativePointer): NativePointer
......@@ -14,7 +14,7 @@ class RuntimeEffectTest {
|}""".trimMargin()
val effect = RuntimeEffect.makeForShader(shaderSKSL)
val shader = effect.makeShader(null, null, null, true)
val shader = effect.makeShader(null, null, null)
val shader2SKSL = """
|uniform shader input_1;
......@@ -23,7 +23,7 @@ class RuntimeEffectTest {
|}""".trimMargin()
val derivedEffect = RuntimeEffect.makeForShader(shader2SKSL)
derivedEffect.makeShader(null, arrayOf(shader), null, false)
derivedEffect.makeShader(null, arrayOf(shader), null)
val colorFilterSKSL = """
|half4 main(half4 inColor) {
......
......@@ -2,6 +2,7 @@
#include <jni.h>
#include "SkData.h"
#include "SkImage.h"
#include "SkBitmap.h"
#include "interop.hh"
extern "C" JNIEXPORT jlong JNICALL Java_org_jetbrains_skia_ImageKt__1nMakeRaster
......
......@@ -183,7 +183,7 @@ extern "C" JNIEXPORT jlong JNICALL Java_org_jetbrains_skia_ImageFilterKt__1nMake
env->ReleaseLongArrayElements(inputPtrsArray, inputPtrs, 0);
std::vector<SkString> childShaderNameStrings = skStringVector(env, childShaderNamesArr);
std::vector<const char*> childShaderNames(childShaderNameStrings.size());
std::vector<std::string_view> childShaderNames(childShaderNameStrings.size());
for (int i = 0; i < inputCount; ++i)
childShaderNames[i] = childShaderNameStrings[i].c_str();
......
......@@ -10,8 +10,7 @@ Java_org_jetbrains_skia_RuntimeEffectKt__1nMakeShader(JNIEnv* env,
jlong uniformPtr,
jlongArray childrenPtrsArr,
jint _childCount,
jfloatArray localMatrixArr,
jboolean isOpaque) {
jfloatArray localMatrixArr) {
SkRuntimeEffect* runtimeEffect = jlongToPtr<SkRuntimeEffect*>(ptr);
SkData* uniform = jlongToPtr<SkData*>(uniformPtr);
std::unique_ptr<SkMatrix> localMatrix = skMatrix(env, localMatrixArr);
......@@ -28,8 +27,7 @@ Java_org_jetbrains_skia_RuntimeEffectKt__1nMakeShader(JNIEnv* env,
sk_sp<SkShader> shader = runtimeEffect->makeShader(sk_ref_sp<SkData>(uniform),
children.data(),
childCount,
localMatrix.get(),
isOpaque);
localMatrix.get());
return ptrToJlong(shader.release());
}
......
#include <jni.h>
#include "SkShadowUtils.h"
#include "SkPoint3.h"
#include "interop.hh"
extern "C" JNIEXPORT void JNICALL Java_org_jetbrains_skia_ShadowUtilsKt__1nDrawShadow
......@@ -7,7 +8,7 @@ extern "C" JNIEXPORT void JNICALL Java_org_jetbrains_skia_ShadowUtilsKt__1nDrawS
jfloat lightPosX, jfloat lightPosY, jfloat lightPosZ, jfloat lightRadius, jint ambientColor, jint spotColor, jint flags) {
SkCanvas* canvas = reinterpret_cast<SkCanvas*>(static_cast<uintptr_t>(canvasPtr));
SkPath* path = reinterpret_cast<SkPath*>(static_cast<uintptr_t>(pathPtr));
SkShadowUtils::DrawShadow(canvas, *path, {zPlaneX, zPlaneY, zPlaneZ}, {lightPosX, lightPosY, lightPosZ}, lightRadius, ambientColor, spotColor, flags);
SkShadowUtils::DrawShadow(canvas, *path, SkPoint3::Make(zPlaneX, zPlaneY, zPlaneZ), SkPoint3::Make(lightPosX, lightPosY, lightPosZ), lightRadius, ambientColor, spotColor, flags);
}
extern "C" JNIEXPORT int JNICALL Java_org_jetbrains_skia_ShadowUtilsKt__1nComputeTonalAmbientColor
......
......@@ -50,13 +50,6 @@ extern "C" JNIEXPORT void JNICALL Java_org_jetbrains_skia_paragraph_ParagraphBui
instance->addPlaceholder({width, height, static_cast<PlaceholderAlignment>(alignment), static_cast<TextBaseline>(baselinePosition), baseline});
}
extern "C" JNIEXPORT void JNICALL Java_org_jetbrains_skia_paragraph_ParagraphBuilderKt__1nSetParagraphStyle
(JNIEnv* env, jclass jclass, jlong ptr, jlong stylePtr) {
ParagraphBuilder* instance = reinterpret_cast<ParagraphBuilder*>(static_cast<uintptr_t>(ptr));
ParagraphStyle* style = reinterpret_cast<ParagraphStyle*>(static_cast<uintptr_t>(stylePtr));
instance->setParagraphStyle(*style);
}
extern "C" JNIEXPORT jlong JNICALL Java_org_jetbrains_skia_paragraph_ParagraphBuilderKt__1nBuild
(JNIEnv* env, jclass jclass, jlong ptr) {
ParagraphBuilder* instance = reinterpret_cast<ParagraphBuilder*>(static_cast<uintptr_t>(ptr));
......
......@@ -48,7 +48,7 @@ extern "C" JNIEXPORT jlong JNICALL Java_org_jetbrains_skia_paragraph_ParagraphSt
(JNIEnv* env, jclass jclass, jlong ptr) {
ParagraphStyle* instance = reinterpret_cast<ParagraphStyle*>(static_cast<uintptr_t>(ptr));
const TextStyle& style = instance->getTextStyle();
TextStyle* res = new TextStyle(style, style.isPlaceholder());
TextStyle* res = new TextStyle(style);
return reinterpret_cast<jlong>(res);
}
......
#include <jni.h>
#include "SkRect.h"
#include "SkCanvas.h"
#include "SkSVGCanvas.h"
#include "SkStream.h"
......
#include <iostream>
#include "SkData.h"
#include "SkImage.h"
#include "SkBitmap.h"
#include "common.h"
......
......@@ -178,7 +178,7 @@ SKIKO_EXPORT KNativePointer org_jetbrains_skia_ImageFilter__1nMakeRuntimeShaderF
}
std::vector<SkString> childShaderNameStrings = skStringVector(childShaderNamesArr, inputCount);
std::vector<const char*> childShaderNames(childShaderNameStrings.size());
std::vector<std::string_view> childShaderNames(childShaderNameStrings.size());
for (int i = 0; i < childShaderNames.size(); ++i)
childShaderNames[i] = childShaderNameStrings[i].c_str();
......
......@@ -2,7 +2,7 @@
#include "common.h"
SKIKO_EXPORT KNativePointer org_jetbrains_skia_RuntimeEffect__1nMakeShader
(KNativePointer ptr, KNativePointer uniformPtr, KNativePointerArray childrenPtrsArr, KInt childCount, KFloat* localMatrixArr, KBoolean isOpaque) {
(KNativePointer ptr, KNativePointer uniformPtr, KNativePointerArray childrenPtrsArr, KInt childCount, KFloat* localMatrixArr) {
SkRuntimeEffect* runtimeEffect = reinterpret_cast<SkRuntimeEffect*>(ptr);
SkData* uniform = reinterpret_cast<SkData*>(uniformPtr);
std::unique_ptr<SkMatrix> localMatrix = skMatrix(localMatrixArr);
......@@ -17,8 +17,7 @@ SKIKO_EXPORT KNativePointer org_jetbrains_skia_RuntimeEffect__1nMakeShader
sk_sp<SkShader> shader = runtimeEffect->makeShader(sk_ref_sp<SkData>(uniform),
children.data(),
childCount,
localMatrix.get(),
isOpaque);
localMatrix.get());
return reinterpret_cast<KNativePointer>(shader.release());
}
......
#include "SkShadowUtils.h"
#include "SkPoint3.h"
#include "common.h"
SKIKO_EXPORT void org_jetbrains_skia_ShadowUtils__1nDrawShadow
......@@ -6,7 +7,7 @@ SKIKO_EXPORT void org_jetbrains_skia_ShadowUtils__1nDrawShadow
KFloat lightPosX, KFloat lightPosY, KFloat lightPosZ, KFloat lightRadius, KInt ambientColor, KInt spotColor, KInt flags) {
SkCanvas* canvas = reinterpret_cast<SkCanvas*>((canvasPtr));
SkPath* path = reinterpret_cast<SkPath*>((pathPtr));
SkShadowUtils::DrawShadow(canvas, *path, {zPlaneX, zPlaneY, zPlaneZ}, {lightPosX, lightPosY, lightPosZ}, lightRadius, ambientColor, spotColor, flags);
SkShadowUtils::DrawShadow(canvas, *path, SkPoint3::Make(zPlaneX, zPlaneY, zPlaneZ), SkPoint3::Make(lightPosX, lightPosY, lightPosZ), lightRadius, ambientColor, spotColor, flags);
}
SKIKO_EXPORT int org_jetbrains_skia_ShadowUtils__1nComputeTonalAmbientColor
......
......@@ -48,13 +48,6 @@ SKIKO_EXPORT void org_jetbrains_skia_paragraph_ParagraphBuilder__1nAddPlaceholde
instance->addPlaceholder({width, height, static_cast<PlaceholderAlignment>(alignment), static_cast<TextBaseline>(baselinePosition), baseline});
}
SKIKO_EXPORT void org_jetbrains_skia_paragraph_ParagraphBuilder__1nSetParagraphStyle
(KNativePointer ptr, KNativePointer stylePtr) {
ParagraphBuilder* instance = reinterpret_cast<ParagraphBuilder*>((ptr));
ParagraphStyle* style = reinterpret_cast<ParagraphStyle*>((stylePtr));
instance->setParagraphStyle(*style);
}
SKIKO_EXPORT KNativePointer org_jetbrains_skia_paragraph_ParagraphBuilder__1nBuild
(KNativePointer ptr) {
ParagraphBuilder* instance = reinterpret_cast<ParagraphBuilder*>((ptr));
......
......@@ -45,7 +45,7 @@ SKIKO_EXPORT KNativePointer org_jetbrains_skia_paragraph_ParagraphStyle__1nGetTe
(KNativePointer ptr) {
ParagraphStyle* instance = reinterpret_cast<ParagraphStyle*>((ptr));
const TextStyle& style = instance->getTextStyle();
TextStyle* res = new TextStyle(style, style.isPlaceholder());
TextStyle* res = new TextStyle(style);
return reinterpret_cast<KNativePointer>(res);
}
......
#include "SkRect.h"
#include "SkCanvas.h"
#include "SkSVGCanvas.h"
#include "SkStream.h"
#include "common.h"
......
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