Unverified Commit e63d3d7b authored by Hubert Błaszczyk's avatar Hubert Błaszczyk Committed by GitHub

Update skia to m147 and its consumption (#1189)

[SKIKO-1130](https://youtrack.jetbrains.com/issue/SKIKO-1130) Update
skia to m147 and its consumption
parent 9b179119
...@@ -82,15 +82,15 @@ enum class SkiaBuildType( ...@@ -82,15 +82,15 @@ enum class SkiaBuildType(
DEBUG( DEBUG(
id = "Debug", id = "Debug",
flags = arrayOf("-DSK_DEBUG"), flags = arrayOf("-DSK_DEBUG"),
clangFlags = arrayOf("-std=c++17", "-g", "-DSK_TRIVIAL_ABI=[[clang::trivial_abi]]"), clangFlags = arrayOf("-std=c++2a", "-g", "-DSK_TRIVIAL_ABI=[[clang::trivial_abi]]"),
winCompilerFlags = arrayOf("/Zi", "/std:c++17"), winCompilerFlags = arrayOf("/Zi", "/std:c++20"),
winLinkerFlags = arrayOf("/DEBUG"), winLinkerFlags = arrayOf("/DEBUG"),
), ),
RELEASE( RELEASE(
id = "Release", id = "Release",
flags = arrayOf("-DNDEBUG"), flags = arrayOf("-DNDEBUG"),
clangFlags = arrayOf("-std=c++17", "-O3"), clangFlags = arrayOf("-std=c++2a", "-O3"),
winCompilerFlags = arrayOf("/O2", "/std:c++17"), winCompilerFlags = arrayOf("/O2", "/std:c++20"),
winLinkerFlags = arrayOf("/DEBUG"), winLinkerFlags = arrayOf("/DEBUG"),
); );
override fun toString() = id override fun toString() = id
......
...@@ -232,7 +232,16 @@ fun SkikoProjectContext.createLinkJvmBindings( ...@@ -232,7 +232,16 @@ fun SkikoProjectContext.createLinkJvmBindings(
val osFlags: Array<String> val osFlags: Array<String>
libFiles = project.fileTree(skiaJvmBindingsDir.map { it.resolve(skiaBinSubdir) }) { libFiles = project.fileTree(skiaJvmBindingsDir.map { it.resolve(skiaBinSubdir) }) {
include(if (targetOs.isWindows) "*.lib" else "*.a") val fileExtension = if (targetOs.isWindows) "lib" else "a"
val filePrefix = if (targetOs.isWindows) "" else "lib"
val excludedLibs = listOf(
"skia_graphite_ext",
"skia_graphite_dawn_ext",
"dawn_combined"
)
include("*.$fileExtension")
exclude(excludedLibs.map { "$filePrefix$it.$fileExtension" })
} }
dependsOn(compileTask) dependsOn(compileTask)
...@@ -290,6 +299,7 @@ fun SkikoProjectContext.createLinkJvmBindings( ...@@ -290,6 +299,7 @@ fun SkikoProjectContext.createLinkJvmBindings(
// Hack to fix problem with linker not always finding certain declarations. // Hack to fix problem with linker not always finding certain declarations.
"$skiaBinDir/libsksg.a", "$skiaBinDir/libsksg.a",
"$skiaBinDir/libskia.a", "$skiaBinDir/libskia.a",
"$skiaBinDir/libskia_ganesh_ext.a",
"$skiaBinDir/libskunicode_core.a", "$skiaBinDir/libskunicode_core.a",
"$skiaBinDir/libskunicode_icu.a", "$skiaBinDir/libskunicode_icu.a",
"$skiaBinDir/libskshaper.a", "$skiaBinDir/libskshaper.a",
...@@ -340,6 +350,7 @@ fun SkikoProjectContext.createLinkJvmBindings( ...@@ -340,6 +350,7 @@ fun SkikoProjectContext.createLinkJvmBindings(
"-latomic", "-latomic",
// Hack to fix problem with linker not always finding certain declarations. // Hack to fix problem with linker not always finding certain declarations.
"$skiaBinDir/libskia.a", "$skiaBinDir/libskia.a",
"$skiaBinDir/libskia_ganesh_ext.a"
) )
linker.set(project.androidClangFor(targetArch)) linker.set(project.androidClangFor(targetArch))
} }
......
...@@ -196,6 +196,7 @@ fun skiaStaticLibraries(skiaDir: String, targetString: String, buildType: SkiaBu ...@@ -196,6 +196,7 @@ fun skiaStaticLibraries(skiaDir: String, targetString: String, buildType: SkiaBu
"libskresources.a", "libskresources.a",
"libskparagraph.a", "libskparagraph.a",
"libskia.a", "libskia.a",
"libskia_ganesh_ext.a",
"libicu.a", "libicu.a",
"libjsonreader.a", "libjsonreader.a",
"libskottie.a", "libskottie.a",
...@@ -283,7 +284,8 @@ fun SkikoProjectContext.configureNativeTarget(os: OS, arch: Arch, target: Kotlin ...@@ -283,7 +284,8 @@ fun SkikoProjectContext.configureNativeTarget(os: OS, arch: Arch, target: Kotlin
"$skiaBinDir/libskshaper.a", "$skiaBinDir/libskshaper.a",
"$skiaBinDir/libskunicode_core.a", "$skiaBinDir/libskunicode_core.a",
"$skiaBinDir/libskunicode_icu.a", "$skiaBinDir/libskunicode_icu.a",
"$skiaBinDir/libskia.a" "$skiaBinDir/libskia.a",
"$skiaBinDir/libskia_ganesh_ext.a"
) )
if (arch == Arch.Arm64) { if (arch == Arch.Arm64) {
options.add("-lEGL") options.add("-lEGL")
......
...@@ -76,7 +76,12 @@ fun SkikoProjectContext.declareWasmTasks() { ...@@ -76,7 +76,12 @@ fun SkikoProjectContext.declareWasmTasks() {
buildTargetArch.set(Arch.Wasm) buildTargetArch.set(Arch.Wasm)
buildVariant.set(buildType) buildVariant.set(buildType)
libFiles = project.fileTree(skiaWasmDir.get()) { include("**/*.a") } libFiles = project.fileTree(skiaWasmDir.get()) {
// TODO: The '.a.wasm' file extension may change in future releases
include("**/*.a.wasm")
exclude("**/libskia_graphite_ext.a.wasm")
exclude("**/libskia_graphite_dawn_ext.a.wasm")
}
objectFiles = project.fileTree(compileWasm.map { it.outDir.get() }) { objectFiles = project.fileTree(compileWasm.map { it.outDir.get() }) {
include("**/*.o") include("**/*.o")
} }
......
...@@ -7,7 +7,7 @@ kotlin.mpp.enableCInteropCommonization=true ...@@ -7,7 +7,7 @@ kotlin.mpp.enableCInteropCommonization=true
deploy.version=0.0.0 deploy.version=0.0.0
# a tag from https://github.com/JetBrains/skia/releases # a tag from https://github.com/JetBrains/skia/releases
dependencies.skia=m146-0619918005 dependencies.skia=m147-64a2414108
# a tag from https://github.com/JetBrains/angle-pack # a tag from https://github.com/JetBrains/angle-pack
dependencies.angle=ec4d8f8e4d dependencies.angle=ec4d8f8e4d
......
...@@ -12,12 +12,14 @@ ...@@ -12,12 +12,14 @@
#include "window_util.h" #include "window_util.h"
#include "SkColorSpace.h" #include "SkColorSpace.h"
#include "ganesh/GrBackendSurface.h" #include "ganesh/d3d/GrD3DBackendSurface.h"
#include "ganesh/GrDirectContext.h" #include "ganesh/GrDirectContext.h"
#include "ganesh/GrBackendSurface.h"
#include "SkSurface.h" #include "SkSurface.h"
#include "ganesh/d3d/GrD3DTypes.h" #include "ganesh/d3d/GrD3DTypes.h"
#include "ganesh/d3d/GrD3DBackendContext.h" #include "ganesh/d3d/GrD3DBackendContext.h"
#include "ganesh/d3d/GrD3DDirectContext.h"
class DirectXOffscreenDevice class DirectXOffscreenDevice
{ {
...@@ -270,7 +272,9 @@ extern "C" ...@@ -270,7 +272,9 @@ extern "C"
texResInfo.fFormat = DXGI_FORMAT_B8G8R8A8_UNORM; texResInfo.fFormat = DXGI_FORMAT_B8G8R8A8_UNORM;
texResInfo.fSampleCount = 1; texResInfo.fSampleCount = 1;
texResInfo.fLevelCount = 1; texResInfo.fLevelCount = 1;
GrBackendRenderTarget* renderTarget = new GrBackendRenderTarget(texture->width, texture->height, texResInfo); GrBackendRenderTarget* renderTarget = new GrBackendRenderTarget(
GrBackendRenderTargets::MakeD3D(texture->width, texture->height, texResInfo)
);
return reinterpret_cast<jlong>(renderTarget); return reinterpret_cast<jlong>(renderTarget);
} }
...@@ -279,7 +283,7 @@ extern "C" ...@@ -279,7 +283,7 @@ extern "C"
{ {
DirectXOffscreenDevice *d3dDevice = fromJavaPointer<DirectXOffscreenDevice *>(devicePtr); DirectXOffscreenDevice *d3dDevice = fromJavaPointer<DirectXOffscreenDevice *>(devicePtr);
GrD3DBackendContext backendContext = d3dDevice->backendContext; GrD3DBackendContext backendContext = d3dDevice->backendContext;
return toJavaPointer(GrDirectContext::MakeDirect3D(backendContext).release()); return toJavaPointer(GrDirectContexts::MakeD3D(backendContext).release());
} }
JNIEXPORT jlong JNICALL Java_org_jetbrains_skiko_graphicapi_InternalDirectXApi_makeDirectXTexture( JNIEXPORT jlong JNICALL Java_org_jetbrains_skiko_graphicapi_InternalDirectXApi_makeDirectXTexture(
......
...@@ -9,12 +9,14 @@ ...@@ -9,12 +9,14 @@
#include "SkColorSpace.h" #include "SkColorSpace.h"
#include "ganesh/GrBackendSurface.h" #include "ganesh/GrBackendSurface.h"
#include "ganesh/GrDirectContext.h" #include "ganesh/GrDirectContext.h"
#include "ganesh/d3d/GrD3DDirectContext.h"
#include "SkSurface.h" #include "SkSurface.h"
#include "include/gpu/ganesh/SkSurfaceGanesh.h" #include "include/gpu/ganesh/SkSurfaceGanesh.h"
#include "interop.hh" #include "interop.hh"
#include "DCompLibrary.h" #include "DCompLibrary.h"
#include "ganesh/d3d/GrD3DTypes.h" #include "ganesh/d3d/GrD3DTypes.h"
#include "ganesh/d3d/GrD3DBackendSurface.h"
#include <d3d12sdklayers.h> #include <d3d12sdklayers.h>
#include "ganesh/d3d/GrD3DBackendContext.h" #include "ganesh/d3d/GrD3DBackendContext.h"
#include <d3d12.h> #include <d3d12.h>
...@@ -399,7 +401,7 @@ extern "C" ...@@ -399,7 +401,7 @@ extern "C"
{ {
DirectXDevice *d3dDevice = fromJavaPointer<DirectXDevice *>(devicePtr); DirectXDevice *d3dDevice = fromJavaPointer<DirectXDevice *>(devicePtr);
GrD3DBackendContext backendContext = d3dDevice->backendContext; GrD3DBackendContext backendContext = d3dDevice->backendContext;
return toJavaPointer(GrDirectContext::MakeDirect3D(backendContext).release()); return toJavaPointer(GrDirectContexts::MakeD3D(backendContext).release());
} }
JNIEXPORT jlong JNICALL Java_org_jetbrains_skiko_redrawer_Direct3DRedrawer_makeDirectXSurface( JNIEXPORT jlong JNICALL Java_org_jetbrains_skiko_redrawer_Direct3DRedrawer_makeDirectXSurface(
...@@ -419,7 +421,10 @@ extern "C" ...@@ -419,7 +421,10 @@ extern "C"
info.fResource = d3dDevice->buffers[index]; info.fResource = d3dDevice->buffers[index];
std::unique_ptr<SkSurfaceProps> surfaceProps = skija::SurfaceProps::toSkSurfaceProps(env, surfacePropsInts); std::unique_ptr<SkSurfaceProps> surfaceProps = skija::SurfaceProps::toSkSurfaceProps(env, surfacePropsInts);
GrBackendTexture backendTexture((int)d3dDevice->buffers[index]->GetDesc().Width, (int)d3dDevice->buffers[index]->GetDesc().Height, info); GrBackendTexture backendTexture = GrBackendTextures::MakeD3D(
(int)d3dDevice->buffers[index]->GetDesc().Width,
(int)d3dDevice->buffers[index]->GetDesc().Height,
info);
auto result = SkSurfaces::WrapBackendTexture( auto result = SkSurfaces::WrapBackendTexture(
context, backendTexture, kTopLeft_GrSurfaceOrigin, 0, context, backendTexture, kTopLeft_GrSurfaceOrigin, 0,
kRGBA_8888_SkColorType, SkColorSpace::MakeSRGB(), surfaceProps.get()) kRGBA_8888_SkColorType, SkColorSpace::MakeSRGB(), surfaceProps.get())
......
...@@ -39,6 +39,7 @@ extern "C" JNIEXPORT jlong JNICALL Java_org_jetbrains_skia_BackendRenderTargetKt ...@@ -39,6 +39,7 @@ extern "C" JNIEXPORT jlong JNICALL Java_org_jetbrains_skia_BackendRenderTargetKt
#ifdef SK_DIRECT3D #ifdef SK_DIRECT3D
#include "ganesh/d3d/GrD3DTypes.h" #include "ganesh/d3d/GrD3DTypes.h"
#include "ganesh/d3d/GrD3DBackendSurface.h"
extern "C" JNIEXPORT jlong JNICALL Java_org_jetbrains_skia_BackendRenderTargetKt__1nMakeDirect3D extern "C" JNIEXPORT jlong JNICALL Java_org_jetbrains_skia_BackendRenderTargetKt__1nMakeDirect3D
(JNIEnv* env, jclass jclass, jint width, jint height, jlong texturePtr, jint format, jint sampleCnt, jint levelCnt) { (JNIEnv* env, jclass jclass, jint width, jint height, jlong texturePtr, jint format, jint sampleCnt, jint levelCnt) {
...@@ -49,7 +50,9 @@ extern "C" JNIEXPORT jlong JNICALL Java_org_jetbrains_skia_BackendRenderTargetKt ...@@ -49,7 +50,9 @@ extern "C" JNIEXPORT jlong JNICALL Java_org_jetbrains_skia_BackendRenderTargetKt
texResInfo.fFormat = static_cast<DXGI_FORMAT>(format); texResInfo.fFormat = static_cast<DXGI_FORMAT>(format);
texResInfo.fSampleCount = static_cast<uint32_t>(sampleCnt); texResInfo.fSampleCount = static_cast<uint32_t>(sampleCnt);
texResInfo.fLevelCount = static_cast<uint32_t>(levelCnt); texResInfo.fLevelCount = static_cast<uint32_t>(levelCnt);
GrBackendRenderTarget* instance = new GrBackendRenderTarget(width, height, texResInfo); GrBackendRenderTarget* instance = new GrBackendRenderTarget(
GrBackendRenderTargets::MakeD3D(width, height, texResInfo)
);
return reinterpret_cast<jlong>(instance); return reinterpret_cast<jlong>(instance);
} }
#endif //SK_DIRECT3D #endif //SK_DIRECT3D
...@@ -34,6 +34,7 @@ extern "C" JNIEXPORT jlong JNICALL Java_org_jetbrains_skia_DirectContextKt__1nMa ...@@ -34,6 +34,7 @@ extern "C" JNIEXPORT jlong JNICALL Java_org_jetbrains_skia_DirectContextKt__1nMa
#ifdef SK_DIRECT3D #ifdef SK_DIRECT3D
#include "ganesh/d3d/GrD3DBackendContext.h" #include "ganesh/d3d/GrD3DBackendContext.h"
#include "ganesh/d3d/GrD3DDirectContext.h"
extern "C" JNIEXPORT jlong JNICALL Java_org_jetbrains_skia_DirectContextKt__1nMakeDirect3D extern "C" JNIEXPORT jlong JNICALL Java_org_jetbrains_skia_DirectContextKt__1nMakeDirect3D
(JNIEnv* env, jclass jclass, jlong adapterPtr, jlong devicePtr, jlong queuePtr) { (JNIEnv* env, jclass jclass, jlong adapterPtr, jlong devicePtr, jlong queuePtr) {
...@@ -44,10 +45,10 @@ extern "C" JNIEXPORT jlong JNICALL Java_org_jetbrains_skia_DirectContextKt__1nMa ...@@ -44,10 +45,10 @@ extern "C" JNIEXPORT jlong JNICALL Java_org_jetbrains_skia_DirectContextKt__1nMa
backendContext.fAdapter.retain(adapter); backendContext.fAdapter.retain(adapter);
backendContext.fDevice.retain(device); backendContext.fDevice.retain(device);
backendContext.fQueue.retain(queue); backendContext.fQueue.retain(queue);
sk_sp<GrDirectContext> instance = GrDirectContext::MakeDirect3D(backendContext); sk_sp<GrDirectContext> instance = GrDirectContexts::MakeD3D(backendContext);
return reinterpret_cast<jlong>(instance.release()); return reinterpret_cast<jlong>(instance.release());
} }
#endif //SK_DIRECT3D #endif //SK_DIRECT3D
extern "C" JNIEXPORT void JNICALL Java_org_jetbrains_skia_DirectContextKt_DirectContext_1nFlushDefault extern "C" JNIEXPORT void JNICALL Java_org_jetbrains_skia_DirectContextKt_DirectContext_1nFlushDefault
(JNIEnv* env, jclass jclass, jlong ptr) { (JNIEnv* env, jclass jclass, jlong ptr) {
......
#include <iostream> #include <iostream>
#include <jni.h> #include <jni.h>
#include <memory>
#include "ParagraphCache.h" #include "ParagraphCache.h"
#include "ParagraphStyle.h" #include "ParagraphStyle.h"
......
...@@ -40,6 +40,7 @@ SKIKO_EXPORT KNativePointer BackendRenderTarget_nMakeMetal ...@@ -40,6 +40,7 @@ SKIKO_EXPORT KNativePointer BackendRenderTarget_nMakeMetal
#ifdef SK_DIRECT3D #ifdef SK_DIRECT3D
#include "ganesh/d3d/GrD3DTypes.h" #include "ganesh/d3d/GrD3DTypes.h"
#include "ganesh/d3d/GrD3DBackendSurface.h"
#endif #endif
SKIKO_EXPORT KNativePointer BackendRenderTarget_MakeDirect3D SKIKO_EXPORT KNativePointer BackendRenderTarget_MakeDirect3D
...@@ -52,7 +53,9 @@ SKIKO_EXPORT KNativePointer BackendRenderTarget_MakeDirect3D ...@@ -52,7 +53,9 @@ SKIKO_EXPORT KNativePointer BackendRenderTarget_MakeDirect3D
texResInfo.fFormat = static_cast<DXGI_FORMAT>(format); texResInfo.fFormat = static_cast<DXGI_FORMAT>(format);
texResInfo.fSampleCount = static_cast<uint32_t>(sampleCnt); texResInfo.fSampleCount = static_cast<uint32_t>(sampleCnt);
texResInfo.fLevelCount = static_cast<uint32_t>(levelCnt); texResInfo.fLevelCount = static_cast<uint32_t>(levelCnt);
GrBackendRenderTarget* instance = new GrBackendRenderTarget(width, height, texResInfo); GrBackendRenderTarget* instance = new GrBackendRenderTarget(
GrBackendRenderTargets::MakeD3D(width, height, texResInfo)
);
return instance; return instance;
#else #else
return 0; return 0;
......
...@@ -10,6 +10,7 @@ ...@@ -10,6 +10,7 @@
#ifdef SK_DIRECT3D #ifdef SK_DIRECT3D
#include "ganesh/d3d/GrD3DBackendContext.h" #include "ganesh/d3d/GrD3DBackendContext.h"
#include "ganesh/d3d/GrD3DDirectContext.h"
#endif #endif
SKIKO_EXPORT KNativePointer org_jetbrains_skia_DirectContext__1nMakeGL SKIKO_EXPORT KNativePointer org_jetbrains_skia_DirectContext__1nMakeGL
...@@ -48,7 +49,7 @@ SKIKO_EXPORT KNativePointer org_jetbrains_skia_DirectContext__1nMakeDirect3D ...@@ -48,7 +49,7 @@ SKIKO_EXPORT KNativePointer org_jetbrains_skia_DirectContext__1nMakeDirect3D
backendContext.fAdapter.retain(adapter); backendContext.fAdapter.retain(adapter);
backendContext.fDevice.retain(device); backendContext.fDevice.retain(device);
backendContext.fQueue.retain(queue); backendContext.fQueue.retain(queue);
sk_sp<GrDirectContext> instance = GrDirectContext::MakeDirect3D(backendContext); sk_sp<GrDirectContext> instance = GrDirectContexts::MakeD3D(backendContext);
return static_cast<KNativePointer>(instance.release()); return static_cast<KNativePointer>(instance.release());
#else // SK_DIRECT3D #else // SK_DIRECT3D
return nullptr; return nullptr;
......
#include <iostream> #include <iostream>
#include <memory>
#include "ParagraphCache.h" #include "ParagraphCache.h"
#include "ParagraphStyle.h" #include "ParagraphStyle.h"
using namespace skia::textlayout; using namespace skia::textlayout;
......
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