Skip to content
Merged
Show file tree
Hide file tree
Changes from 22 commits
Commits
Show all changes
27 commits
Select commit Hold shift + click to select a range
5163843
Update skia to m144-e2e6623374
MatkovIvan Jan 29, 2026
0649ac9
Migrate from `FontRastrSettings` to separate fields
MatkovIvan Jan 29, 2026
5775cdd
Migrate to SkSpan-based signatures
MatkovIvan Jan 29, 2026
3f5ef9a
Remove SkApplyPerspectiveClip option
MatkovIvan Jan 29, 2026
9b99067
Remove U_DISABLE_RENAMING option duplicate
MatkovIvan Jan 29, 2026
fa194f2
Update tests for `FontRastrSettings`
MatkovIvan Jan 29, 2026
d3f6efd
Fix `SkFontMgr_New_FontConfig` usage
MatkovIvan Jan 29, 2026
4a2fce7
Add `SK_HIDE_PATH_EDIT_METHODS` flag to align headers to pre-build bi…
MatkovIvan Jan 29, 2026
dd3e80a
Migrate C++ usages to immutable SkPath API
MatkovIvan Jan 29, 2026
35e652f
Migrate to immutable SkPath. Provide wrapper for SkPathBuilder
MatkovIvan Jan 29, 2026
c837c96
Migrate tests to immutable path API
MatkovIvan Jan 29, 2026
b8c2955
Aling macOS minimal version with skia: 11.0
MatkovIvan Jan 29, 2026
5992c32
Remove usage of deprecated `FontRastrSettings` from ClocksAwt sample
MatkovIvan Jan 29, 2026
9720832
Fix Path API tests for immutable Path migration
MatkovIvan Feb 15, 2026
f805ade
Fix Linux/Android font crash: Provide FreeType scanner to FontMgr
MatkovIvan Feb 15, 2026
b01e50e
Update emsdk to 4.0.7 to match skia-pack build environment
MatkovIvan Feb 15, 2026
33b2b77
Use boolean assertions in TextStyle subpixel test
MatkovIvan Feb 15, 2026
a32b985
Update skia to m144-e2e6623374-2
MatkovIvan Feb 16, 2026
c6e4010
Address feedback
MatkovIvan Feb 16, 2026
b88412a
Align Region API
MatkovIvan Feb 16, 2026
c96d701
Properly handle `lastPt` of empty Path
MatkovIvan Feb 16, 2026
5964989
Align Path API with C++ header
MatkovIvan Feb 16, 2026
ddb55b1
Fix approximateBytesUsed bindings (long are not supported on js)
MatkovIvan Feb 16, 2026
28c730b
Use TextStyle raster settings in ClocksAwt paragraph sample
MatkovIvan Feb 18, 2026
c5e83e8
Fix samples to use freshly built skiko artifacts
MatkovIvan Feb 18, 2026
52cd1b1
Fix formatting
MatkovIvan Feb 18, 2026
7ee8aa2
Revert applying --refresh-dependencies option
MatkovIvan Feb 18, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 2 additions & 2 deletions .github/workflows/tests.yml
Original file line number Diff line number Diff line change
Expand Up @@ -376,8 +376,8 @@ jobs:
git clone https://github.com/emscripten-core/emsdk.git
cd ./emsdk
fi
./emsdk install 3.1.50
./emsdk activate 3.1.50
./emsdk install 4.0.7
./emsdk activate 4.0.7

- shell: bash
name: 'Run WASM Tests'
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -89,9 +89,7 @@ open class ClocksAwt(
val y = ypos.toFloat()
canvas.drawString(text, x, y, font, paint)

val style = ParagraphStyle().apply {
fontRastrSettings = FontRastrSettings(FontEdging.SUBPIXEL_ANTI_ALIAS, FontHinting.SLIGHT, true)
}
val style = ParagraphStyle()
val paragraph = ParagraphBuilder(style, fontCollection)
.pushStyle(TextStyle().setColor(0xFF000000.toInt()))
.addText("Graphic API: ${renderProvider()}, JRE: ${System.getProperty("java.vendor")}, ${System.getProperty("java.runtime.version")} $currentSystemTheme")
Expand Down
2 changes: 1 addition & 1 deletion skiko/buildSrc/src/main/kotlin/properties.kt
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@ enum class OS(
Linux("linux", arrayOf()),
Android("android", arrayOf()),
Windows("windows", arrayOf()),
MacOS("macos", arrayOf("-mmacosx-version-min=10.15")),
MacOS("macos", arrayOf("-mmacosx-version-min=11.0")),
Wasm("wasm", arrayOf()),
IOS("ios", arrayOf()),
TVOS("tvos", arrayOf())
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -65,8 +65,8 @@ fun skiaPreprocessorFlags(os: OS, buildType: SkiaBuildType): Array<String> {
"-DSK_SHAPER_UNICODE_AVAILABLE",
"-DSK_SUPPORT_OPENCL=0",
"-DSK_UNICODE_AVAILABLE",
"-DU_DISABLE_RENAMING",
"-DSK_USING_THIRD_PARTY_ICU",
"-DSK_HIDE_PATH_EDIT_METHODS", // Temporary (m144) skia flag for migration to SkPathBuilder
// For ICU symbols renaming:
"-DU_DISABLE_RENAMING=0",
"-DU_DISABLE_VERSION_SUFFIX=1",
Expand Down Expand Up @@ -355,4 +355,4 @@ fun KotlinTarget.generateVersion(
(this as KotlinCompileTool).source(generatedDir.get().asFile)
}
}
}
}
2 changes: 1 addition & 1 deletion skiko/docker/linux-emscripten-amd64/Dockerfile
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@ RUN apt update -y && \

# Install emscripten
ENV EMSDK_DIR=/usr/emsdk
ENV EMSDK_VER=3.1.50
ENV EMSDK_VER=4.0.7
ENV PATH=$EMSDK_DIR/upstream/emscripten:$PATH
RUN git clone https://github.com/emscripten-core/emsdk.git $EMSDK_DIR && \
$EMSDK_DIR/emsdk install $EMSDK_VER && \
Expand Down
2 changes: 1 addition & 1 deletion skiko/gradle.properties
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@ kotlin.mpp.enableCInteropCommonization=true
deploy.version=0.0.0

# a tag from https://github.com/JetBrains/skia-pack
dependencies.skia=m138-80d088a-2
dependencies.skia=m144-e2e6623374-2

# a tag from https://github.com/JetBrains/angle-pack
dependencies.angle=ec4d8f8e4d
Expand Down
6 changes: 4 additions & 2 deletions skiko/src/commonMain/cpp/common/FontMgrDefaultFactory.cc
Original file line number Diff line number Diff line change
Expand Up @@ -11,10 +11,12 @@

#if (defined(SK_BUILD_FOR_UNIX) || defined(SK_BUILD_FOR_LINUX)) && !defined(SKIKO_WASM)
#include "ports/SkFontMgr_fontconfig.h"
#include "ports/SkFontScanner_FreeType.h"
#endif

#ifdef SK_BUILD_FOR_ANDROID
#include "ports/SkFontMgr_android.h"
#include "ports/SkFontScanner_FreeType.h"
#endif

#ifdef SKIKO_WASM
Expand All @@ -36,11 +38,11 @@ sk_sp<SkFontMgr> SkFontMgrSkikoDefault() {
#endif

#if (defined(SK_BUILD_FOR_UNIX) || defined(SK_BUILD_FOR_LINUX)) && !defined(SKIKO_WASM)
return SkFontMgr_New_FontConfig(nullptr);
return SkFontMgr_New_FontConfig(nullptr, SkFontScanner_Make_FreeType());
#endif

#ifdef SK_BUILD_FOR_ANDROID
return SkFontMgr_New_Android(nullptr);
return SkFontMgr_New_Android(nullptr, SkFontScanner_Make_FreeType());
#endif

#ifdef SKIKO_WASM
Expand Down
2 changes: 1 addition & 1 deletion skiko/src/commonMain/cpp/common/mppinterop.cc
Original file line number Diff line number Diff line change
Expand Up @@ -49,7 +49,7 @@ namespace skikoMpp {
if (run.fGlyphCount > 1 && SkScalarNearlyEqual(posBuffer[(run.fGlyphCount - 2) * 2], lastLeft))
lastWidth = 0;
else
font.getWidths(&run.fGlyphIndices[run.fGlyphCount - 1], 1, &lastWidth);
font.getWidths({&run.fGlyphIndices[run.fGlyphCount - 1], 1}, {&lastWidth, 1});

auto runBounds = SkRect::MakeLTRB(posBuffer[0], posBuffer[1] + metrics.fAscent, lastLeft + lastWidth, posBuffer[1] + metrics.fDescent);
bounds->join(runBounds);
Expand Down
5 changes: 3 additions & 2 deletions skiko/src/commonMain/cpp/common/node/RenderNode.cpp
Original file line number Diff line number Diff line change
@@ -1,4 +1,5 @@
#include <SkNWayCanvas.h>
#include <SkPathBuilder.h>
#include <SkPicture.h>
#include <SkShadowUtils.h>
#include "node/RenderNode.h"
Expand Down Expand Up @@ -306,9 +307,9 @@ void RenderNode::updateMatrix() {
void RenderNode::drawShadow(SkCanvas *canvas, const LightGeometry& lightGeometry, const LightInfo& lightInfo) {
SkPath tmpPath, *path = &tmpPath;
if (this->clipRect) {
tmpPath.addRect(*this->clipRect);
tmpPath = SkPathBuilder().addRect(*this->clipRect).detach();
} else if (this->clipRRect) {
tmpPath.addRRect(*this->clipRRect);
tmpPath = SkPathBuilder().addRRect(*this->clipRRect).detach();
} else if (this->clipPath) {
path = &*this->clipPath;
} else {
Expand Down
Loading
Loading