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(
DEBUG(
id = "Debug",
flags = arrayOf("-DSK_DEBUG"),
clangFlags = arrayOf("-std=c++17", "-g", "-DSK_TRIVIAL_ABI=[[clang::trivial_abi]]"),
winCompilerFlags = arrayOf("/Zi", "/std:c++17"),
clangFlags = arrayOf("-std=c++2a", "-g", "-DSK_TRIVIAL_ABI=[[clang::trivial_abi]]"),
winCompilerFlags = arrayOf("/Zi", "/std:c++20"),
winLinkerFlags = arrayOf("/DEBUG"),
),
RELEASE(
id = "Release",
flags = arrayOf("-DNDEBUG"),
clangFlags = arrayOf("-std=c++17", "-O3"),
winCompilerFlags = arrayOf("/O2", "/std:c++17"),
clangFlags = arrayOf("-std=c++2a", "-O3"),
winCompilerFlags = arrayOf("/O2", "/std:c++20"),
winLinkerFlags = arrayOf("/DEBUG"),
);
override fun toString() = id
......
......@@ -232,7 +232,16 @@ fun SkikoProjectContext.createLinkJvmBindings(
val osFlags: Array<String>
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)
......@@ -290,6 +299,7 @@ fun SkikoProjectContext.createLinkJvmBindings(
// Hack to fix problem with linker not always finding certain declarations.
"$skiaBinDir/libsksg.a",
"$skiaBinDir/libskia.a",
"$skiaBinDir/libskia_ganesh_ext.a",
"$skiaBinDir/libskunicode_core.a",
"$skiaBinDir/libskunicode_icu.a",
"$skiaBinDir/libskshaper.a",
......@@ -340,6 +350,7 @@ fun SkikoProjectContext.createLinkJvmBindings(
"-latomic",
// Hack to fix problem with linker not always finding certain declarations.
"$skiaBinDir/libskia.a",
"$skiaBinDir/libskia_ganesh_ext.a"
)
linker.set(project.androidClangFor(targetArch))
}
......
......@@ -196,6 +196,7 @@ fun skiaStaticLibraries(skiaDir: String, targetString: String, buildType: SkiaBu
"libskresources.a",
"libskparagraph.a",
"libskia.a",
"libskia_ganesh_ext.a",
"libicu.a",
"libjsonreader.a",
"libskottie.a",
......@@ -283,7 +284,8 @@ fun SkikoProjectContext.configureNativeTarget(os: OS, arch: Arch, target: Kotlin
"$skiaBinDir/libskshaper.a",
"$skiaBinDir/libskunicode_core.a",
"$skiaBinDir/libskunicode_icu.a",
"$skiaBinDir/libskia.a"
"$skiaBinDir/libskia.a",
"$skiaBinDir/libskia_ganesh_ext.a"
)
if (arch == Arch.Arm64) {
options.add("-lEGL")
......
......@@ -76,7 +76,12 @@ fun SkikoProjectContext.declareWasmTasks() {
buildTargetArch.set(Arch.Wasm)
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() }) {
include("**/*.o")
}
......
......@@ -7,7 +7,7 @@ kotlin.mpp.enableCInteropCommonization=true
deploy.version=0.0.0
# 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
dependencies.angle=ec4d8f8e4d
......
......@@ -12,12 +12,14 @@
#include "window_util.h"
#include "SkColorSpace.h"
#include "ganesh/GrBackendSurface.h"
#include "ganesh/d3d/GrD3DBackendSurface.h"
#include "ganesh/GrDirectContext.h"
#include "ganesh/GrBackendSurface.h"
#include "SkSurface.h"
#include "ganesh/d3d/GrD3DTypes.h"
#include "ganesh/d3d/GrD3DBackendContext.h"
#include "ganesh/d3d/GrD3DDirectContext.h"
class DirectXOffscreenDevice
{
......@@ -270,7 +272,9 @@ extern "C"
texResInfo.fFormat = DXGI_FORMAT_B8G8R8A8_UNORM;
texResInfo.fSampleCount = 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);
}
......@@ -279,7 +283,7 @@ extern "C"
{
DirectXOffscreenDevice *d3dDevice = fromJavaPointer<DirectXOffscreenDevice *>(devicePtr);
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(
......
......@@ -9,12 +9,14 @@
#include "SkColorSpace.h"
#include "ganesh/GrBackendSurface.h"
#include "ganesh/GrDirectContext.h"
#include "ganesh/d3d/GrD3DDirectContext.h"
#include "SkSurface.h"
#include "include/gpu/ganesh/SkSurfaceGanesh.h"
#include "interop.hh"
#include "DCompLibrary.h"
#include "ganesh/d3d/GrD3DTypes.h"
#include "ganesh/d3d/GrD3DBackendSurface.h"
#include <d3d12sdklayers.h>
#include "ganesh/d3d/GrD3DBackendContext.h"
#include <d3d12.h>
......@@ -399,7 +401,7 @@ extern "C"
{
DirectXDevice *d3dDevice = fromJavaPointer<DirectXDevice *>(devicePtr);
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(
......@@ -419,7 +421,10 @@ extern "C"
info.fResource = d3dDevice->buffers[index];
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(
context, backendTexture, kTopLeft_GrSurfaceOrigin, 0,
kRGBA_8888_SkColorType, SkColorSpace::MakeSRGB(), surfaceProps.get())
......
......@@ -39,6 +39,7 @@ extern "C" JNIEXPORT jlong JNICALL Java_org_jetbrains_skia_BackendRenderTargetKt
#ifdef SK_DIRECT3D
#include "ganesh/d3d/GrD3DTypes.h"
#include "ganesh/d3d/GrD3DBackendSurface.h"
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) {
......@@ -49,7 +50,9 @@ extern "C" JNIEXPORT jlong JNICALL Java_org_jetbrains_skia_BackendRenderTargetKt
texResInfo.fFormat = static_cast<DXGI_FORMAT>(format);
texResInfo.fSampleCount = static_cast<uint32_t>(sampleCnt);
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);
}
#endif //SK_DIRECT3D
......@@ -34,6 +34,7 @@ extern "C" JNIEXPORT jlong JNICALL Java_org_jetbrains_skia_DirectContextKt__1nMa
#ifdef SK_DIRECT3D
#include "ganesh/d3d/GrD3DBackendContext.h"
#include "ganesh/d3d/GrD3DDirectContext.h"
extern "C" JNIEXPORT jlong JNICALL Java_org_jetbrains_skia_DirectContextKt__1nMakeDirect3D
(JNIEnv* env, jclass jclass, jlong adapterPtr, jlong devicePtr, jlong queuePtr) {
......@@ -44,7 +45,7 @@ extern "C" JNIEXPORT jlong JNICALL Java_org_jetbrains_skia_DirectContextKt__1nMa
backendContext.fAdapter.retain(adapter);
backendContext.fDevice.retain(device);
backendContext.fQueue.retain(queue);
sk_sp<GrDirectContext> instance = GrDirectContext::MakeDirect3D(backendContext);
sk_sp<GrDirectContext> instance = GrDirectContexts::MakeD3D(backendContext);
return reinterpret_cast<jlong>(instance.release());
}
#endif //SK_DIRECT3D
......
#include <iostream>
#include <jni.h>
#include <memory>
#include "ParagraphCache.h"
#include "ParagraphStyle.h"
......
......@@ -40,6 +40,7 @@ SKIKO_EXPORT KNativePointer BackendRenderTarget_nMakeMetal
#ifdef SK_DIRECT3D
#include "ganesh/d3d/GrD3DTypes.h"
#include "ganesh/d3d/GrD3DBackendSurface.h"
#endif
SKIKO_EXPORT KNativePointer BackendRenderTarget_MakeDirect3D
......@@ -52,7 +53,9 @@ SKIKO_EXPORT KNativePointer BackendRenderTarget_MakeDirect3D
texResInfo.fFormat = static_cast<DXGI_FORMAT>(format);
texResInfo.fSampleCount = static_cast<uint32_t>(sampleCnt);
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;
#else
return 0;
......
......@@ -10,6 +10,7 @@
#ifdef SK_DIRECT3D
#include "ganesh/d3d/GrD3DBackendContext.h"
#include "ganesh/d3d/GrD3DDirectContext.h"
#endif
SKIKO_EXPORT KNativePointer org_jetbrains_skia_DirectContext__1nMakeGL
......@@ -48,7 +49,7 @@ SKIKO_EXPORT KNativePointer org_jetbrains_skia_DirectContext__1nMakeDirect3D
backendContext.fAdapter.retain(adapter);
backendContext.fDevice.retain(device);
backendContext.fQueue.retain(queue);
sk_sp<GrDirectContext> instance = GrDirectContext::MakeDirect3D(backendContext);
sk_sp<GrDirectContext> instance = GrDirectContexts::MakeD3D(backendContext);
return static_cast<KNativePointer>(instance.release());
#else // SK_DIRECT3D
return nullptr;
......
#include <iostream>
#include <memory>
#include "ParagraphCache.h"
#include "ParagraphStyle.h"
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