diff --git a/README.md b/README.md
index 36be4b3..6041b19 100644
--- a/README.md
+++ b/README.md
@@ -7,7 +7,7 @@ alphaSkia is a special cross platform [Skia](https://skia.org/) wrapper used in
alphaSkia a slightly adapted [Semantic Versioning](https://semver.org/) scheme where the `PATCH` part indicates
the Skia milestone version we have integrated.
-Currently we are on [Skia m120](https://github.com/CoderLine/alphaSkia/blob/main/.gitmodules#L8)
+Currently we are on [Skia m135](https://github.com/CoderLine/alphaSkia/blob/main/.gitmodules#L8)
Given a version number `MAJOR.MINOR.SKIA`:
diff --git a/build/Build.DotNet.cs b/build/Build.DotNet.cs
index c5af7fc..90e9a20 100644
--- a/build/Build.DotNet.cs
+++ b/build/Build.DotNet.cs
@@ -63,22 +63,31 @@ partial class Build
);
});
- void DotNetWriteVersionInfoProps()
+ private string DotNetVersion
{
- string semVer;
- if (IsLocalBuild)
- {
- semVer = $"{VersionInfo.FileVersion.ToString(3)}-local.{VersionInfo.FileVersion.Revision}";
- }
- else if (!IsReleaseBuild)
- {
- semVer = $"{VersionInfo.FileVersion.ToString(3)}-alpha.{VersionInfo.FileVersion.Revision}";
- }
- else
+ get
{
- semVer = $"{VersionInfo.FileVersion.ToString(3)}";
+ string semVer;
+ if (IsLocalBuild)
+ {
+ semVer = $"{VersionInfo.FileVersion.ToString(3)}-local.{VersionInfo.FileVersion.Revision}";
+ }
+ else if (!IsReleaseBuild)
+ {
+ semVer = $"{VersionInfo.FileVersion.ToString(3)}-alpha.{VersionInfo.FileVersion.Revision}";
+ }
+ else
+ {
+ semVer = $"{VersionInfo.FileVersion.ToString(3)}";
+ }
+
+ return semVer;
}
+ }
+ void DotNetWriteVersionInfoProps()
+ {
+ var semVer = DotNetVersion;
var props = $"""
@@ -102,6 +111,7 @@ void DotNetWriteVersionInfoProps()
[Parameter] string Framework;
+ [PublicAPI]
public Target DotNetTest => t => t
.DependsOn(PrepareGitHubArtifacts)
.Requires(() => Framework)
@@ -110,6 +120,7 @@ void DotNetWriteVersionInfoProps()
Log.Information($"Running DotNet tests on {TargetOperatingSystem.Current.RuntimeIdentifier}-{Architecture.Current} host system (OS fonts)");
DotNetTasks.DotNetRun(t => t
.SetProcessWorkingDirectory(RootDirectory / "test" / "dotnet" / "AlphaSkia.Test")
+ .SetProperty("AlphaSkiaTestVersion", DotNetVersion)
.SetRuntime(TargetOperatingSystem.Current.DotNetRid + "-" +
(Architecture ?? Architecture.Current))
.SetFramework(Framework)
@@ -119,6 +130,7 @@ void DotNetWriteVersionInfoProps()
Log.Information($"Running DotNet tests on {TargetOperatingSystem.Current.RuntimeIdentifier}-{Architecture.Current} host system (FreeType fonts)");
DotNetTasks.DotNetRun(t => t
.SetProcessWorkingDirectory(RootDirectory / "test" / "dotnet" / "AlphaSkia.Test")
+ .SetProperty("AlphaSkiaTestVersion", DotNetVersion)
.SetRuntime(TargetOperatingSystem.Current.DotNetRid + "-" +
(Architecture ?? Architecture.Current))
.SetFramework(Framework)
@@ -129,6 +141,7 @@ void DotNetWriteVersionInfoProps()
[Parameter] [Secret] readonly string NugetApiKey = GetVariable("NUGET_API_KEY");
+ [PublicAPI]
public Target DotNetPublish => t => t
.DependsOn(PrepareGitHubArtifacts)
.Requires(() => IsGitHubActions)
diff --git a/build/Build.Java.cs b/build/Build.Java.cs
index 2723722..fac4ace 100644
--- a/build/Build.Java.cs
+++ b/build/Build.Java.cs
@@ -78,6 +78,7 @@ void JavaBuildInternal()
workingDirectory: RootDirectory / "lib" / "java");
}
+ [PublicAPI]
public Target JavaTest => t => t
.DependsOn(PrepareGitHubArtifacts)
.Executes(() =>
@@ -146,6 +147,7 @@ string JavaVersion
}
}
+ [PublicAPI]
public Target JavaPublish => t => t
.DependsOn(PrepareGitHubArtifacts)
.Executes(() =>
diff --git a/build/Build.LibAlphaSkia.cs b/build/Build.LibAlphaSkia.cs
index 591f43c..fbc0273 100644
--- a/build/Build.LibAlphaSkia.cs
+++ b/build/Build.LibAlphaSkia.cs
@@ -85,6 +85,7 @@ partial class Build
"../../wrapper/src/alphaskia_canvas.cpp",
"../../wrapper/src/alphaskia_image.cpp",
"../../wrapper/src/alphaskia_typeface.cpp",
+ "../../wrapper/src/alphaskia_textstyle.cpp",
"../../wrapper/src/alphaskia_data.cpp",
"../../wrapper/src/alphaskia_string.cpp"
]
@@ -156,6 +157,7 @@ partial class Build
"../../lib/java/jni/src/AlphaSkiaCanvas.cpp",
"../../lib/java/jni/src/AlphaSkiaData.cpp",
"../../lib/java/jni/src/AlphaSkiaImage.cpp",
+ "../../lib/java/jni/src/AlphaSkiaTextStyle.cpp",
"../../lib/java/jni/src/AlphaSkiaTypeface.cpp"
]
}
@@ -356,14 +358,14 @@ void CopyBuildOutputTo(AbsolutePath path)
{
// libs
outDir.Copy(path,
- ExistsPolicy.MergeAndOverwriteIfNewer,
+ ExistsPolicy.MergeAndOverwrite,
null,
file => !libExtensions.Contains(file.Extension)
);
// copy header
(RootDirectory / "wrapper" / "include" / "alphaskia.h").Copy(
DistBasePath / "include" / "alphaskia" / "alphaskia.h",
- ExistsPolicy.MergeAndOverwriteIfNewer
+ ExistsPolicy.MergeAndOverwrite
);
}
@@ -415,13 +417,13 @@ void BuildAlphaSkiaTest()
// copy for artifacts
var distPath = DistBasePath / libDir;
var exePath = outDir / (buildTarget + exeExtension);
- exePath.Copy(distPath / exePath.Name, ExistsPolicy.MergeAndOverwriteIfNewer);
+ exePath.Copy(distPath / exePath.Name, ExistsPolicy.MergeAndOverwrite);
// copy shared lib beside executable
var libExtensions = new HashSet(GetLibExtensions(Variant), StringComparer.OrdinalIgnoreCase);
foreach (var file in sharedLibPath.GetFiles().Where(f => libExtensions.Contains(f.Extension)))
{
- file.Copy(outDir / file.Name, ExistsPolicy.MergeAndOverwriteIfNewer);
+ file.Copy(outDir / file.Name, ExistsPolicy.MergeAndOverwrite);
}
// run executable
@@ -439,6 +441,7 @@ void BuildAlphaSkiaTest()
"--freetype",
workingDirectory: outDir
);
+
}
else
{
diff --git a/build/Build.LibSkia.cs b/build/Build.LibSkia.cs
index b47b886..fa5e554 100644
--- a/build/Build.LibSkia.cs
+++ b/build/Build.LibSkia.cs
@@ -31,6 +31,9 @@ partial class Build
"third_party/externals/zlib",
"third_party/externals/wuffs",
"third_party/externals/vulkanmemoryallocator",
+ "third_party/externals/libgrapheme",
+ "third_party/externals/icu",
+ "third_party/externals/unicodetools",
// Android font manager
"third_party/externals/expat"
@@ -63,7 +66,7 @@ partial class Build
if (LibSkiaSkip.Value)
{
- DistBasePath.Copy(ArtifactBasePath, ExistsPolicy.MergeAndOverwriteIfNewer);
+ DistBasePath.Copy(ArtifactBasePath, ExistsPolicy.MergeAndOverwrite);
}
else
{
@@ -87,9 +90,32 @@ partial class Build
.After(LibSkiaGitSyncDeps)
.Executes(() =>
{
+
// add harfbuzz and freetype as dependency as we want it for alphaSkia
var buildFile = SkiaPath / "BUILD.gn";
var buildFileSource = buildFile.ReadAllText();
+
+
+ var skiaGniStart = buildFileSource.IndexOf("import(\"gn/skia.gni\")", StringComparison.Ordinal);
+ if (skiaGniStart == -1)
+ {
+ throw new IOException("BUILD.gn of skia changed, cannot patch files");
+ }
+
+ var skiaGniEnd = buildFileSource.IndexOf("\n", skiaGniStart, StringComparison.Ordinal);
+ if (skiaGniEnd == -1)
+ {
+ throw new IOException("BUILD.gn of skia changed, cannot patch files");
+ }
+
+ buildFileSource = buildFileSource[..skiaGniEnd]
+ + "import(\"modules/skparagraph/skparagraph.gni\")\n"
+ + "import(\"third_party/icu/icu.gni\")\n"
+ + "import(\"modules/skunicode/skunicode.gni\")\n"
+ + "import(\"modules/skshaper/skshaper.gni\")\n"
+ + buildFileSource[skiaGniEnd..];
+
+
var skiaComponentStart = buildFileSource.IndexOf("skia_component(\"skia\")", StringComparison.Ordinal);
if (skiaComponentStart == -1)
{
@@ -114,8 +140,8 @@ partial class Build
if (!depsList.Contains("//third_party/harfbuzz"))
{
var newDepsList = depsList.TrimEnd('\r', '\n', '\t', ' ', ',')
- + ", \"//third_party/harfbuzz\", \"//third_party/freetype2\", "
- ;
+ + ", \"//third_party/harfbuzz\", \"//third_party/freetype2\", skia_libgrapheme_third_party_dir, skia_icu_bidi_third_party_dir"
+ ;
buildFileSource = buildFileSource[..depsListStart]
+ newDepsList
+ buildFileSource[depsListEnd..];
@@ -135,22 +161,15 @@ partial class Build
}
var sources = buildFileSource.Substring(sourcesStart, sourcesEnd);
- if (!sources.Contains("# AlphaSkia Patch FreeType"))
+ if (!sources.Contains("# AlphaSkia Patch FreeType and SkParagraph"))
{
- var newSources = "# AlphaSkia Patch FreeType\n";
+ var newSources = "# AlphaSkia Patch FreeType and SkParagraph\n";
// ensure we have freetype available
newSources += " include_dirs = [ \"externals/freetype/include\" ]\n";
- newSources += " sources += [\n";
- newSources += " \"src/ports/SkFontHost_FreeType.cpp\",\n";
- newSources += " \"src/ports/SkFontHost_FreeType_common.cpp\",\n";
- newSources += " \"src/ports/SkFontHost_FreeType_common.h\",\n";
- newSources += " ]\n";
+ newSources += " sources += skia_ports_freetype_sources\n";
// ensure we have the custom embedded FontMgr available (for in-memory freetype usage)
- newSources += " sources += [\n";
- newSources += " \"src/ports/SkFontMgr_custom.h\",\n";
- newSources += " \"src/ports/SkFontMgr_custom.cpp\",\n";
- newSources += " \"src/ports/SkFontMgr_custom_embedded.cpp\",\n";
- newSources += " ]\n";
+ newSources += " sources += skia_ports_fontmgr_embedded_sources\n";
+ newSources += " sources += skia_ports_fontmgr_custom_sources\n";
// ensure we have the OS specific font managers available
newSources += " if (is_win) {\n";
newSources += " sources += skia_ports_windows_fonts_sources\n";
@@ -181,6 +200,38 @@ partial class Build
newSources += " sources += skia_ports_fontmgr_coretext_sources\n";
newSources += " }\n";
newSources += " ";
+
+ // Directly add some submodules to the main skia lib
+
+ // SkShaper
+ newSources += " defines += [ \"SK_SHAPER_HARFBUZZ_AVAILABLE\", \"SK_SHAPER_UNICODE_AVAILABLE\", \"SKSHAPER_IMPLEMENTATION=1\" ]\n";
+ newSources += " sources += skia_shaper_primitive_sources\n";
+ newSources += " sources += skia_shaper_skunicode_sources\n";
+ newSources += " sources += skia_shaper_harfbuzz_sources\n";
+ newSources += " public += skia_unicode_public\n";
+
+ // SkUnicode
+ newSources += " defines += [\"SK_UNICODE_AVAILABLE\", \"SKUNICODE_IMPLEMENTATION=1\", \"SK_UNICODE_LIBGRAPHEME_IMPLEMENTATION\" ]\n";
+ newSources += " configs += [\"//third_party/icu/config:no_cxx\"]\n";
+
+ newSources += " sources += skia_unicode_sources\n";
+ newSources += " sources += skia_unicode_icu_bidi_sources\n";
+ newSources += " sources += skia_unicode_bidi_subset_sources\n";
+ newSources += " sources += skia_unicode_libgrapheme_sources\n";
+ newSources += " public += skia_unicode_public\n";
+ newSources += " defines += [\n";
+ newSources += " \"U_DISABLE_RENAMING=0\",\n";
+ newSources += " \"U_USING_ICU_NAMESPACE=0\",\n";
+ newSources += " \"U_LIB_SUFFIX_C_NAME=_skia\",\n";
+ newSources += " \"U_HAVE_LIB_SUFFIX=1\",\n";
+ newSources += " \"U_DISABLE_VERSION_SUFFIX=1\",\n";
+ newSources += " ]\n";
+
+ // SkParagraph
+ newSources += " defines += [ \"SK_ENABLE_PARAGRAPH\" ]\n";
+ newSources += " sources += skparagraph_sources\n";
+ newSources += " public += skparagraph_public\n";
+
newSources += " sources += [\n";
newSources += " \"../../wrapper/src/SkFontMgr_alphaskia.cpp\",\n";
newSources += " \"../../wrapper/include/SkFontMgr_alphaskia.h\",\n";
@@ -203,8 +254,8 @@ partial class Build
newSources += " }\n";
buildFileSource = buildFileSource[..sourcesEnd]
- + newSources
- + buildFileSource[sourcesEnd..];
+ + newSources
+ + buildFileSource[sourcesEnd..];
}
buildFile.WriteAllText(buildFileSource);
@@ -253,7 +304,11 @@ void BuildSkia()
gnArgs["skia_use_icu"] = "false";
gnArgs["skia_use_piex"] = "false";
gnArgs["skia_use_sfntly"] = "false";
+ gnArgs["skia_use_libgrapheme"] = "true";
gnArgs["skia_enable_skshaper"] = "true";
+ gnArgs["skia_enable_skparagraph"] = "true";
+ gnArgs["skia_enable_skunicode"] = "true";
+ gnArgs["skia_use_harfbuzz"] = "true";
gnArgs["skia_pdf_subset_harfbuzz"] = "false";
gnArgs["skia_enable_pdf"] = "false";
gnArgs["skia_use_dng_sdk"] = "false";
@@ -285,7 +340,7 @@ void BuildSkia()
void CopyBuildOutputTo(AbsolutePath path)
{
// libs
- outDir.Copy(path, ExistsPolicy.MergeAndOverwriteIfNewer, null,
+ outDir.Copy(path, ExistsPolicy.MergeAndOverwrite, null,
file => !libExtension.Contains(file.Extension));
}
diff --git a/build/Build.Node.cs b/build/Build.Node.cs
index a35c95f..7572957 100644
--- a/build/Build.Node.cs
+++ b/build/Build.Node.cs
@@ -53,7 +53,7 @@ partial class Build
foreach (var tgz in (RootDirectory / "lib" / "node").GetFiles("*.tgz", int.MaxValue))
{
- tgz.Copy(RootDirectory / "dist" / "nodetars" / tgz.Name, ExistsPolicy.MergeAndOverwriteIfNewer);
+ tgz.Copy(RootDirectory / "dist" / "nodetars" / tgz.Name, ExistsPolicy.MergeAndOverwrite);
}
PrepareTgzForTest();
@@ -72,7 +72,7 @@ void PrepareTgzForTest()
+ tgz.Extension;
tgz.Copy(RootDirectory / "dist" / "nodetars" / nameWithoutVersion,
- ExistsPolicy.MergeAndOverwriteIfNewer);
+ ExistsPolicy.MergeAndOverwrite);
files.Add(nameWithoutVersion);
}
@@ -215,7 +215,7 @@ void CopyNodeAddonsToPackages()
}
subDirectory.Copy(RootDirectory / "lib" / "node" / packageName / "lib" / subDirectory.Name,
- ExistsPolicy.MergeAndOverwriteIfNewer, null, fi => fi.Extension != ".node");
+ ExistsPolicy.MergeAndOverwrite, null, fi => fi.Extension != ".node");
}
}
diff --git a/externals/node-api-headers b/externals/node-api-headers
index 186e04b..d46edab 160000
--- a/externals/node-api-headers
+++ b/externals/node-api-headers
@@ -1 +1 @@
-Subproject commit 186e04b5e40e54d7fd1655bc67081cc483f12488
+Subproject commit d46edabd5bbacc08393578eb19fc2eba7021b597
diff --git a/lib/dotnet/AlphaSkia/AlphaSkiaCanvas.cs b/lib/dotnet/AlphaSkia/AlphaSkiaCanvas.cs
index 7f7916e..3d214e1 100644
--- a/lib/dotnet/AlphaSkia/AlphaSkiaCanvas.cs
+++ b/lib/dotnet/AlphaSkia/AlphaSkiaCanvas.cs
@@ -281,31 +281,31 @@ public void Stroke()
/// Fills a text with the current color and provided details.
///
/// The text to draw.
- /// The typeface to use for drawing the text.
+ /// The text style to use for drawing the text.
/// The font size to use when drawing the text.
/// The X-position where to draw the text to.
/// The Y-position where to draw the text to.
/// How to align the text at the given position horizontally.
/// How to align the text at the given position vertically.
- public void FillText(string text, AlphaSkiaTypeface typeface, float fontSize, float x, float y,
+ public void FillText(string text, AlphaSkiaTextStyle textStyle, float fontSize, float x, float y,
AlphaSkiaTextAlign textAlign,
AlphaSkiaTextBaseline baseline)
{
CheckDisposed();
- NativeMethods.alphaskia_canvas_fill_text(Handle, text, text.Length, typeface.Handle, fontSize, x, y, textAlign, baseline);
+ NativeMethods.alphaskia_canvas_fill_text(Handle, text, text.Length, textStyle.Handle, fontSize, x, y, textAlign, baseline);
}
///
/// Measures the given text.
///
/// The text to measure.
- /// The typeface to use for drawing the text.
- /// The font size to use when drawing the text.
+ /// The text style to use for measuring the text.
+ /// The font size to use when measuring the text.
/// The horizontal width of the text when it would be drawn.
- public float MeasureText(string text, AlphaSkiaTypeface typeface, float fontSize)
+ public float MeasureText(string text, AlphaSkiaTextStyle textStyle, float fontSize)
{
CheckDisposed();
- return NativeMethods.alphaskia_canvas_measure_text(Handle, text, text.Length, typeface.Handle, fontSize);
+ return NativeMethods.alphaskia_canvas_measure_text(Handle, text, text.Length, textStyle.Handle, fontSize);
}
///
diff --git a/lib/dotnet/AlphaSkia/AlphaSkiaTextStyle.cs b/lib/dotnet/AlphaSkia/AlphaSkiaTextStyle.cs
new file mode 100644
index 0000000..aca3875
--- /dev/null
+++ b/lib/dotnet/AlphaSkia/AlphaSkiaTextStyle.cs
@@ -0,0 +1,42 @@
+namespace AlphaSkia;
+
+///
+/// Represents a text style which can be used to draw or measure texts
+/// with support for mixed fonts for fallback character rendering.
+///
+///
+/// This structure is designed for good reusability. The same text style might be used
+/// with different font sizes, colors and alignments, that's why they are not part of this structure itself.
+///
+public sealed class AlphaSkiaTextStyle : AlphaSkiaNative
+{
+ ///
+ /// Gets the list of font family names which are consulted for finding
+ /// typefaces with glyphs for drawing or measuring texts.
+ ///
+ public string[] FontFamilies { get; }
+
+ ///
+ /// Gets the font weight used for finding typefaces.
+ ///
+ public ushort Weight { get; }
+
+ ///
+ /// Gets whether the used typefaces should be italic.
+ ///
+ public bool IsItalic { get; }
+
+ ///
+ /// Initializes a new instance of the class.
+ ///
+ /// The list of font family names.
+ /// The font weight typefaces should have.
+ /// Whether typefaces should be italic.
+ public AlphaSkiaTextStyle(string[] fontFamilies, ushort weight, bool isItalic)
+ : base(NativeMethods.alphaskia_textstyle_new((byte)fontFamilies.Length, fontFamilies, weight, isItalic ? (byte)1 : (byte)0), NativeMethods.alphaskia_textstyle_free)
+ {
+ FontFamilies = fontFamilies;
+ Weight = weight;
+ IsItalic = isItalic;
+ }
+}
\ No newline at end of file
diff --git a/lib/dotnet/AlphaSkia/AlphaSkiaTypeface.cs b/lib/dotnet/AlphaSkia/AlphaSkiaTypeface.cs
index 111e718..bbb0cda 100644
--- a/lib/dotnet/AlphaSkia/AlphaSkiaTypeface.cs
+++ b/lib/dotnet/AlphaSkia/AlphaSkiaTypeface.cs
@@ -34,9 +34,14 @@ public string FamilyName
}
///
- /// Gets a value indicating whether the typeface is bold.
+ /// Gets a value indicating whether the typeface is bold (weight >= 600, 600=>SemiBold)
///
- public bool IsBold => NativeMethods.alphaskia_typeface_is_bold(Handle) != 0;
+ public bool IsBold => Weight >= 600 /* kSemiBold_Weight */;
+
+ ///
+ /// Gets the weight of the font.
+ ///
+ public ushort Weight => NativeMethods.alphaskia_typeface_get_weight(Handle);
///
/// Gets a value indicating whether the typeface is italic.
@@ -81,13 +86,13 @@ protected override void Dispose(bool disposing)
/// Creates a typeface using the provided information.
///
/// The name of the typeface.
- /// Whether the bold version of the typeface should be loaded.
+ /// The weight of the typeface.
/// Whether the italic version of the typeface should be loaded.
/// The typeface if it can be found in the already loaded fonts or the system fonts, otherwise null.
- public static AlphaSkiaTypeface? Create(string name, bool bold, bool italic)
+ public static AlphaSkiaTypeface? Create(string name, ushort weight, bool italic)
{
var typeface =
- NativeMethods.alphaskia_typeface_make_from_name(name, bold ? (byte)1 : (byte)0, italic ? (byte)1 : (byte)0);
+ NativeMethods.alphaskia_typeface_make_from_name(name, weight, italic ? (byte)1 : (byte)0);
if (typeface == IntPtr.Zero)
{
return null;
@@ -95,4 +100,16 @@ protected override void Dispose(bool disposing)
return new AlphaSkiaTypeface(typeface);
}
+
+ ///
+ /// Creates a typeface using the provided information.
+ ///
+ /// The name of the typeface.
+ /// Whether the bold version of the typeface should be loaded.
+ /// Whether the italic version of the typeface should be loaded.
+ /// The typeface if it can be found in the already loaded fonts or the system fonts, otherwise null.
+ public static AlphaSkiaTypeface? Create(string name, bool bold, bool italic)
+ {
+ return Create(name, bold ? (ushort)700 : (ushort)400, italic);
+ }
}
\ No newline at end of file
diff --git a/lib/dotnet/AlphaSkia/GlobalUsings.cs b/lib/dotnet/AlphaSkia/GlobalUsings.cs
index 7655401..6ff5c50 100644
--- a/lib/dotnet/AlphaSkia/GlobalUsings.cs
+++ b/lib/dotnet/AlphaSkia/GlobalUsings.cs
@@ -2,4 +2,5 @@
global using alphaskia_image_t = System.IntPtr;
global using alphaskia_canvas_t = System.IntPtr;
global using alphaskia_data_t = System.IntPtr;
-global using alphaskia_string_t = System.IntPtr;
\ No newline at end of file
+global using alphaskia_string_t = System.IntPtr;
+global using alphaskia_textstyle_t = System.IntPtr;
\ No newline at end of file
diff --git a/lib/dotnet/AlphaSkia/NativeMethods.cs b/lib/dotnet/AlphaSkia/NativeMethods.cs
index 889f916..9c89ce3 100644
--- a/lib/dotnet/AlphaSkia/NativeMethods.cs
+++ b/lib/dotnet/AlphaSkia/NativeMethods.cs
@@ -41,22 +41,35 @@ internal static class NativeMethods
[DllImport(AlphaSkiaNativeLibName, CallingConvention = CallingConvention.Cdecl)]
public static extern alphaskia_string_t alphaskia_typeface_get_family_name(alphaskia_typeface_t typeface);
[DllImport(AlphaSkiaNativeLibName, CallingConvention = CallingConvention.Cdecl)]
- public static extern byte alphaskia_typeface_is_bold(alphaskia_typeface_t typeface);
+ public static extern ushort alphaskia_typeface_get_weight(alphaskia_typeface_t typeface);
[DllImport(AlphaSkiaNativeLibName, CallingConvention = CallingConvention.Cdecl)]
public static extern byte alphaskia_typeface_is_italic(alphaskia_typeface_t typeface);
[DllImport(AlphaSkiaNativeLibName, CallingConvention = CallingConvention.Cdecl)]
public static extern void alphaskia_typeface_free(alphaskia_typeface_t type_face);
+ [DllImport(AlphaSkiaNativeLibName, CallingConvention = CallingConvention.Cdecl)]
+ public static extern alphaskia_textstyle_t alphaskia_textstyle_new(byte family_name_count, string[] family_names, ushort weight, byte italic);
+ [DllImport(AlphaSkiaNativeLibName, CallingConvention = CallingConvention.Cdecl)]
+ public static extern byte alphaskia_textstyle_get_family_name_count(alphaskia_textstyle_t textstyle);
+ [DllImport(AlphaSkiaNativeLibName, CallingConvention = CallingConvention.Cdecl)]
+ public static extern alphaskia_string_t alphaskia_textstyle_get_family_name(alphaskia_textstyle_t textstyle, byte index);
+ [DllImport(AlphaSkiaNativeLibName, CallingConvention = CallingConvention.Cdecl)]
+ public static extern ushort alphaskia_textstyle_get_weight(alphaskia_textstyle_t textstyle);
+ [DllImport(AlphaSkiaNativeLibName, CallingConvention = CallingConvention.Cdecl)]
+ public static extern byte alphaskia_textstyle_is_italic(alphaskia_textstyle_t textstyle);
+ [DllImport(AlphaSkiaNativeLibName, CallingConvention = CallingConvention.Cdecl)]
+ public static extern void alphaskia_textstyle_free(alphaskia_textstyle_t textstyle);
+
[DllImport(AlphaSkiaNativeLibName)]
public static extern alphaskia_typeface_t alphaskia_typeface_make_from_name(
- #if NETSTANDARD2_0
+#if NETSTANDARD2_0
[MarshalAs(UnmanagedType.LPStr)]
- #else
+#else
[MarshalAs(UnmanagedType.LPUTF8Str)]
#endif
string utf8Name,
- byte bold, byte italic);
+ ushort weight, byte italic);
[DllImport(AlphaSkiaNativeLibName, CallingConvention = CallingConvention.Cdecl)]
@@ -151,19 +164,19 @@ public static extern void alphaskia_canvas_bezier_curve_to(alphaskia_canvas_t ca
[DllImport(AlphaSkiaNativeLibName, CallingConvention = CallingConvention.Cdecl)]
- public static extern void alphaskia_canvas_fill_text(alphaskia_canvas_t canvas,
+ public static extern void alphaskia_canvas_fill_text(alphaskia_canvas_t canvas,
[MarshalAs(UnmanagedType.LPWStr)]
string text,
int text_length,
- alphaskia_typeface_t type_face, float font_size, float x, float y, AlphaSkiaTextAlign text_align,
+ alphaskia_textstyle_t textstyle, float font_size, float x, float y, AlphaSkiaTextAlign text_align,
AlphaSkiaTextBaseline baseline);
[DllImport(AlphaSkiaNativeLibName, CallingConvention = CallingConvention.Cdecl)]
- public static extern float alphaskia_canvas_measure_text(alphaskia_canvas_t canvas,
+ public static extern float alphaskia_canvas_measure_text(alphaskia_canvas_t canvas,
[MarshalAs(UnmanagedType.LPWStr)]
string text,
int text_length,
- alphaskia_typeface_t type_face, float font_size);
+ alphaskia_textstyle_t textstyle, float font_size);
[DllImport(AlphaSkiaNativeLibName, CallingConvention = CallingConvention.Cdecl)]
public static extern void alphaskia_canvas_begin_rotate(alphaskia_canvas_t canvas, float center_x, float center_y,
diff --git a/lib/java/jni/include/alphaTab_alphaSkia_AlphaSkiaCanvas.h b/lib/java/jni/include/alphaTab_alphaSkia_AlphaSkiaCanvas.h
index dee5d19..386c56c 100644
--- a/lib/java/jni/include/alphaTab_alphaSkia_AlphaSkiaCanvas.h
+++ b/lib/java/jni/include/alphaTab_alphaSkia_AlphaSkiaCanvas.h
@@ -170,7 +170,7 @@ JNIEXPORT void JNICALL Java_alphaTab_alphaSkia_AlphaSkiaCanvas_stroke
/*
* Class: alphaTab_alphaSkia_AlphaSkiaCanvas
* Method: fillText
- * Signature: (Ljava/lang/String;LalphaTab/alphaSkia/AlphaSkiaTypeface;FFFLalphaTab/alphaSkia/AlphaSkiaTextAlign;LalphaTab/alphaSkia/AlphaSkiaTextBaseline;)V
+ * Signature: (Ljava/lang/String;LalphaTab/alphaSkia/AlphaSkiaTextStyle;FFFLalphaTab/alphaSkia/AlphaSkiaTextAlign;LalphaTab/alphaSkia/AlphaSkiaTextBaseline;)V
*/
JNIEXPORT void JNICALL Java_alphaTab_alphaSkia_AlphaSkiaCanvas_fillText
(JNIEnv *, jobject, jstring, jobject, jfloat, jfloat, jfloat, jobject, jobject);
@@ -178,7 +178,7 @@ JNIEXPORT void JNICALL Java_alphaTab_alphaSkia_AlphaSkiaCanvas_fillText
/*
* Class: alphaTab_alphaSkia_AlphaSkiaCanvas
* Method: measureText
- * Signature: (Ljava/lang/String;LalphaTab/alphaSkia/AlphaSkiaTypeface;F)F
+ * Signature: (Ljava/lang/String;LalphaTab/alphaSkia/AlphaSkiaTextStyle;F)F
*/
JNIEXPORT jfloat JNICALL Java_alphaTab_alphaSkia_AlphaSkiaCanvas_measureText
(JNIEnv *, jobject, jstring, jobject, jfloat);
diff --git a/lib/java/jni/include/alphaTab_alphaSkia_AlphaSkiaTextStyle.h b/lib/java/jni/include/alphaTab_alphaSkia_AlphaSkiaTextStyle.h
new file mode 100644
index 0000000..f1510f0
--- /dev/null
+++ b/lib/java/jni/include/alphaTab_alphaSkia_AlphaSkiaTextStyle.h
@@ -0,0 +1,29 @@
+/* DO NOT EDIT THIS FILE - it is machine generated */
+#include
+/* Header for class alphaTab_alphaSkia_AlphaSkiaTextStyle */
+
+#ifndef _Included_alphaTab_alphaSkia_AlphaSkiaTextStyle
+#define _Included_alphaTab_alphaSkia_AlphaSkiaTextStyle
+#ifdef __cplusplus
+extern "C" {
+#endif
+/*
+ * Class: alphaTab_alphaSkia_AlphaSkiaTextStyle
+ * Method: alphaskiaTextStyleNew
+ * Signature: ([Ljava/lang/String;IZ)J
+ */
+JNIEXPORT jlong JNICALL Java_alphaTab_alphaSkia_AlphaSkiaTextStyle_alphaskiaTextStyleNew
+ (JNIEnv *, jclass, jobjectArray, jint, jboolean);
+
+/*
+ * Class: alphaTab_alphaSkia_AlphaSkiaTextStyle
+ * Method: close
+ * Signature: ()V
+ */
+JNIEXPORT void JNICALL Java_alphaTab_alphaSkia_AlphaSkiaTextStyle_close
+ (JNIEnv *, jobject);
+
+#ifdef __cplusplus
+}
+#endif
+#endif
diff --git a/lib/java/jni/include/alphaTab_alphaSkia_AlphaSkiaTypeface.h b/lib/java/jni/include/alphaTab_alphaSkia_AlphaSkiaTypeface.h
index 542f246..01e5172 100644
--- a/lib/java/jni/include/alphaTab_alphaSkia_AlphaSkiaTypeface.h
+++ b/lib/java/jni/include/alphaTab_alphaSkia_AlphaSkiaTypeface.h
@@ -9,10 +9,10 @@ extern "C" {
#endif
/*
* Class: alphaTab_alphaSkia_AlphaSkiaTypeface
- * Method: isBold
- * Signature: ()Z
+ * Method: getWeight
+ * Signature: ()I
*/
-JNIEXPORT jboolean JNICALL Java_alphaTab_alphaSkia_AlphaSkiaTypeface_isBold
+JNIEXPORT jint JNICALL Java_alphaTab_alphaSkia_AlphaSkiaTypeface_getWeight
(JNIEnv *, jobject);
/*
@@ -50,10 +50,10 @@ JNIEXPORT jlong JNICALL Java_alphaTab_alphaSkia_AlphaSkiaTypeface_register
/*
* Class: alphaTab_alphaSkia_AlphaSkiaTypeface
* Method: makeFromName
- * Signature: (Ljava/lang/String;ZZ)J
+ * Signature: (Ljava/lang/String;IZ)J
*/
JNIEXPORT jlong JNICALL Java_alphaTab_alphaSkia_AlphaSkiaTypeface_makeFromName
- (JNIEnv *, jclass, jstring, jboolean, jboolean);
+ (JNIEnv *, jclass, jstring, jint, jboolean);
#ifdef __cplusplus
}
diff --git a/lib/java/jni/src/AlphaSkiaCanvas.cpp b/lib/java/jni/src/AlphaSkiaCanvas.cpp
index 1692583..481f395 100644
--- a/lib/java/jni/src/AlphaSkiaCanvas.cpp
+++ b/lib/java/jni/src/AlphaSkiaCanvas.cpp
@@ -172,8 +172,8 @@ extern "C"
const jchar *nativeStr = env->GetStringChars(str, nullptr);
- alphaskia_typeface_t nativeTypeface = reinterpret_cast(get_handle(env, typeface));
- CHECK_HANDLE(nativeTypeface)
+ alphaskia_textstyle_t nativeTextStyle = reinterpret_cast(get_handle(env, typeface));
+ CHECK_HANDLE(nativeTextStyle)
jmethodID textAlignGetValue = env->GetMethodID(env->GetObjectClass(text_align), "getValue", "()I");
if (!textAlignGetValue)
@@ -199,7 +199,7 @@ extern "C"
alphaskia_text_baseline_t nativeBaseline = static_cast(env->CallIntMethod(baseline, baselineGetValue));
alphaskia_canvas_fill_text(canvas, reinterpret_cast(nativeStr), static_cast(env->GetStringLength(str)),
- nativeTypeface, static_cast(font_size), static_cast(x), static_cast(y),
+ nativeTextStyle, static_cast(font_size), static_cast(x), static_cast(y),
nativeTextAlign, nativeBaseline);
env->ReleaseStringChars(str, nativeStr);
@@ -210,10 +210,10 @@ extern "C"
CHECK_HANDLE_RETURN(canvas, 0.0f)
const jchar *nativeStr = env->GetStringChars(str, nullptr);
- alphaskia_typeface_t nativeTypeface = reinterpret_cast(get_handle(env, typeface));
- CHECK_HANDLE_RETURN(nativeTypeface, 0.0f)
+ alphaskia_textstyle_t nativeTextStyle = reinterpret_cast(get_handle(env, typeface));
+ CHECK_HANDLE_RETURN(nativeTextStyle, 0.0f)
- float width = alphaskia_canvas_measure_text(canvas, reinterpret_cast(nativeStr), static_cast(env->GetStringLength(str)), nativeTypeface, static_cast(font_size));
+ float width = alphaskia_canvas_measure_text(canvas, reinterpret_cast(nativeStr), static_cast(env->GetStringLength(str)), nativeTextStyle, static_cast(font_size));
env->ReleaseStringChars(str, nativeStr);
diff --git a/lib/java/jni/src/AlphaSkiaTextStyle.cpp b/lib/java/jni/src/AlphaSkiaTextStyle.cpp
new file mode 100644
index 0000000..6ebfe0f
--- /dev/null
+++ b/lib/java/jni/src/AlphaSkiaTextStyle.cpp
@@ -0,0 +1,42 @@
+#include "../include/alphaTab_alphaSkia_AlphaSkiaTypeface.h"
+#include "../include/JniHelper.h"
+#include "../../../../wrapper/include/alphaskia.h"
+#include
+
+extern "C"
+{
+ JNIEXPORT jlong JNICALL Java_alphaTab_alphaSkia_AlphaSkiaTextStyle_alphaskiaTextStyleNew(JNIEnv *env, jclass, jobjectArray familyNames, jint weight, jboolean isItalic)
+ {
+ uint8_t familyNameLength = static_cast(env->GetArrayLength(familyNames));
+ std::vector nativeFamilyNames;
+ nativeFamilyNames.resize(familyNameLength);
+
+ for (uint8_t i = 0; i < familyNameLength; i++)
+ {
+ jstring familyName = static_cast(env->GetObjectArrayElement(familyNames, i));
+ nativeFamilyNames[i] = env->GetStringUTFChars(familyName, nullptr);
+ }
+
+ alphaskia_textstyle_t canvas = alphaskia_textstyle_new(
+ familyNameLength,
+ &nativeFamilyNames[0],
+ static_cast(weight),
+ isItalic ? 1 : 0);
+
+ for (uint8_t i = 0; i < familyNameLength; i++)
+ {
+ jstring familyName = static_cast(env->GetObjectArrayElement(familyNames, i));
+ env->ReleaseStringUTFChars(familyName, nativeFamilyNames[i]);
+ }
+ return static_cast(reinterpret_cast(canvas));
+ }
+
+ JNIEXPORT void JNICALL Java_alphaTab_alphaSkia_AlphaSkiaTextStyle_close(JNIEnv *env, jobject instance)
+ {
+ alphaskia_textstyle_t textStyle = reinterpret_cast(get_handle(env, instance));
+ CHECK_HANDLE(textStyle)
+
+ alphaskia_textstyle_free(textStyle);
+ set_handle(env, instance, 0);
+ }
+}
\ No newline at end of file
diff --git a/lib/java/jni/src/AlphaSkiaTypeface.cpp b/lib/java/jni/src/AlphaSkiaTypeface.cpp
index b0f5dc0..6a91361 100644
--- a/lib/java/jni/src/AlphaSkiaTypeface.cpp
+++ b/lib/java/jni/src/AlphaSkiaTypeface.cpp
@@ -15,21 +15,21 @@ extern "C"
return static_cast(reinterpret_cast(alphaskia_typeface_register(reinterpret_cast(data))));
}
- JNIEXPORT jlong JNICALL Java_alphaTab_alphaSkia_AlphaSkiaTypeface_makeFromName(JNIEnv *env, jclass, jstring name, jboolean bold, jboolean italic)
+ JNIEXPORT jlong JNICALL Java_alphaTab_alphaSkia_AlphaSkiaTypeface_makeFromName(JNIEnv *env, jclass, jstring name, jint weight, jboolean italic)
{
const char *nativeName = env->GetStringUTFChars(name, nullptr);
- alphaskia_typeface_t typeface = alphaskia_typeface_make_from_name(nativeName, bold, italic);
+ alphaskia_typeface_t typeface = alphaskia_typeface_make_from_name(nativeName, static_cast(weight), italic);
env->ReleaseStringUTFChars(name, nativeName);
return static_cast(reinterpret_cast(typeface));
}
- JNIEXPORT jboolean JNICALL Java_alphaTab_alphaSkia_AlphaSkiaTypeface_isBold(JNIEnv *env, jobject instance)
+ JNIEXPORT jint JNICALL Java_alphaTab_alphaSkia_AlphaSkiaTypeface_getWeight(JNIEnv *env, jobject instance)
{
jlong handle = get_handle(env, instance);
- CHECK_HANDLE_RETURN(handle, static_cast(false))
+ CHECK_HANDLE_RETURN(handle, static_cast(400))
- uint8_t is_bold = alphaskia_typeface_is_bold(reinterpret_cast(handle));
- return static_cast(is_bold != 0);
+ uint16_t weight = alphaskia_typeface_get_weight(reinterpret_cast(handle));
+ return static_cast(weight);
}
JNIEXPORT jboolean JNICALL Java_alphaTab_alphaSkia_AlphaSkiaTypeface_isItalic(JNIEnv *env, jobject instance)
diff --git a/lib/java/main/src/main/java/alphaTab/alphaSkia/AlphaSkiaCanvas.java b/lib/java/main/src/main/java/alphaTab/alphaSkia/AlphaSkiaCanvas.java
index 52e4f07..829a21b 100644
--- a/lib/java/main/src/main/java/alphaTab/alphaSkia/AlphaSkiaCanvas.java
+++ b/lib/java/main/src/main/java/alphaTab/alphaSkia/AlphaSkiaCanvas.java
@@ -206,14 +206,14 @@ public void beginRender(int width, int height)
* Fills a text with the current color and provided details.
*
* @param text The text to draw.
- * @param typeface The typeface to use for drawing the text.
+ * @param textStyle The text style to use for drawing the text.
* @param fontSize The font size to use when drawing the text.
* @param x The X-position where to draw the text to.
* @param y The Y-position where to draw the text to.
* @param textAlign How to align the text at the given position horizontally.
* @param baseline How to align the text at the given position vertically.
*/
- public native void fillText(String text, AlphaSkiaTypeface typeface, float fontSize, float x, float y,
+ public native void fillText(String text, AlphaSkiaTextStyle textStyle, float fontSize, float x, float y,
AlphaSkiaTextAlign textAlign,
AlphaSkiaTextBaseline baseline);
@@ -221,14 +221,14 @@ public native void fillText(String text, AlphaSkiaTypeface typeface, float fontS
* Measures the given text.
*
* @param text The text to measure.
- * @param typeface The typeface to use for drawing the text.
- * @param fontSize The font size to use when drawing the text.
+ * @param textStyle The text style to use for measuring the text.
+ * @param fontSize The font size to use when measuring the text.
* @return The horizontal width of the text when it would be drawn.
*/
- public native float measureText(String text, AlphaSkiaTypeface typeface, float fontSize);
+ public native float measureText(String text, AlphaSkiaTextStyle textStyle, float fontSize);
/**
- * Rotates the canvas allowing angled drawing. .
+ * Rotates the canvas allowing angled drawing
*
* @param centerX The X-position of the center around which to rotate.
* @param centerY The Y-position of the center around which to rotate.
diff --git a/lib/java/main/src/main/java/alphaTab/alphaSkia/AlphaSkiaTextStyle.java b/lib/java/main/src/main/java/alphaTab/alphaSkia/AlphaSkiaTextStyle.java
new file mode 100644
index 0000000..3d04dfc
--- /dev/null
+++ b/lib/java/main/src/main/java/alphaTab/alphaSkia/AlphaSkiaTextStyle.java
@@ -0,0 +1,47 @@
+package alphaTab.alphaSkia;
+
+/**
+ * Represents a text style which can be used to draw or measure texts
+ * with support for mixed fonts for fallback character rendering.
+ */
+public class AlphaSkiaTextStyle extends AlphaSkiaNative {
+ private final String[] fontFamilies;
+ private final int weight;
+ private final boolean isItalic;
+ /**
+ * Gets the list of font family names which are consulted for finding
+ * typefaces with glyphs for drawing or measuring texts.
+ * @return The list of font family names
+ */
+ public String[] getFontFamilies() { return this.fontFamilies; }
+
+ /**
+ * Gets the font weight used for finding typefaces.
+ * @return The font weight
+ */
+ public int getWeight() { return this.weight; }
+
+ /**
+ * Gets whether the used typefaces should be italic.
+ * @return Whether the used typefaces should be italic
+ */
+ public boolean isItalic() { return this.isItalic; }
+
+ /**
+ * Initializes a new instance of the {@see AlphaSkiaTextStyle} class.
+ * @param fontFamilies The list of font family names.
+ * @param weight The font weight typefaces should have..
+ * @param isItalic Whether typefaces should be italic.
+ */
+ public AlphaSkiaTextStyle(String[] fontFamilies, int weight, boolean isItalic) {
+ super(alphaskiaTextStyleNew(fontFamilies, weight, isItalic));
+ this.fontFamilies = fontFamilies;
+ this.weight = weight;
+ this.isItalic = isItalic;
+ }
+
+ private native static long alphaskiaTextStyleNew(String[] fontFamilies, int weight, boolean isItalic);
+
+ @Override
+ public native void close();
+}
diff --git a/lib/java/main/src/main/java/alphaTab/alphaSkia/AlphaSkiaTypeface.java b/lib/java/main/src/main/java/alphaTab/alphaSkia/AlphaSkiaTypeface.java
index b37ee89..551d717 100644
--- a/lib/java/main/src/main/java/alphaTab/alphaSkia/AlphaSkiaTypeface.java
+++ b/lib/java/main/src/main/java/alphaTab/alphaSkia/AlphaSkiaTypeface.java
@@ -21,10 +21,18 @@ public String getFamilyName() {
}
/**
- * Gets a value indicating whether the typeface is bold.
+ * Gets a value indicating whether the typeface is bold (weight >= 600, 600=>SemiBold).
* @return true if the font is bold, otherwise false.
*/
- public native boolean isBold();
+ public boolean isBold() {
+ return this.getWeight() >= 600 /* kSemiBold_Weight */;
+ }
+
+ /**
+ * Gets the weight of the font.
+ * @return the weight of the font.
+ */
+ public native int getWeight();
/**
* Gets a value indicating whether the typeface is italic.
@@ -72,18 +80,29 @@ public static AlphaSkiaTypeface register(byte[] data) {
* Creates a typeface using the provided information.
*
* @param name The name of the typeface.
- * @param bold Whether the bold version of the typeface should be loaded.
+ * @param weight The weight of the typeface.
* @param italic Whether the italic version of the typeface should be loaded.
* @return The typeface if it can be found in the already loaded fonts or the system fonts, otherwise {@code null}.
*/
- public static AlphaSkiaTypeface create(String name, boolean bold, boolean italic) {
- var typeface = makeFromName(name, bold, italic);
+ public static AlphaSkiaTypeface create(String name, int weight, boolean italic) {
+ var typeface = makeFromName(name, weight, italic);
if (typeface == 0) {
return null;
}
return new AlphaSkiaTypeface(typeface, null);
}
+ /**
+ * Creates a typeface using the provided information.
+ *
+ * @param name The name of the typeface.
+ * @param bold Whether the bold version of the typeface should be loaded.
+ * @param italic Whether the italic version of the typeface should be loaded.
+ * @return The typeface if it can be found in the already loaded fonts or the system fonts, otherwise {@code null}.
+ */
+ public static AlphaSkiaTypeface create(String name, boolean bold, boolean italic) {
+ return create(name, bold ? 700 : 400, italic);
+ }
- private static native long makeFromName(String name, boolean bold, boolean italic);
+ private static native long makeFromName(String name, int weight, boolean italic);
}
diff --git a/lib/node/addon/addon.cpp b/lib/node/addon/addon.cpp
index 47f6059..106ae0a 100644
--- a/lib/node/addon/addon.cpp
+++ b/lib/node/addon/addon.cpp
@@ -21,6 +21,7 @@ static const napi_type_tag alphaskia_data_t_tag = {0x6a960ece6a0c4caf, 0xad61688
static const napi_type_tag alphaskia_typeface_t_tag = {0x0068df0314224b96, 0x8048b968915995f1};
static const napi_type_tag alphaskia_image_t_tag = {0x9372c0f8e8de466f, 0x96a04b6ee0a9394b};
static const napi_type_tag alphaskia_canvas_t_tag = {0xaa77c76772a34052, 0x88ac80d4dc474395};
+static const napi_type_tag alphaskia_textstyle_t_tag = {0x8f2bc41a57024cf4, 0x8b5e1cd26ded5245};
#define RETURN_UNDEFINED() \
{ \
@@ -286,10 +287,10 @@ static napi_value node_alphaskia_typeface_make_from_name(napi_env env, napi_call
CHECK_ARGS(3);
GET_ARGUMENT_UTF8_STRING(0, name);
- GET_ARGUMENT_BOOL(1, bold);
+ GET_ARGUMENT_INT32(1, weight);
GET_ARGUMENT_BOOL(2, italic);
- alphaskia_typeface_t typeface = alphaskia_typeface_make_from_name(name.c_str(), bold ? 1 : 0, italic ? 1 : 0);
+ alphaskia_typeface_t typeface = alphaskia_typeface_make_from_name(name.c_str(), static_cast(weight), italic ? 1 : 0);
WRAP_HANDLE(alphaskia_typeface_t, wrapped, typeface);
return wrapped;
}
@@ -314,19 +315,19 @@ static napi_value node_alphaskia_typeface_get_family_name(napi_env env, napi_cal
return family_name;
}
-static napi_value node_alphaskia_typeface_is_bold(napi_env env, napi_callback_info info)
+static napi_value node_alphaskia_typeface_get_weight(napi_env env, napi_callback_info info)
{
napi_status status(napi_ok);
CHECK_ARGS(1);
GET_ARGUMENT_HANDLE(0, alphaskia_typeface_t, typeface);
- uint8_t is_bold = alphaskia_typeface_is_bold(typeface);
+ uint16_t weight = alphaskia_typeface_get_weight(typeface);
- napi_value node_is_bold;
- status = napi_get_boolean(env, is_bold != 0, &node_is_bold);
+ napi_value node_weight;
+ status = napi_create_int32(env, weight, &node_weight);
ASSERT_STATUS();
- return node_is_bold;
+ return node_weight;
}
static napi_value node_alphaskia_typeface_is_italic(napi_env env, napi_callback_info info)
@@ -344,6 +345,76 @@ static napi_value node_alphaskia_typeface_is_italic(napi_env env, napi_callback_
return node_is_italic;
}
+static napi_value node_alphaskia_textstyle_new(napi_env env, napi_callback_info info)
+{
+ napi_status status(napi_ok);
+
+ CHECK_ARGS(3);
+
+ // string[] unwrapping
+ bool is_array(false);
+ status = napi_is_array(env, node_argv[0], &is_array);
+ ASSERT_STATUS();
+ if (!is_array)
+ {
+ napi_throw_type_error(env, NULL, "Wrong argument type at index 0, expected array of strings");
+ return nullptr;
+ }
+
+ uint32_t familyNamesLength = 0;
+ status = napi_get_array_length(env, node_argv[0], &familyNamesLength);
+ ASSERT_STATUS();
+
+ familyNamesLength = static_cast(familyNamesLength);
+
+ std::vector familyNames;
+ familyNames.resize(familyNamesLength);
+ std::vector familyNamesRaw;
+ familyNamesRaw.resize(familyNamesLength);
+
+ for (uint8_t i = 0; i < familyNamesLength; i++)
+ {
+ napi_value item;
+ status = napi_get_element(env, node_argv[0], i, &item);
+ ASSERT_STATUS();
+
+ // no need for type checking, we do that in javascript, its less code there. napi functions might still fail
+
+ size_t name_size;
+ status = napi_get_value_string_utf8(env, item, nullptr, 0, &name_size);
+ ASSERT_STATUS();
+
+ familyNames.at(i).assign(name_size, ' ');
+ status = napi_get_value_string_utf8(env, item, familyNames.at(i).data(), name_size + 1, nullptr);
+ ASSERT_STATUS();
+
+ familyNamesRaw[i] = familyNames.at(i).data();
+ }
+ // string[] end
+
+ GET_ARGUMENT_INT32(1, weight);
+ GET_ARGUMENT_BOOL(2, italic);
+
+ alphaskia_textstyle_t textstyle = alphaskia_textstyle_new(static_cast(familyNamesLength), &familyNamesRaw[0], static_cast(weight), italic ? 1 : 0);
+ WRAP_HANDLE(alphaskia_textstyle_t, wrapped, textstyle);
+ return wrapped;
+}
+
+static napi_value node_alphaskia_textstyle_free(napi_env env, napi_callback_info info)
+{
+ napi_status status(napi_ok);
+
+ CHECK_ARGS(1);
+ GET_ARGUMENT_HANDLE(0, alphaskia_textstyle_t, textstyle);
+
+ alphaskia_textstyle_free(textstyle);
+ void *old;
+ status = napi_remove_wrap(env, node_argv[0], &old);
+ ASSERT_STATUS();
+
+ RETURN_UNDEFINED();
+}
+
static napi_value node_alphaskia_image_get_width(napi_env env, napi_callback_info info)
{
napi_status status(napi_ok);
@@ -772,14 +843,14 @@ static napi_value node_alphaskia_canvas_fill_text(napi_env env, napi_callback_in
CHECK_ARGS(8);
GET_ARGUMENT_HANDLE(0, alphaskia_canvas_t, canvas);
GET_ARGUMENT_UTF16_STRING(1, text);
- GET_ARGUMENT_HANDLE(2, alphaskia_typeface_t, typeface);
+ GET_ARGUMENT_HANDLE(2, alphaskia_textstyle_t, textstyle);
GET_ARGUMENT_FLOAT(3, font_size);
GET_ARGUMENT_FLOAT(4, x);
GET_ARGUMENT_FLOAT(5, y);
GET_ARGUMENT_INT32(6, text_align);
GET_ARGUMENT_INT32(7, baseline);
- alphaskia_canvas_fill_text(canvas, text.c_str(), text.length(), typeface, font_size, x, y, static_cast(text_align), static_cast(baseline));
+ alphaskia_canvas_fill_text(canvas, text.c_str(), text.length(), textstyle, font_size, x, y, static_cast(text_align), static_cast(baseline));
RETURN_UNDEFINED();
}
@@ -791,10 +862,10 @@ static napi_value node_alphaskia_canvas_measure_text(napi_env env, napi_callback
CHECK_ARGS(4);
GET_ARGUMENT_HANDLE(0, alphaskia_canvas_t, canvas);
GET_ARGUMENT_UTF16_STRING(1, text);
- GET_ARGUMENT_HANDLE(2, alphaskia_typeface_t, typeface);
+ GET_ARGUMENT_HANDLE(2, alphaskia_textstyle_t, textstyle);
GET_ARGUMENT_FLOAT(3, font_size);
- float width = alphaskia_canvas_measure_text(canvas, text.c_str(), text.length(), typeface, font_size);
+ float width = alphaskia_canvas_measure_text(canvas, text.c_str(), text.length(), textstyle, font_size);
napi_value width_node;
status = napi_create_double(env, width, &width_node);
ASSERT_STATUS();
@@ -854,9 +925,16 @@ napi_value init(napi_env env, napi_value exports)
EXPORT_NODE_FUNCTION(alphaskia_typeface_free);
EXPORT_NODE_FUNCTION(alphaskia_typeface_make_from_name);
EXPORT_NODE_FUNCTION(alphaskia_typeface_get_family_name);
- EXPORT_NODE_FUNCTION(alphaskia_typeface_is_bold);
+ EXPORT_NODE_FUNCTION(alphaskia_typeface_get_weight);
EXPORT_NODE_FUNCTION(alphaskia_typeface_is_italic);
+ EXPORT_NODE_FUNCTION(alphaskia_textstyle_new);
+ // EXPORT_NODE_FUNCTION(alphaskia_textstyle_get_family_name_count);
+ // EXPORT_NODE_FUNCTION(alphaskia_textstyle_get_family_name);
+ // EXPORT_NODE_FUNCTION(alphaskia_textstyle_get_weight);
+ // EXPORT_NODE_FUNCTION(alphaskia_textstyle_is_italic);
+ EXPORT_NODE_FUNCTION(alphaskia_textstyle_free);
+
EXPORT_NODE_FUNCTION(alphaskia_image_get_width);
EXPORT_NODE_FUNCTION(alphaskia_image_get_height);
EXPORT_NODE_FUNCTION(alphaskia_image_read_pixels);
diff --git a/lib/node/alphaskia-linux/package.json b/lib/node/alphaskia-linux/package.json
index bab7eb5..2b4e061 100644
--- a/lib/node/alphaskia-linux/package.json
+++ b/lib/node/alphaskia-linux/package.json
@@ -1,6 +1,6 @@
{
"name": "@coderline/alphaskia-linux",
- "version": "2.3.0",
+ "version": "1.0.120-local.0",
"description": "The node addon for alphaSkia enabling it to run on Linux",
"engines": {
"node": ">=18.0.0"
diff --git a/lib/node/alphaskia-macos/package.json b/lib/node/alphaskia-macos/package.json
index d66fb58..4ada991 100644
--- a/lib/node/alphaskia-macos/package.json
+++ b/lib/node/alphaskia-macos/package.json
@@ -1,6 +1,6 @@
{
"name": "@coderline/alphaskia-macos",
- "version": "2.3.0",
+ "version": "1.0.120-local.0",
"description": "The node addon for alphaSkia enabling it to run on MacOS",
"engines": {
"node": ">=18.0.0"
diff --git a/lib/node/alphaskia-windows/package.json b/lib/node/alphaskia-windows/package.json
index 9d429b9..529140e 100644
--- a/lib/node/alphaskia-windows/package.json
+++ b/lib/node/alphaskia-windows/package.json
@@ -1,6 +1,6 @@
{
"name": "@coderline/alphaskia-windows",
- "version": "2.3.0",
+ "version": "1.0.120-local.0",
"description": "The node addon for alphaSkia enabling it to run on Windows",
"engines": {
"node": ">=18.0.0"
diff --git a/lib/node/alphaskia/package.json b/lib/node/alphaskia/package.json
index da6c644..fea5559 100644
--- a/lib/node/alphaskia/package.json
+++ b/lib/node/alphaskia/package.json
@@ -1,6 +1,6 @@
{
"name": "@coderline/alphaskia",
- "version": "2.3.0",
+ "version": "1.0.120-local.0",
"description": "A Skia based rendering backend for alphaTab.",
"module": "./dist/alphaskia.mjs",
"typings": "./dist/alphaskia.d.ts",
diff --git a/lib/node/alphaskia/src/AlphaSkiaCanvas.ts b/lib/node/alphaskia/src/AlphaSkiaCanvas.ts
index e266b96..d37a262 100644
--- a/lib/node/alphaskia/src/AlphaSkiaCanvas.ts
+++ b/lib/node/alphaskia/src/AlphaSkiaCanvas.ts
@@ -1,6 +1,6 @@
import { AlphaSkiaImage } from './AlphaSkiaImage';
import { AlphaSkiaNative } from './AlphaSkiaNative';
-import { AlphaSkiaTypeface } from './AlphaSkiaTypeface';
+import { AlphaSkiaTextStyle } from './AlphaSkiaTextStyle';
import { AlphaSkiaTextBaseline, AlphaSkiaCanvasHandle, AlphaSkiaColorType, AlphaSkiaTextAlign, loadAddon } from './addon';
/**
@@ -274,16 +274,16 @@ export class AlphaSkiaCanvas extends AlphaSkiaNative {
* Fills a text with the current color and provided details.
*
* @param text The text to draw.
- * @param typeface The typeface to use for drawing the text.
+ * @param textStyle The typeface to use for drawing the text.
* @param fontSize The font size to use when drawing the text.
* @param x The X-position where to draw the text to.
* @param y The Y-position where to draw the text to.
* @param textAlign How to align the text at the given position horizontally.
* @param baseline How to align the text at the given position vertically.
*/
- public fillText(text: string, typeface: AlphaSkiaTypeface, fontSize: number, x: number, y: number, textAlign: AlphaSkiaTextAlign, baseline: AlphaSkiaTextBaseline): void {
+ public fillText(text: string, textStyle: AlphaSkiaTextStyle, fontSize: number, x: number, y: number, textAlign: AlphaSkiaTextAlign, baseline: AlphaSkiaTextBaseline): void {
this.checkDisposed();
- loadAddon().alphaskia_canvas_fill_text(this.handle!, text, typeface.handle!, fontSize, x, y, textAlign as number, baseline as number);
+ loadAddon().alphaskia_canvas_fill_text(this.handle!, text, textStyle.handle!, fontSize, x, y, textAlign as number, baseline as number);
}
/**
@@ -294,9 +294,9 @@ export class AlphaSkiaCanvas extends AlphaSkiaNative {
* @param fontSize The font size to use when drawing the text.
* @return The horizontal width of the text when it would be drawn.
*/
- public measureText(text: string, typeface: AlphaSkiaTypeface, fontSize: number): number {
+ public measureText(text: string, textStyle: AlphaSkiaTextStyle, fontSize: number): number {
this.checkDisposed();
- return loadAddon().alphaskia_canvas_measure_text(this.handle!, text, typeface.handle!, fontSize);
+ return loadAddon().alphaskia_canvas_measure_text(this.handle!, text, textStyle.handle!, fontSize);
}
/**
diff --git a/lib/node/alphaskia/src/AlphaSkiaTextStyle.ts b/lib/node/alphaskia/src/AlphaSkiaTextStyle.ts
new file mode 100644
index 0000000..c947125
--- /dev/null
+++ b/lib/node/alphaskia/src/AlphaSkiaTextStyle.ts
@@ -0,0 +1,55 @@
+import { AlphaSkiaNative } from './AlphaSkiaNative';
+import { AlphaSkiaTextStyleHandle, loadAddon } from './addon';
+
+/**
+ * Represents a text style which can be used to draw or measure texts
+ * with support for mixed fonts for fallback character rendering.
+ */
+export class AlphaSkiaTextStyle extends AlphaSkiaNative {
+ /**
+ * Gets the list of font family names which are consulted for finding
+ * typefaces with glyphs for drawing or measuring texts.
+ */
+ public readonly familyNames: string[];
+
+ /**
+ * Gets the font weight used for finding typefaces.
+ */
+ public readonly weight: number;
+
+ /**
+ * Gets whether the used typefaces should be italic.
+ */
+ public readonly isItalic: boolean;
+
+ /**
+ * Initializes a new instance of the {@link AlphaSkiaTextStyle} class.
+ * @param familyNames The list of font family names.
+ * @param weight The font weight typefaces should have.
+ * @param isItalic Whether typefaces should be italic.
+ */
+ public constructor(familyNames: string[], weight: number, isItalic: boolean) {
+ super(
+ loadAddon().alphaskia_textstyle_new(AlphaSkiaTextStyle.checkFamilyNames(familyNames), weight, isItalic),
+ loadAddon().alphaskia_textstyle_free,
+ )
+ this.familyNames = familyNames;
+ this.weight = weight;
+ this.isItalic = isItalic;
+ }
+
+
+ private static checkFamilyNames(familyNames: unknown): string[] {
+ if (!Array.isArray(familyNames)) {
+ throw new TypeError("family names must be a string array, provided value is no array");
+ }
+
+ for (let i = 0; i < familyNames.length; i++) {
+ if (typeof familyNames[i] !== 'string') {
+ throw new TypeError(`family names must be a string array, provided value at index ${i} is not a string`);
+ }
+ }
+
+ return familyNames as string[];
+ }
+}
\ No newline at end of file
diff --git a/lib/node/alphaskia/src/AlphaSkiaTypeface.ts b/lib/node/alphaskia/src/AlphaSkiaTypeface.ts
index 58b0ed8..e0d8cf9 100644
--- a/lib/node/alphaskia/src/AlphaSkiaTypeface.ts
+++ b/lib/node/alphaskia/src/AlphaSkiaTypeface.ts
@@ -25,7 +25,14 @@ export class AlphaSkiaTypeface extends AlphaSkiaNative
* Gets a value indicating whether the typeface is bold.
*/
public get isBold(): boolean {
- return loadAddon().alphaskia_typeface_is_bold(this.handle!);
+ return this.weight >= 600;
+ }
+
+ /**
+ * Gets the weight of the font.
+ */
+ public get weight(): number {
+ return loadAddon().alphaskia_typeface_get_weight(this.handle!)
}
/**
@@ -77,8 +84,36 @@ export class AlphaSkiaTypeface extends AlphaSkiaNative
* @param italic Whether the italic version of the typeface should be loaded.
* @return The typeface if it can be found in the already loaded fonts or the system fonts, otherwise {@code undefined}.
*/
- public static create(name: string, bold: boolean, italic: boolean): AlphaSkiaTypeface | undefined {
- const typeface = loadAddon().alphaskia_typeface_make_from_name(name, bold, italic);
+ public static create(name: string, bold: boolean, italic: boolean): AlphaSkiaTypeface | undefined;
+ /**
+ * Creates a typeface using the provided information.
+ * @param name The name of the typeface.
+ * @param weight The weight of the typeface
+ * @param italic Whether the italic version of the typeface should be loaded.
+ * @return The typeface if it can be found in the already loaded fonts or the system fonts, otherwise {@code undefined}.
+ */
+ public static create(name: string, weight: boolean, italic: boolean): AlphaSkiaTypeface | undefined;
+ /**
+ * Creates a typeface using the provided information.
+ * @param name The name of the typeface.
+ * @param weightOrBold The weight of the typeface or a boolean to indicate classical bold fonts.
+ * @param italic Whether the italic version of the typeface should be loaded.
+ * @return The typeface if it can be found in the already loaded fonts or the system fonts, otherwise {@code undefined}.
+ */
+ public static create(name: string, weightOrBold: number | boolean, italic: boolean): AlphaSkiaTypeface | undefined {
+ let weight: number;
+ switch (typeof weightOrBold) {
+ case 'number':
+ weight = weightOrBold | 0;
+ break;
+ case 'boolean':
+ weight = weightOrBold ? 700 : 400;
+ break;
+ default:
+ throw new TypeError('either a numeric weight or a boolean for bold has to be provided');
+ }
+
+ const typeface = loadAddon().alphaskia_typeface_make_from_name(name, weight, italic);
if (!typeface) {
return undefined;
}
diff --git a/lib/node/alphaskia/src/addon.ts b/lib/node/alphaskia/src/addon.ts
index d5d2987..b01ec9d 100644
--- a/lib/node/alphaskia/src/addon.ts
+++ b/lib/node/alphaskia/src/addon.ts
@@ -6,6 +6,7 @@ export interface AlphaSkiaDataHandle { }
export interface AlphaSkiaTypefaceHandle { }
export interface AlphaSkiaImageHandle { }
export interface AlphaSkiaCanvasHandle { }
+export interface AlphaSkiaTextStyleHandle { }
/**
* Lists all text alignments which can be used to draw text.
@@ -79,11 +80,18 @@ export interface AlphaSkiaNodeAddon {
alphaskia_typeface_register(data: AlphaSkiaDataHandle): AlphaSkiaTypefaceHandle | undefined;
alphaskia_typeface_free(typeface: AlphaSkiaTypefaceHandle): void;
- alphaskia_typeface_make_from_name(name: string, bold: boolean, italic: boolean): AlphaSkiaTypefaceHandle | undefined;
+ alphaskia_typeface_make_from_name(name: string, weight: number, italic: boolean): AlphaSkiaTypefaceHandle | undefined;
alphaskia_typeface_get_family_name(typeface: AlphaSkiaTypefaceHandle): string;
- alphaskia_typeface_is_bold(typeface: AlphaSkiaTypefaceHandle): boolean;
+ alphaskia_typeface_get_weight(typeface: AlphaSkiaTypefaceHandle): number;
alphaskia_typeface_is_italic(typeface: AlphaSkiaTypefaceHandle): boolean;
+ alphaskia_textstyle_new(family_names: string[], weight: number, italic: boolean): AlphaSkiaTextStyleHandle;
+ // AS_API uint8_t alphaskia_textstyle_get_family_name_count(alphaskia_textstyle_t textstyle);
+ // AS_API alphaskia_string_t alphaskia_textstyle_get_family_name(alphaskia_textstyle_t textstyle, uint8_t index);
+ // AS_API uint16_t alphaskia_textstyle_get_weight(alphaskia_textstyle_t textstyle);
+ // AS_API uint8_t alphaskia_textstyle_is_italic(alphaskia_textstyle_t textstyle);
+ alphaskia_textstyle_free(textstyle: AlphaSkiaTextStyleHandle): void;
+
alphaskia_image_get_width(image: AlphaSkiaImageHandle): number;
alphaskia_image_get_height(image: AlphaSkiaImageHandle): number;
alphaskia_image_read_pixels(image: AlphaSkiaImageHandle): ArrayBuffer | undefined;
@@ -117,8 +125,8 @@ export interface AlphaSkiaNodeAddon {
alphaskia_canvas_stroke(canvas: AlphaSkiaCanvasHandle): void;
alphaskia_canvas_draw_image(canvas: AlphaSkiaCanvasHandle, image: AlphaSkiaImageHandle, x: number, y: number, w: number, h: number): void;
- alphaskia_canvas_fill_text(canvas: AlphaSkiaCanvasHandle, text: string, typeface: AlphaSkiaTypefaceHandle, font_size: number, x: number, y: number, text_align: AlphaSkiaTextAlign, baseline: AlphaSkiaTextBaseline): void;
- alphaskia_canvas_measure_text(canvas: AlphaSkiaCanvasHandle, text: string, typeface: AlphaSkiaTypefaceHandle, font_size: number): number;
+ alphaskia_canvas_fill_text(canvas: AlphaSkiaCanvasHandle, text: string, textStyle: AlphaSkiaTextStyleHandle, font_size: number, x: number, y: number, text_align: AlphaSkiaTextAlign, baseline: AlphaSkiaTextBaseline): void;
+ alphaskia_canvas_measure_text(canvas: AlphaSkiaCanvasHandle, text: string, textStyle: AlphaSkiaTextStyleHandle, font_size: number): number;
alphaskia_canvas_begin_rotate(canvas: AlphaSkiaCanvasHandle, center_x: number, center_y: number, angle: number): void;
alphaskia_canvas_end_rotate(canvas: AlphaSkiaCanvasHandle): void;
}
diff --git a/lib/node/alphaskia/src/alphaskia.ts b/lib/node/alphaskia/src/alphaskia.ts
index d93d3d1..aa2c5fd 100644
--- a/lib/node/alphaskia/src/alphaskia.ts
+++ b/lib/node/alphaskia/src/alphaskia.ts
@@ -4,4 +4,5 @@ export { AlphaSkiaTextBaseline, AlphaSkiaTextAlign, AlphaSkiaColorType } from '.
export { AlphaSkiaCanvas } from './AlphaSkiaCanvas'
export { AlphaSkiaTypeface } from './AlphaSkiaTypeface'
-export { AlphaSkiaImage } from './AlphaSkiaImage'
\ No newline at end of file
+export { AlphaSkiaImage } from './AlphaSkiaImage'
+export { AlphaSkiaTextStyle } from './AlphaSkiaTextStyle'
\ No newline at end of file
diff --git a/test/dotnet/.idea/.idea.AlphaSkia.Test/.idea/vcs.xml b/test/dotnet/.idea/.idea.AlphaSkia.Test/.idea/vcs.xml
index def3818..f70e4d1 100644
--- a/test/dotnet/.idea/.idea.AlphaSkia.Test/.idea/vcs.xml
+++ b/test/dotnet/.idea/.idea.AlphaSkia.Test/.idea/vcs.xml
@@ -3,5 +3,8 @@
+
+
+
\ No newline at end of file
diff --git a/test/dotnet/AlphaSkia.Test/AlphaSkia.Test.csproj b/test/dotnet/AlphaSkia.Test/AlphaSkia.Test.csproj
index bb68c1c..53117f3 100644
--- a/test/dotnet/AlphaSkia.Test/AlphaSkia.Test.csproj
+++ b/test/dotnet/AlphaSkia.Test/AlphaSkia.Test.csproj
@@ -6,15 +6,16 @@
enable
enable
10
+ *-*
-
-
-
-
-
-
+
+
+
+
+
+
diff --git a/test/dotnet/AlphaSkia.Test/AlphaTabGeneratedRenderTest.cs b/test/dotnet/AlphaSkia.Test/AlphaTabGeneratedRenderTest.cs
index f4e5ea1..1404b40 100644
--- a/test/dotnet/AlphaSkia.Test/AlphaTabGeneratedRenderTest.cs
+++ b/test/dotnet/AlphaSkia.Test/AlphaTabGeneratedRenderTest.cs
@@ -3,43 +3,42 @@
partial class AlphaTabGeneratedRenderTest
{
public static float RenderScale { get; set; } = 1;
- public static AlphaSkiaTypeface MusicTypeface { get; set; } = null!;
+ public static AlphaSkiaTextStyle MusicTextStyle { get; set; } = null!;
public static readonly float MusicFontSize = 34;
public static AlphaSkiaTextAlign TextAlign { get; set; } = AlphaSkiaTextAlign.Left;
public static AlphaSkiaTextBaseline TextBaseline { get; set; } = AlphaSkiaTextBaseline.Top;
- public static AlphaSkiaTypeface Typeface { get; set; } = null!;
+ public static AlphaSkiaTextStyle TextStyle { get; set; } = null!;
public static float FontSize { get; set; } = 12;
- private static readonly IDictionary CustomTypefaces =
- new Dictionary(StringComparer.OrdinalIgnoreCase);
+ private static readonly IDictionary CustomTextStyles =
+ new Dictionary(StringComparer.OrdinalIgnoreCase);
- private static string CustomTypefaceKey(string fontFamily, bool isBold, bool isItalic)
+ private static string CustomTypefaceKey(string[] fontFamily, int weight, bool isItalic)
{
- return fontFamily.ToLowerInvariant() + "_" + isBold + "_" + isItalic;
+ return string.Join("_", fontFamily).ToLowerInvariant() + "_" + weight + "_" + isItalic;
}
- private static AlphaSkiaTypeface GetTypeface(string fontFamily, bool isBold, bool isItalic)
+ private static AlphaSkiaTextStyle GetTextStyle(string[] fontFamily, int weight, bool isItalic)
{
- var key = CustomTypefaceKey(fontFamily, isBold, isItalic);
- if (!CustomTypefaces.TryGetValue(key, out var typeface))
+ var key = CustomTypefaceKey(fontFamily, weight, isItalic);
+ if (!CustomTextStyles.TryGetValue(key, out var textStyle))
{
- throw new InvalidOperationException($"Unknown font requested: {key}");
+ textStyle = new AlphaSkiaTextStyle(fontFamily, (ushort)weight, isItalic);
+ CustomTextStyles[key] = textStyle;
}
- return typeface;
+ return textStyle;
}
- public static AlphaSkiaTypeface LoadTypeface(string name, bool isBold, bool isItalic, string filePath)
+ public static AlphaSkiaTypeface LoadTypeface(string filePath)
{
- var key = CustomTypefaceKey(name, isBold, isItalic);
- Console.WriteLine($"Loading typeface {key} from {filePath}");
+ Console.WriteLine($"Loading typeface from {filePath}");
var data = File.ReadAllBytes(filePath);
Console.WriteLine($"Read {data.Length} bytes from file, decoding typeface");
var typeface = AlphaSkiaTypeface.Register(data);
- CustomTypefaces[key] = typeface
- ?? throw new InvalidOperationException("Could not create typeface from data");
- return typeface;
+ return typeface
+ ?? throw new InvalidOperationException("Could not create typeface from data");
}
}
\ No newline at end of file
diff --git a/test/dotnet/AlphaSkia.Test/AlphaTabGeneratedRenderTest.generated.cs b/test/dotnet/AlphaSkia.Test/AlphaTabGeneratedRenderTest.generated.cs
index faf92f1..33c879b 100644
--- a/test/dotnet/AlphaSkia.Test/AlphaTabGeneratedRenderTest.generated.cs
+++ b/test/dotnet/AlphaSkia.Test/AlphaTabGeneratedRenderTest.generated.cs
@@ -9,742 +9,1069 @@ partial class AlphaTabGeneratedRenderTest
{
private static AlphaSkiaImage? DrawMusicSheetPart1(AlphaSkiaCanvas canvas)
{
- canvas.BeginRender(1300, 164, (float)(RenderScale));
+ canvas.BeginRender(1300, 124, (float)(RenderScale));
canvas.Color = AlphaSkiaCanvas.RgbaToColor((byte)(153), (byte)(204), (byte)(30), (byte)(255));
TextAlign = AlphaSkiaTextAlign.Center;
- Typeface = GetTypeface("PT Serif", false, false);
+ TextStyle = GetTextStyle(new []{"Noto Serif", "Noto Music", "Noto Color Emoji"}, 400, false);
FontSize = (float)(32);
TextAlign = AlphaSkiaTextAlign.Center;
- canvas.FillText("Title", Typeface, FontSize, (float)(650), (float)(40), TextAlign, TextBaseline);
+ canvas.FillText("Title", TextStyle, FontSize, (float)(650), (float)(0), TextAlign, TextBaseline);
TextAlign = AlphaSkiaTextAlign.Center;
- Typeface = GetTypeface("PT Serif", false, false);
+ TextBaseline = AlphaSkiaTextBaseline.Top;
+ TextStyle = GetTextStyle(new []{"Noto Serif", "Noto Music", "Noto Color Emoji"}, 400, false);
FontSize = (float)(20);
TextAlign = AlphaSkiaTextAlign.Center;
- canvas.FillText("Subtitle", Typeface, FontSize, (float)(650), (float)(72), TextAlign, TextBaseline);
+ canvas.FillText("Subtitle", TextStyle, FontSize, (float)(650), (float)(32), TextAlign, TextBaseline);
TextAlign = AlphaSkiaTextAlign.Center;
- Typeface = GetTypeface("PT Serif", false, false);
+ TextBaseline = AlphaSkiaTextBaseline.Top;
+ TextStyle = GetTextStyle(new []{"Noto Serif", "Noto Music", "Noto Color Emoji"}, 400, false);
FontSize = (float)(20);
TextAlign = AlphaSkiaTextAlign.Center;
- canvas.FillText("Artist", Typeface, FontSize, (float)(650), (float)(92), TextAlign, TextBaseline);
+ canvas.FillText("Artist", TextStyle, FontSize, (float)(650), (float)(52), TextAlign, TextBaseline);
TextAlign = AlphaSkiaTextAlign.Center;
- Typeface = GetTypeface("PT Serif", false, false);
+ TextBaseline = AlphaSkiaTextBaseline.Top;
+ TextStyle = GetTextStyle(new []{"Noto Serif", "Noto Music", "Noto Color Emoji"}, 400, false);
FontSize = (float)(20);
TextAlign = AlphaSkiaTextAlign.Center;
- canvas.FillText("Album", Typeface, FontSize, (float)(650), (float)(112), TextAlign, TextBaseline);
+ canvas.FillText("Album", TextStyle, FontSize, (float)(650), (float)(72), TextAlign, TextBaseline);
TextAlign = AlphaSkiaTextAlign.Center;
- Typeface = GetTypeface("PT Serif", false, false);
+ TextBaseline = AlphaSkiaTextBaseline.Top;
+ TextStyle = GetTextStyle(new []{"Noto Serif", "Noto Music", "Noto Color Emoji"}, 400, false);
FontSize = (float)(15);
- TextAlign = AlphaSkiaTextAlign.Right;
- canvas.FillText("Music by Music", Typeface, FontSize, (float)(1260), (float)(132), TextAlign, TextBaseline);
+ TextAlign = AlphaSkiaTextAlign.Left;
+ canvas.FillText("Words by Words", TextStyle, FontSize, (float)(35), (float)(92), TextAlign, TextBaseline);
TextAlign = AlphaSkiaTextAlign.Center;
- Typeface = GetTypeface("PT Serif", false, false);
+ TextBaseline = AlphaSkiaTextBaseline.Top;
+ TextStyle = GetTextStyle(new []{"Noto Serif", "Noto Music", "Noto Color Emoji"}, 400, false);
FontSize = (float)(15);
- TextAlign = AlphaSkiaTextAlign.Left;
- canvas.FillText("Words by Words", Typeface, FontSize, (float)(40), (float)(132), TextAlign, TextBaseline);
+ TextAlign = AlphaSkiaTextAlign.Right;
+ canvas.FillText("Music by Music", TextStyle, FontSize, (float)(1265), (float)(92), TextAlign, TextBaseline);
TextAlign = AlphaSkiaTextAlign.Center;
+ TextBaseline = AlphaSkiaTextBaseline.Top;
return canvas.EndRender();
}
private static AlphaSkiaImage? DrawMusicSheetPart2(AlphaSkiaCanvas canvas)
{
- canvas.BeginRender(1300, 38, (float)(RenderScale));
+ canvas.BeginRender(1300, 12, (float)(RenderScale));
TextAlign = AlphaSkiaTextAlign.Center;
- Typeface = GetTypeface("PT Serif", false, true);
+ TextBaseline = AlphaSkiaTextBaseline.Middle;
+ TextStyle = GetTextStyle(new []{"Noto Serif", "Noto Music", "Noto Color Emoji"}, 400, true);
FontSize = (float)(12);
TextAlign = AlphaSkiaTextAlign.Left;
- canvas.FillText("Guitar Standard Tuning", Typeface, FontSize, (float)(40), (float)(3), TextAlign, TextBaseline);
+ canvas.FillText("Guitar Standard Tuning", TextStyle, FontSize, (float)(35), (float)(4.5659942626953125), TextAlign, TextBaseline);
TextAlign = AlphaSkiaTextAlign.Center;
+ TextBaseline = AlphaSkiaTextBaseline.Middle;
return canvas.EndRender();
}
private static AlphaSkiaImage? DrawMusicSheetPart3(AlphaSkiaCanvas canvas)
{
- canvas.BeginRender(1300, 6, (float)(RenderScale));
- TextAlign = AlphaSkiaTextAlign.Center;
- return canvas.EndRender();
- }
- private static AlphaSkiaImage? DrawMusicSheetPart4(AlphaSkiaCanvas canvas)
- {
- canvas.BeginRender(1300, 373, (float)(RenderScale));
+ canvas.BeginRender(1300, 285, (float)(RenderScale));
canvas.Color = AlphaSkiaCanvas.RgbaToColor((byte)(0), (byte)(0), (byte)(0), (byte)(255));
TextAlign = AlphaSkiaTextAlign.Left;
- Typeface = GetTypeface("PT Serif", true, false);
+ TextStyle = GetTextStyle(new []{"Noto Serif", "Noto Music", "Noto Color Emoji"}, 700, false);
FontSize = (float)(14);
- canvas.FillText("\uE1D5", MusicTypeface, (float)(MusicFontSize * 0.75), (float)(156.6767578125), (float)(40), AlphaSkiaTextAlign.Left, AlphaSkiaTextBaseline.Alphabetic);
- canvas.FillText("= 120", Typeface, FontSize, (float)(169.1767578125), (float)(27), TextAlign, TextBaseline);
- canvas.Color = AlphaSkiaCanvas.RgbaToColor((byte)(165), (byte)(165), (byte)(165), (byte)(255));
- canvas.FillRect((float)(92), (float)(130), (float)(254), (float)(1.04));
- canvas.FillRect((float)(92), (float)(139), (float)(254), (float)(1.04));
- canvas.FillRect((float)(92), (float)(148), (float)(254), (float)(1.04));
- canvas.FillRect((float)(92), (float)(157), (float)(254), (float)(1.04));
- canvas.FillRect((float)(92), (float)(166), (float)(254), (float)(1.04));
- canvas.Color = AlphaSkiaCanvas.RgbaToColor((byte)(0), (byte)(0), (byte)(0), (byte)(255));
- canvas.FillText("\uE050", MusicTypeface, (float)(MusicFontSize * 1), (float)(94), (float)(157.52), AlphaSkiaTextAlign.Left, AlphaSkiaTextBaseline.Alphabetic);
- canvas.FillText("\uE084", MusicTypeface, (float)(MusicFontSize * 1), (float)(127), (float)(139), AlphaSkiaTextAlign.Left, AlphaSkiaTextBaseline.Alphabetic);
- canvas.FillText("\uE084", MusicTypeface, (float)(MusicFontSize * 1), (float)(127), (float)(157), AlphaSkiaTextAlign.Left, AlphaSkiaTextBaseline.Alphabetic);
+ TextBaseline = AlphaSkiaTextBaseline.Top;
+ canvas.FillText("\uE1D5", MusicTextStyle, (float)(MusicFontSize * 0.5), (float)(117.79200744628906), (float)(25), AlphaSkiaTextAlign.Center, AlphaSkiaTextBaseline.Alphabetic);
+ canvas.FillText("= 120", TextStyle, FontSize, (float)(125.79200744628906), (float)(12), TextAlign, TextBaseline);
+ TextStyle = GetTextStyle(new []{"Noto Serif", "Noto Music", "Noto Color Emoji"}, 400, true);
+ FontSize = (float)(12);
+ TextAlign = AlphaSkiaTextAlign.Left;
+ canvas.FillText("Fallback Font (\U0001D11E \U0001D15F \U0001F3B8 \U0001F918\U0001F3FB)", TextStyle, FontSize, (float)(885.7920074462891), (float)(30), TextAlign, TextBaseline);
+ TextAlign = AlphaSkiaTextAlign.Left;
+ TextBaseline = AlphaSkiaTextBaseline.Top;
+ canvas.FillText("\uEAA4", MusicTextStyle, (float)(MusicFontSize * 1.2), (float)(722.7920074462891), (float)(53.5199951171875), AlphaSkiaTextAlign.Left, AlphaSkiaTextBaseline.Alphabetic);
+ canvas.FillText("\uEAA4", MusicTextStyle, (float)(MusicFontSize * 1.2), (float)(733.592007446289), (float)(53.5199951171875), AlphaSkiaTextAlign.Left, AlphaSkiaTextBaseline.Alphabetic);
+ canvas.FillText("\uEAA4", MusicTextStyle, (float)(MusicFontSize * 1.2), (float)(744.3920074462891), (float)(53.5199951171875), AlphaSkiaTextAlign.Left, AlphaSkiaTextBaseline.Alphabetic);
+ canvas.FillText("\uEAA4", MusicTextStyle, (float)(MusicFontSize * 1.2), (float)(755.192007446289), (float)(53.5199951171875), AlphaSkiaTextAlign.Left, AlphaSkiaTextBaseline.Alphabetic);
+ canvas.FillText("\uEAA4", MusicTextStyle, (float)(MusicFontSize * 1.2), (float)(765.9920074462891), (float)(53.5199951171875), AlphaSkiaTextAlign.Left, AlphaSkiaTextBaseline.Alphabetic);
+ canvas.FillText("\uEAA4", MusicTextStyle, (float)(MusicFontSize * 1.2), (float)(776.7920074462891), (float)(53.5199951171875), AlphaSkiaTextAlign.Left, AlphaSkiaTextBaseline.Alphabetic);
+ canvas.FillText("\uEAA4", MusicTextStyle, (float)(MusicFontSize * 1.2), (float)(787.592007446289), (float)(53.5199951171875), AlphaSkiaTextAlign.Left, AlphaSkiaTextBaseline.Alphabetic);
+ canvas.FillText("\uEAA4", MusicTextStyle, (float)(MusicFontSize * 1.2), (float)(798.3920074462891), (float)(53.5199951171875), AlphaSkiaTextAlign.Left, AlphaSkiaTextBaseline.Alphabetic);
+ canvas.FillText("\uEAA4", MusicTextStyle, (float)(MusicFontSize * 1.2), (float)(809.192007446289), (float)(53.5199951171875), AlphaSkiaTextAlign.Left, AlphaSkiaTextBaseline.Alphabetic);
+ canvas.FillText("\uEAA4", MusicTextStyle, (float)(MusicFontSize * 1.2), (float)(819.9920074462891), (float)(53.5199951171875), AlphaSkiaTextAlign.Left, AlphaSkiaTextBaseline.Alphabetic);
+ canvas.Color = AlphaSkiaCanvas.RgbaToColor((byte)(165), (byte)(165), (byte)(165), (byte)(255));
+ canvas.FillRect((float)(48), (float)(87), (float)(259), (float)(1.04));
+ canvas.FillRect((float)(48), (float)(96), (float)(259), (float)(1.04));
+ canvas.FillRect((float)(48), (float)(105), (float)(259), (float)(1.04));
+ canvas.FillRect((float)(48), (float)(114), (float)(259), (float)(1.04));
+ canvas.FillRect((float)(48), (float)(123), (float)(259), (float)(1.04));
+ canvas.Color = AlphaSkiaCanvas.RgbaToColor((byte)(0), (byte)(0), (byte)(0), (byte)(255));
+ canvas.Color = AlphaSkiaCanvas.RgbaToColor((byte)(153), (byte)(51), (byte)(204), (byte)(100));
+ canvas.FillRect((float)(48), (float)(87.9199951171875), (float)(1), (float)(36.000000000000014));
+ canvas.Color = AlphaSkiaCanvas.RgbaToColor((byte)(0), (byte)(0), (byte)(0), (byte)(255));
+ canvas.FillText("\uE050", MusicTextStyle, (float)(MusicFontSize * 1), (float)(55), (float)(115.43999511718751), AlphaSkiaTextAlign.Left, AlphaSkiaTextBaseline.Alphabetic);
+ canvas.FillText("\uE084", MusicTextStyle, (float)(MusicFontSize * 1), (float)(88), (float)(96.91999511718751), AlphaSkiaTextAlign.Left, AlphaSkiaTextBaseline.Alphabetic);
+ canvas.FillText("\uE084", MusicTextStyle, (float)(MusicFontSize * 1), (float)(88), (float)(114.91999511718751), AlphaSkiaTextAlign.Left, AlphaSkiaTextBaseline.Alphabetic);
canvas.Color = AlphaSkiaCanvas.RgbaToColor((byte)(200), (byte)(0), (byte)(0), (byte)(255));
- Typeface = GetTypeface("Roboto", false, false);
+ TextBaseline = AlphaSkiaTextBaseline.Top;
+ TextStyle = GetTextStyle(new []{"Noto Sans", "Noto Music", "Noto Color Emoji"}, 400, false);
FontSize = (float)(11);
- canvas.FillText("1", Typeface, FontSize, (float)(141), (float)(118.75), TextAlign, TextBaseline);
+ canvas.FillText("1", TextStyle, FontSize, (float)(102), (float)(76.5699951171875), TextAlign, TextBaseline);
+ TextBaseline = AlphaSkiaTextBaseline.Top;
+ canvas.Color = AlphaSkiaCanvas.RgbaToColor((byte)(0), (byte)(0), (byte)(0), (byte)(255));
+ canvas.Color = AlphaSkiaCanvas.RgbaToColor((byte)(165), (byte)(165), (byte)(165), (byte)(255));
+ canvas.Color = AlphaSkiaCanvas.RgbaToColor((byte)(0), (byte)(0), (byte)(0), (byte)(255));
+ canvas.FillText("\uE0A4", MusicTextStyle, (float)(MusicFontSize * 1), (float)(113.29200744628906), (float)(105.91999511718751), AlphaSkiaTextAlign.Left, AlphaSkiaTextBaseline.Alphabetic);
+ canvas.FillText("\uE272", MusicTextStyle, (float)(MusicFontSize * 0.75), (float)(134.16515249341666), (float)(105.91999511718751), AlphaSkiaTextAlign.Left, AlphaSkiaTextBaseline.Alphabetic);
+ canvas.Color = AlphaSkiaCanvas.RgbaToColor((byte)(165), (byte)(165), (byte)(165), (byte)(255));
canvas.Color = AlphaSkiaCanvas.RgbaToColor((byte)(0), (byte)(0), (byte)(0), (byte)(255));
- canvas.FillText("\uE0A4", MusicTypeface, (float)(MusicFontSize * 1), (float)(152.1767578125), (float)(148), AlphaSkiaTextAlign.Left, AlphaSkiaTextBaseline.Alphabetic);
- canvas.FillText("\uE272", MusicTypeface, (float)(MusicFontSize * 0.75), (float)(172.86069962449085), (float)(148), AlphaSkiaTextAlign.Left, AlphaSkiaTextBaseline.Alphabetic);
- canvas.FillText("\uE0A4", MusicTypeface, (float)(MusicFontSize * 0.75), (float)(180.86069962449085), (float)(149), AlphaSkiaTextAlign.Left, AlphaSkiaTextBaseline.Alphabetic);
+ canvas.FillText("\uE0A4", MusicTextStyle, (float)(MusicFontSize * 0.75), (float)(142.16515249341666), (float)(106.91999511718751), AlphaSkiaTextAlign.Left, AlphaSkiaTextBaseline.Alphabetic);
canvas.BeginPath();
- canvas.MoveTo((float)(156.6767578125), (float)(144));
- canvas.LineTo((float)(170.855110706305), (float)(133.50723450810483));
- canvas.LineTo((float)(184.23569962449085), (float)(145));
+ canvas.MoveTo((float)(117.79200744628906), (float)(101.91999511718751));
+ canvas.LineTo((float)(132.06224568469634), (float)(91.42713139901187));
+ canvas.LineTo((float)(145.54015249341666), (float)(102.91999511718751));
canvas.Stroke();
- canvas.FillText("\uE0A4", MusicTypeface, (float)(MusicFontSize * 1), (float)(192.23569962449085), (float)(148), AlphaSkiaTextAlign.Left, AlphaSkiaTextBaseline.Alphabetic);
- canvas.FillText("\uE0A4", MusicTypeface, (float)(MusicFontSize * 0.75), (float)(220.91964143648167), (float)(144.5), AlphaSkiaTextAlign.Left, AlphaSkiaTextBaseline.Alphabetic);
+ canvas.Color = AlphaSkiaCanvas.RgbaToColor((byte)(165), (byte)(165), (byte)(165), (byte)(255));
+ canvas.Color = AlphaSkiaCanvas.RgbaToColor((byte)(0), (byte)(0), (byte)(0), (byte)(255));
+ canvas.FillText("\uE0A4", MusicTextStyle, (float)(MusicFontSize * 1), (float)(153.54015249341666), (float)(105.91999511718751), AlphaSkiaTextAlign.Left, AlphaSkiaTextBaseline.Alphabetic);
+ canvas.Color = AlphaSkiaCanvas.RgbaToColor((byte)(165), (byte)(165), (byte)(165), (byte)(255));
+ canvas.Color = AlphaSkiaCanvas.RgbaToColor((byte)(0), (byte)(0), (byte)(0), (byte)(255));
+ canvas.FillText("\uE0A4", MusicTextStyle, (float)(MusicFontSize * 0.75), (float)(182.41329754054425), (float)(102.41999511718751), AlphaSkiaTextAlign.Left, AlphaSkiaTextBaseline.Alphabetic);
canvas.BeginPath();
- canvas.MoveTo((float)(196.73569962449085), (float)(144));
- canvas.LineTo((float)(209.12929655256082), (float)(131.33765133817155));
- canvas.LineTo((float)(224.29464143648167), (float)(140.5));
+ canvas.MoveTo((float)(158.04015249341666), (float)(101.91999511718751));
+ canvas.LineTo((float)(170.53765225640643), (float)(89.25646922337823));
+ canvas.LineTo((float)(185.78829754054425), (float)(98.41999511718751));
canvas.Stroke();
- canvas.FillText("\uE0A4", MusicTypeface, (float)(MusicFontSize * 1), (float)(232.29464143648167), (float)(148), AlphaSkiaTextAlign.Left, AlphaSkiaTextBaseline.Alphabetic);
- canvas.FillText("\uE262", MusicTypeface, (float)(MusicFontSize * 0.75), (float)(252.9785832484725), (float)(143.5), AlphaSkiaTextAlign.Left, AlphaSkiaTextBaseline.Alphabetic);
- canvas.FillText("\uE0A4", MusicTypeface, (float)(MusicFontSize * 0.75), (float)(260.9785832484725), (float)(144.5), AlphaSkiaTextAlign.Left, AlphaSkiaTextBaseline.Alphabetic);
+ canvas.Color = AlphaSkiaCanvas.RgbaToColor((byte)(165), (byte)(165), (byte)(165), (byte)(255));
+ canvas.Color = AlphaSkiaCanvas.RgbaToColor((byte)(0), (byte)(0), (byte)(0), (byte)(255));
+ canvas.FillText("\uE0A4", MusicTextStyle, (float)(MusicFontSize * 1), (float)(193.78829754054425), (float)(105.91999511718751), AlphaSkiaTextAlign.Left, AlphaSkiaTextBaseline.Alphabetic);
+ canvas.FillText("\uE262", MusicTextStyle, (float)(MusicFontSize * 0.75), (float)(214.66144258767181), (float)(101.41999511718751), AlphaSkiaTextAlign.Left, AlphaSkiaTextBaseline.Alphabetic);
+ canvas.Color = AlphaSkiaCanvas.RgbaToColor((byte)(165), (byte)(165), (byte)(165), (byte)(255));
+ canvas.Color = AlphaSkiaCanvas.RgbaToColor((byte)(0), (byte)(0), (byte)(0), (byte)(255));
+ canvas.FillText("\uE0A4", MusicTextStyle, (float)(MusicFontSize * 0.75), (float)(222.66144258767181), (float)(102.41999511718751), AlphaSkiaTextAlign.Left, AlphaSkiaTextBaseline.Alphabetic);
canvas.BeginPath();
- canvas.MoveTo((float)(236.79464143648167), (float)(144));
- canvas.LineTo((float)(249.1882383645516), (float)(131.33765133817155));
- canvas.LineTo((float)(264.3535832484725), (float)(140.5));
+ canvas.MoveTo((float)(198.28829754054425), (float)(101.91999511718751));
+ canvas.LineTo((float)(210.785797303534), (float)(89.25646922337823));
+ canvas.LineTo((float)(226.03644258767181), (float)(98.41999511718751));
canvas.Stroke();
- canvas.FillText("\uE0A4", MusicTypeface, (float)(MusicFontSize * 1), (float)(272.3535832484725), (float)(148), AlphaSkiaTextAlign.Left, AlphaSkiaTextBaseline.Alphabetic);
- canvas.FillText("\uE0A4", MusicTypeface, (float)(MusicFontSize * 0.75), (float)(294.5517916242362), (float)(140), AlphaSkiaTextAlign.Left, AlphaSkiaTextBaseline.Alphabetic);
+ canvas.Color = AlphaSkiaCanvas.RgbaToColor((byte)(165), (byte)(165), (byte)(165), (byte)(255));
+ canvas.Color = AlphaSkiaCanvas.RgbaToColor((byte)(0), (byte)(0), (byte)(0), (byte)(255));
+ canvas.FillText("\uE0A4", MusicTextStyle, (float)(MusicFontSize * 1), (float)(234.03644258767181), (float)(105.91999511718751), AlphaSkiaTextAlign.Left, AlphaSkiaTextBaseline.Alphabetic);
+ canvas.Color = AlphaSkiaCanvas.RgbaToColor((byte)(165), (byte)(165), (byte)(165), (byte)(255));
+ canvas.Color = AlphaSkiaCanvas.RgbaToColor((byte)(0), (byte)(0), (byte)(0), (byte)(255));
+ canvas.FillText("\uE0A4", MusicTextStyle, (float)(MusicFontSize * 0.75), (float)(256.3932212938359), (float)(97.91999511718751), AlphaSkiaTextAlign.Left, AlphaSkiaTextBaseline.Alphabetic);
canvas.BeginPath();
- canvas.MoveTo((float)(276.8535832484725), (float)(152));
- canvas.LineTo((float)(292.1060513036615), (float)(156.93783819474976));
- canvas.LineTo((float)(297.9267916242362), (float)(142));
+ canvas.MoveTo((float)(238.53644258767181), (float)(109.91999511718751));
+ canvas.LineTo((float)(253.8393894465572), (float)(114.87145189181567));
+ canvas.LineTo((float)(259.7682212938359), (float)(99.91999511718751));
canvas.Stroke();
- canvas.FillText("\uE0A4", MusicTypeface, (float)(MusicFontSize * 1), (float)(305.9267916242362), (float)(148), AlphaSkiaTextAlign.Left, AlphaSkiaTextBaseline.Alphabetic);
- canvas.FillText("\uE262", MusicTypeface, (float)(MusicFontSize * 0.75), (float)(324.625), (float)(139), AlphaSkiaTextAlign.Left, AlphaSkiaTextBaseline.Alphabetic);
- canvas.FillText("\uE0A4", MusicTypeface, (float)(MusicFontSize * 0.75), (float)(332.625), (float)(140), AlphaSkiaTextAlign.Left, AlphaSkiaTextBaseline.Alphabetic);
+ canvas.Color = AlphaSkiaCanvas.RgbaToColor((byte)(165), (byte)(165), (byte)(165), (byte)(255));
+ canvas.Color = AlphaSkiaCanvas.RgbaToColor((byte)(0), (byte)(0), (byte)(0), (byte)(255));
+ canvas.FillText("\uE0A4", MusicTextStyle, (float)(MusicFontSize * 1), (float)(267.7682212938359), (float)(105.91999511718751), AlphaSkiaTextAlign.Left, AlphaSkiaTextBaseline.Alphabetic);
+ canvas.FillText("\uE262", MusicTextStyle, (float)(MusicFontSize * 0.75), (float)(286.625), (float)(96.91999511718751), AlphaSkiaTextAlign.Left, AlphaSkiaTextBaseline.Alphabetic);
+ canvas.Color = AlphaSkiaCanvas.RgbaToColor((byte)(165), (byte)(165), (byte)(165), (byte)(255));
+ canvas.Color = AlphaSkiaCanvas.RgbaToColor((byte)(0), (byte)(0), (byte)(0), (byte)(255));
+ canvas.FillText("\uE0A4", MusicTextStyle, (float)(MusicFontSize * 0.75), (float)(294.625), (float)(97.91999511718751), AlphaSkiaTextAlign.Left, AlphaSkiaTextBaseline.Alphabetic);
canvas.BeginPath();
- canvas.MoveTo((float)(310.4267916242362), (float)(152));
- canvas.LineTo((float)(327.2193887931866), (float)(157.24460932567123));
- canvas.LineTo((float)(336), (float)(142));
+ canvas.MoveTo((float)(272.2682212938359), (float)(109.91999511718751));
+ canvas.LineTo((float)(289.1186648773111), (float)(115.17296188710615));
+ canvas.LineTo((float)(298), (float)(99.91999511718751));
canvas.Stroke();
- canvas.FillRect((float)(345), (float)(130.1), (float)(1), (float)(36));
+ canvas.Color = AlphaSkiaCanvas.RgbaToColor((byte)(153), (byte)(51), (byte)(204), (byte)(100));
+ canvas.FillRect((float)(306), (float)(87.9199951171875), (float)(1), (float)(36.000000000000014));
+ canvas.Color = AlphaSkiaCanvas.RgbaToColor((byte)(0), (byte)(0), (byte)(0), (byte)(255));
canvas.LineWidth = (float)(0.96);
canvas.BeginPath();
- canvas.MoveTo((float)(152.1767578125), (float)(148));
- canvas.LineTo((float)(152.1767578125), (float)(175));
+ canvas.MoveTo((float)(113.29200744628906), (float)(105.91999511718751));
+ canvas.LineTo((float)(113.29200744628906), (float)(132.9199951171875));
canvas.Stroke();
canvas.LineWidth = (float)(1);
canvas.LineWidth = (float)(0.96);
canvas.BeginPath();
- canvas.MoveTo((float)(192.23569962449085), (float)(148));
- canvas.LineTo((float)(192.23569962449085), (float)(175));
+ canvas.MoveTo((float)(153.54015249341666), (float)(105.91999511718751));
+ canvas.LineTo((float)(153.54015249341666), (float)(132.9199951171875));
canvas.Stroke();
canvas.LineWidth = (float)(1);
canvas.LineWidth = (float)(0.96);
canvas.BeginPath();
- canvas.MoveTo((float)(232.29464143648167), (float)(148));
- canvas.LineTo((float)(232.29464143648167), (float)(175));
+ canvas.MoveTo((float)(193.78829754054425), (float)(105.91999511718751));
+ canvas.LineTo((float)(193.78829754054425), (float)(132.9199951171875));
canvas.Stroke();
canvas.LineWidth = (float)(1);
canvas.LineWidth = (float)(0.96);
canvas.BeginPath();
- canvas.MoveTo((float)(281.3535832484725), (float)(148));
- canvas.LineTo((float)(281.3535832484725), (float)(121));
+ canvas.MoveTo((float)(243.03644258767181), (float)(105.91999511718751));
+ canvas.LineTo((float)(243.03644258767181), (float)(78.91999511718751));
canvas.Stroke();
canvas.LineWidth = (float)(1);
canvas.BeginPath();
- canvas.MoveTo((float)(281.3535832484725), (float)(121));
- canvas.LineTo((float)(314.9267916242362), (float)(121));
- canvas.LineTo((float)(314.9267916242362), (float)(125));
- canvas.LineTo((float)(281.3535832484725), (float)(125));
+ canvas.MoveTo((float)(243.03644258767181), (float)(78.91999511718751));
+ canvas.LineTo((float)(276.7682212938359), (float)(78.91999511718751));
+ canvas.LineTo((float)(276.7682212938359), (float)(82.91999511718751));
+ canvas.LineTo((float)(243.03644258767181), (float)(82.91999511718751));
canvas.ClosePath();
canvas.Fill();
canvas.LineWidth = (float)(0.96);
canvas.BeginPath();
- canvas.MoveTo((float)(314.9267916242362), (float)(148));
- canvas.LineTo((float)(314.9267916242362), (float)(121));
+ canvas.MoveTo((float)(276.7682212938359), (float)(105.91999511718751));
+ canvas.LineTo((float)(276.7682212938359), (float)(78.91999511718751));
canvas.Stroke();
canvas.LineWidth = (float)(1);
canvas.Color = AlphaSkiaCanvas.RgbaToColor((byte)(0), (byte)(0), (byte)(0), (byte)(100));
canvas.Color = AlphaSkiaCanvas.RgbaToColor((byte)(165), (byte)(165), (byte)(165), (byte)(255));
- canvas.FillRect((float)(346), (float)(130), (float)(126), (float)(1.04));
- canvas.FillRect((float)(346), (float)(139), (float)(126), (float)(1.04));
- canvas.FillRect((float)(346), (float)(148), (float)(126), (float)(1.04));
- canvas.FillRect((float)(346), (float)(157), (float)(126), (float)(1.04));
- canvas.FillRect((float)(346), (float)(166), (float)(126), (float)(1.04));
+ canvas.FillRect((float)(307), (float)(87), (float)(126), (float)(1.04));
+ canvas.FillRect((float)(307), (float)(96), (float)(126), (float)(1.04));
+ canvas.FillRect((float)(307), (float)(105), (float)(126), (float)(1.04));
+ canvas.FillRect((float)(307), (float)(114), (float)(126), (float)(1.04));
+ canvas.FillRect((float)(307), (float)(123), (float)(126), (float)(1.04));
+ canvas.Color = AlphaSkiaCanvas.RgbaToColor((byte)(0), (byte)(0), (byte)(0), (byte)(100));
+ canvas.Color = AlphaSkiaCanvas.RgbaToColor((byte)(0), (byte)(0), (byte)(0), (byte)(255));
+ canvas.Color = AlphaSkiaCanvas.RgbaToColor((byte)(0), (byte)(0), (byte)(0), (byte)(100));
+ canvas.Color = AlphaSkiaCanvas.RgbaToColor((byte)(0), (byte)(0), (byte)(0), (byte)(255));
+ canvas.Color = AlphaSkiaCanvas.RgbaToColor((byte)(153), (byte)(51), (byte)(204), (byte)(100));
canvas.Color = AlphaSkiaCanvas.RgbaToColor((byte)(0), (byte)(0), (byte)(0), (byte)(255));
canvas.Color = AlphaSkiaCanvas.RgbaToColor((byte)(200), (byte)(0), (byte)(0), (byte)(255));
- Typeface = GetTypeface("Roboto", false, false);
+ TextBaseline = AlphaSkiaTextBaseline.Top;
+ TextStyle = GetTextStyle(new []{"Noto Sans", "Noto Music", "Noto Color Emoji"}, 400, false);
FontSize = (float)(11);
- canvas.FillText("2", Typeface, FontSize, (float)(346), (float)(118.75), TextAlign, TextBaseline);
+ canvas.FillText("2", TextStyle, FontSize, (float)(307), (float)(76.5699951171875), TextAlign, TextBaseline);
+ TextBaseline = AlphaSkiaTextBaseline.Top;
+ canvas.Color = AlphaSkiaCanvas.RgbaToColor((byte)(0), (byte)(0), (byte)(0), (byte)(255));
+ canvas.Color = AlphaSkiaCanvas.RgbaToColor((byte)(165), (byte)(165), (byte)(165), (byte)(255));
+ canvas.Color = AlphaSkiaCanvas.RgbaToColor((byte)(0), (byte)(0), (byte)(0), (byte)(255));
+ canvas.FillText("\uE0A4", MusicTextStyle, (float)(MusicFontSize * 1), (float)(318.29200744628906), (float)(96.91999511718751), AlphaSkiaTextAlign.Left, AlphaSkiaTextBaseline.Alphabetic);
+ canvas.Color = AlphaSkiaCanvas.RgbaToColor((byte)(165), (byte)(165), (byte)(165), (byte)(255));
+ canvas.Color = AlphaSkiaCanvas.RgbaToColor((byte)(0), (byte)(0), (byte)(0), (byte)(255));
+ canvas.FillText("\uE0A4", MusicTextStyle, (float)(MusicFontSize * 1), (float)(339.6478115199233), (float)(96.91999511718751), AlphaSkiaTextAlign.Left, AlphaSkiaTextBaseline.Alphabetic);
+ canvas.Color = AlphaSkiaCanvas.RgbaToColor((byte)(165), (byte)(165), (byte)(165), (byte)(255));
+ canvas.Color = AlphaSkiaCanvas.RgbaToColor((byte)(0), (byte)(0), (byte)(0), (byte)(255));
+ canvas.FillText("\uE0A4", MusicTextStyle, (float)(MusicFontSize * 1), (float)(361.00361559355764), (float)(119.41999511718751), AlphaSkiaTextAlign.Left, AlphaSkiaTextBaseline.Alphabetic);
+ canvas.Color = AlphaSkiaCanvas.RgbaToColor((byte)(165), (byte)(165), (byte)(165), (byte)(255));
+ canvas.Color = AlphaSkiaCanvas.RgbaToColor((byte)(0), (byte)(0), (byte)(0), (byte)(255));
+ canvas.FillText("\uE0A3", MusicTextStyle, (float)(MusicFontSize * 1), (float)(388.3056137319853), (float)(114.91999511718751), AlphaSkiaTextAlign.Left, AlphaSkiaTextBaseline.Alphabetic);
+ canvas.Color = AlphaSkiaCanvas.RgbaToColor((byte)(153), (byte)(51), (byte)(204), (byte)(100));
+ canvas.FillRect((float)(432), (float)(87.9199951171875), (float)(1), (float)(36.000000000000014));
canvas.Color = AlphaSkiaCanvas.RgbaToColor((byte)(0), (byte)(0), (byte)(0), (byte)(255));
- canvas.FillText("\uE0A4", MusicTypeface, (float)(MusicFontSize * 1), (float)(357.1767578125), (float)(139), AlphaSkiaTextAlign.Left, AlphaSkiaTextBaseline.Alphabetic);
- canvas.FillText("\uE0A4", MusicTypeface, (float)(MusicFontSize * 1), (float)(378.359547484596), (float)(139), AlphaSkiaTextAlign.Left, AlphaSkiaTextBaseline.Alphabetic);
- canvas.FillText("\uE0A4", MusicTypeface, (float)(MusicFontSize * 1), (float)(399.542337156692), (float)(161.5), AlphaSkiaTextAlign.Left, AlphaSkiaTextBaseline.Alphabetic);
- canvas.FillText("\uE0A3", MusicTypeface, (float)(MusicFontSize * 1), (float)(426.623147703567), (float)(157), AlphaSkiaTextAlign.Left, AlphaSkiaTextBaseline.Alphabetic);
- canvas.FillRect((float)(471), (float)(130.1), (float)(1), (float)(36));
canvas.LineWidth = (float)(0.96);
canvas.BeginPath();
- canvas.MoveTo((float)(366.1767578125), (float)(139));
- canvas.LineTo((float)(366.1767578125), (float)(112));
+ canvas.MoveTo((float)(327.29200744628906), (float)(96.91999511718751));
+ canvas.LineTo((float)(327.29200744628906), (float)(69.91999511718751));
canvas.Stroke();
canvas.LineWidth = (float)(1);
canvas.BeginPath();
- canvas.MoveTo((float)(366.1767578125), (float)(112));
- canvas.LineTo((float)(387.359547484596), (float)(117));
- canvas.LineTo((float)(387.359547484596), (float)(121));
- canvas.LineTo((float)(366.1767578125), (float)(116));
+ canvas.MoveTo((float)(327.29200744628906), (float)(69.91999511718751));
+ canvas.LineTo((float)(348.6478115199233), (float)(74.91999511718751));
+ canvas.LineTo((float)(348.6478115199233), (float)(78.91999511718751));
+ canvas.LineTo((float)(327.29200744628906), (float)(73.91999511718751));
canvas.ClosePath();
canvas.Fill();
canvas.BeginPath();
- canvas.MoveTo((float)(366.1767578125), (float)(118));
- canvas.LineTo((float)(387.359547484596), (float)(123));
- canvas.LineTo((float)(387.359547484596), (float)(127));
- canvas.LineTo((float)(366.1767578125), (float)(122));
+ canvas.MoveTo((float)(327.29200744628906), (float)(75.91999511718751));
+ canvas.LineTo((float)(348.6478115199233), (float)(80.91999511718751));
+ canvas.LineTo((float)(348.6478115199233), (float)(84.91999511718751));
+ canvas.LineTo((float)(327.29200744628906), (float)(79.91999511718751));
canvas.ClosePath();
canvas.Fill();
canvas.LineWidth = (float)(0.96);
canvas.BeginPath();
- canvas.MoveTo((float)(387.359547484596), (float)(139));
- canvas.LineTo((float)(387.359547484596), (float)(117));
+ canvas.MoveTo((float)(348.6478115199233), (float)(96.91999511718751));
+ canvas.LineTo((float)(348.6478115199233), (float)(74.91999511718751));
canvas.Stroke();
canvas.LineWidth = (float)(1);
canvas.BeginPath();
- canvas.MoveTo((float)(387.359547484596), (float)(117));
- canvas.LineTo((float)(408.542337156692), (float)(122));
- canvas.LineTo((float)(408.542337156692), (float)(126));
- canvas.LineTo((float)(387.359547484596), (float)(121));
+ canvas.MoveTo((float)(348.6478115199233), (float)(74.91999511718751));
+ canvas.LineTo((float)(370.00361559355764), (float)(79.91999511718751));
+ canvas.LineTo((float)(370.00361559355764), (float)(83.91999511718751));
+ canvas.LineTo((float)(348.6478115199233), (float)(78.91999511718751));
canvas.ClosePath();
canvas.Fill();
canvas.LineWidth = (float)(0.96);
canvas.BeginPath();
- canvas.MoveTo((float)(408.542337156692), (float)(161.5));
- canvas.LineTo((float)(408.542337156692), (float)(122));
+ canvas.MoveTo((float)(370.00361559355764), (float)(119.41999511718751));
+ canvas.LineTo((float)(370.00361559355764), (float)(79.91999511718751));
canvas.Stroke();
canvas.LineWidth = (float)(1);
canvas.LineWidth = (float)(0.96);
canvas.BeginPath();
- canvas.MoveTo((float)(435.623147703567), (float)(130));
- canvas.LineTo((float)(435.623147703567), (float)(157));
+ canvas.MoveTo((float)(397.3056137319853), (float)(87.91999511718751));
+ canvas.LineTo((float)(397.3056137319853), (float)(114.91999511718751));
canvas.Stroke();
canvas.LineWidth = (float)(1);
canvas.Color = AlphaSkiaCanvas.RgbaToColor((byte)(0), (byte)(0), (byte)(0), (byte)(100));
canvas.Color = AlphaSkiaCanvas.RgbaToColor((byte)(0), (byte)(0), (byte)(0), (byte)(255));
TextAlign = AlphaSkiaTextAlign.Center;
TextBaseline = AlphaSkiaTextBaseline.Middle;
- Typeface = GetTypeface("PT Serif", false, true);
+ TextStyle = GetTextStyle(new []{"Noto Serif", "Noto Music", "Noto Color Emoji"}, 400, true);
FontSize = (float)(12);
canvas.BeginPath();
- canvas.MoveTo((float)(366.1767578125), (float)(102));
- canvas.LineTo((float)(366.1767578125), (float)(97));
- canvas.LineTo((float)(394.7559555656507), (float)(104));
+ canvas.MoveTo((float)(327.29200744628906), (float)(59));
+ canvas.LineTo((float)(327.29200744628906), (float)(54));
+ canvas.LineTo((float)(355.9448143122817), (float)(62));
canvas.Stroke();
canvas.BeginPath();
- canvas.MoveTo((float)(407.04394995041633), (float)(107));
- canvas.LineTo((float)(435.623147703567), (float)(115));
- canvas.LineTo((float)(435.623147703567), (float)(120));
+ canvas.MoveTo((float)(368.65280686599266), (float)(65));
+ canvas.LineTo((float)(397.3056137319853), (float)(72));
+ canvas.LineTo((float)(397.3056137319853), (float)(77));
canvas.Stroke();
- canvas.FillText("3", Typeface, FontSize, (float)(400.8999527580335), (float)(106), TextAlign, TextBaseline);
+ canvas.FillText("3", TextStyle, FontSize, (float)(362.2988105891372), (float)(63.91999511718751), TextAlign, TextBaseline);
TextAlign = AlphaSkiaTextAlign.Left;
TextBaseline = AlphaSkiaTextBaseline.Top;
canvas.Color = AlphaSkiaCanvas.RgbaToColor((byte)(165), (byte)(165), (byte)(165), (byte)(255));
- canvas.FillRect((float)(472), (float)(130), (float)(206), (float)(1.04));
- canvas.FillRect((float)(472), (float)(139), (float)(206), (float)(1.04));
- canvas.FillRect((float)(472), (float)(148), (float)(206), (float)(1.04));
- canvas.FillRect((float)(472), (float)(157), (float)(206), (float)(1.04));
- canvas.FillRect((float)(472), (float)(166), (float)(206), (float)(1.04));
+ canvas.FillRect((float)(433), (float)(87), (float)(192), (float)(1.04));
+ canvas.FillRect((float)(433), (float)(96), (float)(192), (float)(1.04));
+ canvas.FillRect((float)(433), (float)(105), (float)(192), (float)(1.04));
+ canvas.FillRect((float)(433), (float)(114), (float)(192), (float)(1.04));
+ canvas.FillRect((float)(433), (float)(123), (float)(192), (float)(1.04));
+ canvas.Color = AlphaSkiaCanvas.RgbaToColor((byte)(0), (byte)(0), (byte)(0), (byte)(255));
+ canvas.Color = AlphaSkiaCanvas.RgbaToColor((byte)(153), (byte)(51), (byte)(204), (byte)(100));
canvas.Color = AlphaSkiaCanvas.RgbaToColor((byte)(0), (byte)(0), (byte)(0), (byte)(255));
canvas.Color = AlphaSkiaCanvas.RgbaToColor((byte)(200), (byte)(0), (byte)(0), (byte)(255));
- Typeface = GetTypeface("Roboto", false, false);
- FontSize = (float)(11);
- canvas.FillText("3", Typeface, FontSize, (float)(472), (float)(118.75), TextAlign, TextBaseline);
- canvas.Color = AlphaSkiaCanvas.RgbaToColor((byte)(0), (byte)(0), (byte)(0), (byte)(255));
- canvas.FillText("\uE0A4", MusicTypeface, (float)(MusicFontSize * 1), (float)(496.32666015625), (float)(157), AlphaSkiaTextAlign.Left, AlphaSkiaTextBaseline.Alphabetic);
- canvas.FillText("\uE0A4", MusicTypeface, (float)(MusicFontSize * 1), (float)(496.32666015625), (float)(143.5), AlphaSkiaTextAlign.Left, AlphaSkiaTextBaseline.Alphabetic);
- canvas.FillText("\uE0A4", MusicTypeface, (float)(MusicFontSize * 1), (float)(496.32666015625), (float)(134.5), AlphaSkiaTextAlign.Left, AlphaSkiaTextBaseline.Alphabetic);
- canvas.BeginRotate((float)(527.8699951171875), (float)(172), (float)(-90));
- canvas.FillText("\uEAA4", MusicTypeface, (float)(MusicFontSize * 1.2), (float)(0), (float)(10.799999999999999), AlphaSkiaTextAlign.Left, AlphaSkiaTextBaseline.Alphabetic);
- canvas.FillText("\uEAA4", MusicTypeface, (float)(MusicFontSize * 1.2), (float)(10.799999999999999), (float)(10.799999999999999), AlphaSkiaTextAlign.Left, AlphaSkiaTextBaseline.Alphabetic);
- canvas.FillText("\uEAA4", MusicTypeface, (float)(MusicFontSize * 1.2), (float)(21.599999999999998), (float)(10.799999999999999), AlphaSkiaTextAlign.Left, AlphaSkiaTextBaseline.Alphabetic);
- canvas.FillText("\uEAA4", MusicTypeface, (float)(MusicFontSize * 1.2), (float)(32.4), (float)(10.799999999999999), AlphaSkiaTextAlign.Left, AlphaSkiaTextBaseline.Alphabetic);
+ TextBaseline = AlphaSkiaTextBaseline.Top;
+ TextStyle = GetTextStyle(new []{"Noto Sans", "Noto Music", "Noto Color Emoji"}, 400, false);
+ FontSize = (float)(11);
+ canvas.FillText("3", TextStyle, FontSize, (float)(433), (float)(76.5699951171875), TextAlign, TextBaseline);
+ TextBaseline = AlphaSkiaTextBaseline.Top;
+ canvas.Color = AlphaSkiaCanvas.RgbaToColor((byte)(0), (byte)(0), (byte)(0), (byte)(255));
+ canvas.Color = AlphaSkiaCanvas.RgbaToColor((byte)(165), (byte)(165), (byte)(165), (byte)(255));
+ canvas.Color = AlphaSkiaCanvas.RgbaToColor((byte)(0), (byte)(0), (byte)(0), (byte)(255));
+ canvas.FillText("\uE0A4", MusicTextStyle, (float)(MusicFontSize * 1), (float)(457.510009765625), (float)(114.91999511718751), AlphaSkiaTextAlign.Left, AlphaSkiaTextBaseline.Alphabetic);
+ canvas.FillText("\uE0A4", MusicTextStyle, (float)(MusicFontSize * 1), (float)(457.510009765625), (float)(101.41999511718751), AlphaSkiaTextAlign.Left, AlphaSkiaTextBaseline.Alphabetic);
+ canvas.FillText("\uE0A4", MusicTextStyle, (float)(MusicFontSize * 1), (float)(457.510009765625), (float)(92.4199951171875), AlphaSkiaTextAlign.Left, AlphaSkiaTextBaseline.Alphabetic);
+ canvas.BeginRotate((float)(489.00750732421875), (float)(129.9199951171875), (float)(-90));
+ canvas.FillText("\uEAA4", MusicTextStyle, (float)(MusicFontSize * 1.2), (float)(0), (float)(10.799999999999999), AlphaSkiaTextAlign.Left, AlphaSkiaTextBaseline.Alphabetic);
+ canvas.FillText("\uEAA4", MusicTextStyle, (float)(MusicFontSize * 1.2), (float)(10.799999999999999), (float)(10.799999999999999), AlphaSkiaTextAlign.Left, AlphaSkiaTextBaseline.Alphabetic);
+ canvas.FillText("\uEAA4", MusicTextStyle, (float)(MusicFontSize * 1.2), (float)(21.599999999999998), (float)(10.799999999999999), AlphaSkiaTextAlign.Left, AlphaSkiaTextBaseline.Alphabetic);
+ canvas.FillText("\uEAA4", MusicTextStyle, (float)(MusicFontSize * 1.2), (float)(32.4), (float)(10.799999999999999), AlphaSkiaTextAlign.Left, AlphaSkiaTextBaseline.Alphabetic);
canvas.EndRotate();
canvas.BeginPath();
- canvas.MoveTo((float)(527.8699951171875), (float)(180));
- canvas.LineTo((float)(531.8699951171875), (float)(172));
- canvas.LineTo((float)(523.8699951171875), (float)(172));
+ canvas.MoveTo((float)(489.00750732421875), (float)(137.9199951171875));
+ canvas.LineTo((float)(493.00750732421875), (float)(129.9199951171875));
+ canvas.LineTo((float)(485.00750732421875), (float)(129.9199951171875));
canvas.ClosePath();
canvas.Fill();
canvas.Color = AlphaSkiaCanvas.RgbaToColor((byte)(165), (byte)(165), (byte)(165), (byte)(255));
- canvas.FillRect((float)(533.8699951171875), (float)(175), (float)(15), (float)(1));
- canvas.Color = AlphaSkiaCanvas.RgbaToColor((byte)(0), (byte)(0), (byte)(0), (byte)(255));
- canvas.FillText("\uE0A4", MusicTypeface, (float)(MusicFontSize * 1), (float)(536.8699951171875), (float)(175), AlphaSkiaTextAlign.Left, AlphaSkiaTextBaseline.Alphabetic);
- canvas.FillText("\uE0A4", MusicTypeface, (float)(MusicFontSize * 1), (float)(536.8699951171875), (float)(166), AlphaSkiaTextAlign.Left, AlphaSkiaTextBaseline.Alphabetic);
- canvas.FillText("\uE0A4", MusicTypeface, (float)(MusicFontSize * 1), (float)(536.8699951171875), (float)(157), AlphaSkiaTextAlign.Left, AlphaSkiaTextBaseline.Alphabetic);
- canvas.FillText("\uE0A4", MusicTypeface, (float)(MusicFontSize * 1), (float)(536.8699951171875), (float)(143.5), AlphaSkiaTextAlign.Left, AlphaSkiaTextBaseline.Alphabetic);
- canvas.FillText("\uE0A4", MusicTypeface, (float)(MusicFontSize * 1), (float)(536.8699951171875), (float)(134.5), AlphaSkiaTextAlign.Left, AlphaSkiaTextBaseline.Alphabetic);
- canvas.Color = AlphaSkiaCanvas.RgbaToColor((byte)(165), (byte)(165), (byte)(165), (byte)(255));
- canvas.FillRect((float)(574.413330078125), (float)(175), (float)(15), (float)(1));
- canvas.FillRect((float)(574.413330078125), (float)(184), (float)(15), (float)(1));
- canvas.Color = AlphaSkiaCanvas.RgbaToColor((byte)(0), (byte)(0), (byte)(0), (byte)(255));
- canvas.FillText("\uE0A4", MusicTypeface, (float)(MusicFontSize * 1), (float)(577.413330078125), (float)(184), AlphaSkiaTextAlign.Left, AlphaSkiaTextBaseline.Alphabetic);
- canvas.FillText("\uE0A4", MusicTypeface, (float)(MusicFontSize * 1), (float)(577.413330078125), (float)(166), AlphaSkiaTextAlign.Left, AlphaSkiaTextBaseline.Alphabetic);
- canvas.FillText("\uE0A4", MusicTypeface, (float)(MusicFontSize * 1), (float)(577.413330078125), (float)(152.5), AlphaSkiaTextAlign.Left, AlphaSkiaTextBaseline.Alphabetic);
- canvas.BeginRotate((float)(596.9566650390625), (float)(137.5), (float)(90));
- canvas.FillText("\uEAA4", MusicTypeface, (float)(MusicFontSize * 1.2), (float)(0), (float)(10.799999999999999), AlphaSkiaTextAlign.Left, AlphaSkiaTextBaseline.Alphabetic);
- canvas.FillText("\uEAA4", MusicTypeface, (float)(MusicFontSize * 1.2), (float)(10.799999999999999), (float)(10.799999999999999), AlphaSkiaTextAlign.Left, AlphaSkiaTextBaseline.Alphabetic);
- canvas.FillText("\uEAA4", MusicTypeface, (float)(MusicFontSize * 1.2), (float)(21.599999999999998), (float)(10.799999999999999), AlphaSkiaTextAlign.Left, AlphaSkiaTextBaseline.Alphabetic);
- canvas.FillText("\uEAA4", MusicTypeface, (float)(MusicFontSize * 1.2), (float)(32.4), (float)(10.799999999999999), AlphaSkiaTextAlign.Left, AlphaSkiaTextBaseline.Alphabetic);
- canvas.FillText("\uEAA4", MusicTypeface, (float)(MusicFontSize * 1.2), (float)(43.199999999999996), (float)(10.799999999999999), AlphaSkiaTextAlign.Left, AlphaSkiaTextBaseline.Alphabetic);
+ canvas.FillRect((float)(495.00750732421875), (float)(132), (float)(15), (float)(1.04));
+ canvas.Color = AlphaSkiaCanvas.RgbaToColor((byte)(0), (byte)(0), (byte)(0), (byte)(255));
+ canvas.FillText("\uE0A4", MusicTextStyle, (float)(MusicFontSize * 1), (float)(498.00750732421875), (float)(132.9199951171875), AlphaSkiaTextAlign.Left, AlphaSkiaTextBaseline.Alphabetic);
+ canvas.FillText("\uE0A4", MusicTextStyle, (float)(MusicFontSize * 1), (float)(498.00750732421875), (float)(123.91999511718751), AlphaSkiaTextAlign.Left, AlphaSkiaTextBaseline.Alphabetic);
+ canvas.FillText("\uE0A4", MusicTextStyle, (float)(MusicFontSize * 1), (float)(498.00750732421875), (float)(114.91999511718751), AlphaSkiaTextAlign.Left, AlphaSkiaTextBaseline.Alphabetic);
+ canvas.FillText("\uE0A4", MusicTextStyle, (float)(MusicFontSize * 1), (float)(498.00750732421875), (float)(101.41999511718751), AlphaSkiaTextAlign.Left, AlphaSkiaTextBaseline.Alphabetic);
+ canvas.FillText("\uE0A4", MusicTextStyle, (float)(MusicFontSize * 1), (float)(498.00750732421875), (float)(92.4199951171875), AlphaSkiaTextAlign.Left, AlphaSkiaTextBaseline.Alphabetic);
+ canvas.Color = AlphaSkiaCanvas.RgbaToColor((byte)(165), (byte)(165), (byte)(165), (byte)(255));
+ canvas.FillRect((float)(535.5050048828125), (float)(132), (float)(15), (float)(1.04));
+ canvas.FillRect((float)(535.5050048828125), (float)(141), (float)(15), (float)(1.04));
+ canvas.Color = AlphaSkiaCanvas.RgbaToColor((byte)(0), (byte)(0), (byte)(0), (byte)(255));
+ canvas.FillText("\uE0A4", MusicTextStyle, (float)(MusicFontSize * 1), (float)(538.5050048828125), (float)(141.9199951171875), AlphaSkiaTextAlign.Left, AlphaSkiaTextBaseline.Alphabetic);
+ canvas.FillText("\uE0A4", MusicTextStyle, (float)(MusicFontSize * 1), (float)(538.5050048828125), (float)(123.91999511718751), AlphaSkiaTextAlign.Left, AlphaSkiaTextBaseline.Alphabetic);
+ canvas.FillText("\uE0A4", MusicTextStyle, (float)(MusicFontSize * 1), (float)(538.5050048828125), (float)(110.41999511718751), AlphaSkiaTextAlign.Left, AlphaSkiaTextBaseline.Alphabetic);
+ canvas.BeginRotate((float)(558.0025024414062), (float)(95.41999511718751), (float)(90));
+ canvas.FillText("\uEAA4", MusicTextStyle, (float)(MusicFontSize * 1.2), (float)(0), (float)(10.799999999999999), AlphaSkiaTextAlign.Left, AlphaSkiaTextBaseline.Alphabetic);
+ canvas.FillText("\uEAA4", MusicTextStyle, (float)(MusicFontSize * 1.2), (float)(10.799999999999999), (float)(10.799999999999999), AlphaSkiaTextAlign.Left, AlphaSkiaTextBaseline.Alphabetic);
+ canvas.FillText("\uEAA4", MusicTextStyle, (float)(MusicFontSize * 1.2), (float)(21.599999999999998), (float)(10.799999999999999), AlphaSkiaTextAlign.Left, AlphaSkiaTextBaseline.Alphabetic);
+ canvas.FillText("\uEAA4", MusicTextStyle, (float)(MusicFontSize * 1.2), (float)(32.4), (float)(10.799999999999999), AlphaSkiaTextAlign.Left, AlphaSkiaTextBaseline.Alphabetic);
+ canvas.FillText("\uEAA4", MusicTextStyle, (float)(MusicFontSize * 1.2), (float)(43.199999999999996), (float)(10.799999999999999), AlphaSkiaTextAlign.Left, AlphaSkiaTextBaseline.Alphabetic);
canvas.EndRotate();
canvas.BeginPath();
- canvas.MoveTo((float)(596.9566650390625), (float)(129.5));
- canvas.LineTo((float)(600.9566650390625), (float)(137.5));
- canvas.LineTo((float)(592.9566650390625), (float)(137.5));
+ canvas.MoveTo((float)(558.0025024414062), (float)(87.41999511718751));
+ canvas.LineTo((float)(562.0025024414062), (float)(95.41999511718751));
+ canvas.LineTo((float)(554.0025024414062), (float)(95.41999511718751));
canvas.ClosePath();
canvas.Fill();
- canvas.FillText("\uE262", MusicTypeface, (float)(MusicFontSize * 1), (float)(607.9566650390625), (float)(143.5), AlphaSkiaTextAlign.Left, AlphaSkiaTextBaseline.Alphabetic);
- canvas.Color = AlphaSkiaCanvas.RgbaToColor((byte)(165), (byte)(165), (byte)(165), (byte)(255));
- canvas.FillRect((float)(614.9566650390625), (float)(175), (float)(15), (float)(1));
- canvas.FillRect((float)(614.9566650390625), (float)(184), (float)(15), (float)(1));
- canvas.Color = AlphaSkiaCanvas.RgbaToColor((byte)(0), (byte)(0), (byte)(0), (byte)(255));
- canvas.FillText("\uE0A4", MusicTypeface, (float)(MusicFontSize * 1), (float)(617.9566650390625), (float)(184), AlphaSkiaTextAlign.Left, AlphaSkiaTextBaseline.Alphabetic);
- canvas.FillText("\uE0A4", MusicTypeface, (float)(MusicFontSize * 1), (float)(617.9566650390625), (float)(166), AlphaSkiaTextAlign.Left, AlphaSkiaTextBaseline.Alphabetic);
- canvas.FillText("\uE0A4", MusicTypeface, (float)(MusicFontSize * 1), (float)(617.9566650390625), (float)(152.5), AlphaSkiaTextAlign.Left, AlphaSkiaTextBaseline.Alphabetic);
- canvas.FillText("\uE0A4", MusicTypeface, (float)(MusicFontSize * 1), (float)(617.9566650390625), (float)(143.5), AlphaSkiaTextAlign.Left, AlphaSkiaTextBaseline.Alphabetic);
- canvas.FillText("\uE0A4", MusicTypeface, (float)(MusicFontSize * 1), (float)(617.9566650390625), (float)(134.5), AlphaSkiaTextAlign.Left, AlphaSkiaTextBaseline.Alphabetic);
- canvas.FillRect((float)(670), (float)(130.1), (float)(1), (float)(36));
- canvas.FillRect((float)(674), (float)(130.1), (float)(4), (float)(36));
+ canvas.FillText("\uE262", MusicTextStyle, (float)(MusicFontSize * 1), (float)(569.0025024414062), (float)(101.41999511718751), AlphaSkiaTextAlign.Left, AlphaSkiaTextBaseline.Alphabetic);
+ canvas.Color = AlphaSkiaCanvas.RgbaToColor((byte)(165), (byte)(165), (byte)(165), (byte)(255));
+ canvas.FillRect((float)(576.0025024414062), (float)(132), (float)(15), (float)(1.04));
+ canvas.FillRect((float)(576.0025024414062), (float)(141), (float)(15), (float)(1.04));
+ canvas.Color = AlphaSkiaCanvas.RgbaToColor((byte)(0), (byte)(0), (byte)(0), (byte)(255));
+ canvas.FillText("\uE0A4", MusicTextStyle, (float)(MusicFontSize * 1), (float)(579.0025024414062), (float)(141.9199951171875), AlphaSkiaTextAlign.Left, AlphaSkiaTextBaseline.Alphabetic);
+ canvas.FillText("\uE0A4", MusicTextStyle, (float)(MusicFontSize * 1), (float)(579.0025024414062), (float)(123.91999511718751), AlphaSkiaTextAlign.Left, AlphaSkiaTextBaseline.Alphabetic);
+ canvas.FillText("\uE0A4", MusicTextStyle, (float)(MusicFontSize * 1), (float)(579.0025024414062), (float)(110.41999511718751), AlphaSkiaTextAlign.Left, AlphaSkiaTextBaseline.Alphabetic);
+ canvas.FillText("\uE0A4", MusicTextStyle, (float)(MusicFontSize * 1), (float)(579.0025024414062), (float)(101.41999511718751), AlphaSkiaTextAlign.Left, AlphaSkiaTextBaseline.Alphabetic);
+ canvas.FillText("\uE0A4", MusicTextStyle, (float)(MusicFontSize * 1), (float)(579.0025024414062), (float)(92.4199951171875), AlphaSkiaTextAlign.Left, AlphaSkiaTextBaseline.Alphabetic);
+ canvas.Color = AlphaSkiaCanvas.RgbaToColor((byte)(153), (byte)(51), (byte)(204), (byte)(100));
+ canvas.FillRect((float)(624), (float)(87.9199951171875), (float)(1), (float)(36.000000000000014));
+ canvas.Color = AlphaSkiaCanvas.RgbaToColor((byte)(0), (byte)(0), (byte)(0), (byte)(255));
canvas.LineWidth = (float)(0.96);
canvas.BeginPath();
- canvas.MoveTo((float)(496.32666015625), (float)(134.5));
- canvas.LineTo((float)(496.32666015625), (float)(184));
+ canvas.MoveTo((float)(457.510009765625), (float)(92.4199951171875));
+ canvas.LineTo((float)(457.510009765625), (float)(141.9199951171875));
canvas.Stroke();
canvas.LineWidth = (float)(1);
canvas.LineWidth = (float)(0.96);
canvas.BeginPath();
- canvas.MoveTo((float)(545.8699951171875), (float)(107.5));
- canvas.LineTo((float)(545.8699951171875), (float)(175));
+ canvas.MoveTo((float)(507.00750732421875), (float)(65.4199951171875));
+ canvas.LineTo((float)(507.00750732421875), (float)(132.9199951171875));
canvas.Stroke();
canvas.LineWidth = (float)(1);
canvas.LineWidth = (float)(0.96);
canvas.BeginPath();
- canvas.MoveTo((float)(586.413330078125), (float)(125.5));
- canvas.LineTo((float)(586.413330078125), (float)(184));
+ canvas.MoveTo((float)(547.5050048828125), (float)(83.41999511718751));
+ canvas.LineTo((float)(547.5050048828125), (float)(141.9199951171875));
canvas.Stroke();
canvas.LineWidth = (float)(1);
canvas.LineWidth = (float)(0.96);
canvas.BeginPath();
- canvas.MoveTo((float)(626.9566650390625), (float)(107.5));
- canvas.LineTo((float)(626.9566650390625), (float)(184));
+ canvas.MoveTo((float)(588.0025024414062), (float)(65.4199951171875));
+ canvas.LineTo((float)(588.0025024414062), (float)(141.9199951171875));
canvas.Stroke();
canvas.LineWidth = (float)(1);
canvas.Color = AlphaSkiaCanvas.RgbaToColor((byte)(0), (byte)(0), (byte)(0), (byte)(100));
canvas.Color = AlphaSkiaCanvas.RgbaToColor((byte)(165), (byte)(165), (byte)(165), (byte)(255));
- canvas.FillRect((float)(92), (float)(284), (float)(254), (float)(1.04));
- canvas.FillRect((float)(92), (float)(295), (float)(254), (float)(1.04));
- canvas.FillRect((float)(92), (float)(306), (float)(254), (float)(1.04));
- canvas.FillRect((float)(92), (float)(317), (float)(61.02685546875), (float)(1.04));
- canvas.FillRect((float)(161.32666015625), (float)(317), (float)(31.759140014648438), (float)(1.04));
- canvas.FillRect((float)(201.38560485839844), (float)(317), (float)(31.759140014648438), (float)(1.04));
- canvas.FillRect((float)(241.44454956054688), (float)(317), (float)(31.759124755859375), (float)(1.04));
- canvas.FillRect((float)(281.50347900390625), (float)(317), (float)(25.273406982421875), (float)(1.04));
- canvas.FillRect((float)(315.0766906738281), (float)(317), (float)(30.923309326171875), (float)(1.04));
- canvas.FillRect((float)(92), (float)(328), (float)(254), (float)(1.04));
- canvas.FillRect((float)(92), (float)(339), (float)(254), (float)(1.04));
- canvas.Color = AlphaSkiaCanvas.RgbaToColor((byte)(0), (byte)(0), (byte)(0), (byte)(255));
- canvas.FillText("\uE06D", MusicTypeface, (float)(MusicFontSize * 0.9230769230769231), (float)(97), (float)(311.8), AlphaSkiaTextAlign.Left, AlphaSkiaTextBaseline.Alphabetic);
+ canvas.FillRect((float)(625), (float)(87), (float)(82), (float)(1.04));
+ canvas.FillRect((float)(625), (float)(96), (float)(82), (float)(1.04));
+ canvas.FillRect((float)(625), (float)(105), (float)(82), (float)(1.04));
+ canvas.FillRect((float)(625), (float)(114), (float)(82), (float)(1.04));
+ canvas.FillRect((float)(625), (float)(123), (float)(82), (float)(1.04));
+ canvas.Color = AlphaSkiaCanvas.RgbaToColor((byte)(0), (byte)(0), (byte)(0), (byte)(100));
+ canvas.Color = AlphaSkiaCanvas.RgbaToColor((byte)(0), (byte)(0), (byte)(0), (byte)(255));
+ canvas.Color = AlphaSkiaCanvas.RgbaToColor((byte)(0), (byte)(0), (byte)(0), (byte)(100));
+ canvas.Color = AlphaSkiaCanvas.RgbaToColor((byte)(0), (byte)(0), (byte)(0), (byte)(255));
+ canvas.Color = AlphaSkiaCanvas.RgbaToColor((byte)(153), (byte)(51), (byte)(204), (byte)(100));
+ canvas.Color = AlphaSkiaCanvas.RgbaToColor((byte)(0), (byte)(0), (byte)(0), (byte)(255));
+ canvas.Color = AlphaSkiaCanvas.RgbaToColor((byte)(200), (byte)(0), (byte)(0), (byte)(255));
+ TextBaseline = AlphaSkiaTextBaseline.Top;
+ TextStyle = GetTextStyle(new []{"Noto Sans", "Noto Music", "Noto Color Emoji"}, 400, false);
+ FontSize = (float)(11);
+ canvas.FillText("4", TextStyle, FontSize, (float)(625), (float)(76.5699951171875), TextAlign, TextBaseline);
+ TextBaseline = AlphaSkiaTextBaseline.Top;
+ canvas.Color = AlphaSkiaCanvas.RgbaToColor((byte)(0), (byte)(0), (byte)(0), (byte)(255));
+ canvas.FillText("\uE4EF\uE4F0\uE4F0\uE4F0\uE4F1", MusicTextStyle, (float)(MusicFontSize * 1), (float)(636.2920074462891), (float)(105.91999511718751), AlphaSkiaTextAlign.Left, AlphaSkiaTextBaseline.Alphabetic);
+ canvas.FillText("\uE083", MusicTextStyle, (float)(MusicFontSize * 1), (float)(666.2920074462891), (float)(74), AlphaSkiaTextAlign.Center, AlphaSkiaTextBaseline.Alphabetic);
+ canvas.Color = AlphaSkiaCanvas.RgbaToColor((byte)(0), (byte)(0), (byte)(0), (byte)(100));
+ canvas.Color = AlphaSkiaCanvas.RgbaToColor((byte)(0), (byte)(0), (byte)(0), (byte)(255));
+ canvas.Color = AlphaSkiaCanvas.RgbaToColor((byte)(0), (byte)(0), (byte)(0), (byte)(100));
+ canvas.Color = AlphaSkiaCanvas.RgbaToColor((byte)(0), (byte)(0), (byte)(0), (byte)(255));
+ canvas.Color = AlphaSkiaCanvas.RgbaToColor((byte)(0), (byte)(0), (byte)(0), (byte)(100));
+ canvas.Color = AlphaSkiaCanvas.RgbaToColor((byte)(0), (byte)(0), (byte)(0), (byte)(255));
+ canvas.Color = AlphaSkiaCanvas.RgbaToColor((byte)(153), (byte)(51), (byte)(204), (byte)(100));
+ canvas.FillRect((float)(706), (float)(87.9199951171875), (float)(1), (float)(36.000000000000014));
+ canvas.Color = AlphaSkiaCanvas.RgbaToColor((byte)(0), (byte)(0), (byte)(0), (byte)(255));
+ canvas.Color = AlphaSkiaCanvas.RgbaToColor((byte)(0), (byte)(0), (byte)(0), (byte)(100));
+ canvas.Color = AlphaSkiaCanvas.RgbaToColor((byte)(165), (byte)(165), (byte)(165), (byte)(255));
+ canvas.FillRect((float)(707), (float)(87), (float)(163), (float)(1.04));
+ canvas.FillRect((float)(707), (float)(96), (float)(163), (float)(1.04));
+ canvas.FillRect((float)(707), (float)(105), (float)(163), (float)(1.04));
+ canvas.FillRect((float)(707), (float)(114), (float)(163), (float)(1.04));
+ canvas.FillRect((float)(707), (float)(123), (float)(163), (float)(1.04));
+ canvas.Color = AlphaSkiaCanvas.RgbaToColor((byte)(0), (byte)(0), (byte)(0), (byte)(100));
+ canvas.Color = AlphaSkiaCanvas.RgbaToColor((byte)(0), (byte)(0), (byte)(0), (byte)(255));
+ canvas.Color = AlphaSkiaCanvas.RgbaToColor((byte)(0), (byte)(0), (byte)(0), (byte)(100));
+ canvas.Color = AlphaSkiaCanvas.RgbaToColor((byte)(0), (byte)(0), (byte)(0), (byte)(255));
+ canvas.Color = AlphaSkiaCanvas.RgbaToColor((byte)(153), (byte)(51), (byte)(204), (byte)(100));
+ canvas.Color = AlphaSkiaCanvas.RgbaToColor((byte)(0), (byte)(0), (byte)(0), (byte)(255));
+ canvas.Color = AlphaSkiaCanvas.RgbaToColor((byte)(200), (byte)(0), (byte)(0), (byte)(255));
+ TextBaseline = AlphaSkiaTextBaseline.Top;
+ TextStyle = GetTextStyle(new []{"Noto Sans", "Noto Music", "Noto Color Emoji"}, 400, false);
+ FontSize = (float)(11);
+ canvas.FillText("7", TextStyle, FontSize, (float)(707), (float)(76.5699951171875), TextAlign, TextBaseline);
+ TextBaseline = AlphaSkiaTextBaseline.Top;
+ canvas.Color = AlphaSkiaCanvas.RgbaToColor((byte)(0), (byte)(0), (byte)(0), (byte)(255));
+ canvas.Color = AlphaSkiaCanvas.RgbaToColor((byte)(165), (byte)(165), (byte)(165), (byte)(255));
+ canvas.Color = AlphaSkiaCanvas.RgbaToColor((byte)(0), (byte)(0), (byte)(0), (byte)(255));
+ canvas.FillText("\uE0A4", MusicTextStyle, (float)(MusicFontSize * 1), (float)(718.2920074462891), (float)(96.91999511718751), AlphaSkiaTextAlign.Left, AlphaSkiaTextBaseline.Alphabetic);
+ canvas.Color = AlphaSkiaCanvas.RgbaToColor((byte)(165), (byte)(165), (byte)(165), (byte)(255));
+ canvas.Color = AlphaSkiaCanvas.RgbaToColor((byte)(0), (byte)(0), (byte)(0), (byte)(255));
+ canvas.FillText("\uE0A4", MusicTextStyle, (float)(MusicFontSize * 1), (float)(754.8440055847168), (float)(96.91999511718751), AlphaSkiaTextAlign.Left, AlphaSkiaTextBaseline.Alphabetic);
+ canvas.Color = AlphaSkiaCanvas.RgbaToColor((byte)(165), (byte)(165), (byte)(165), (byte)(255));
+ canvas.Color = AlphaSkiaCanvas.RgbaToColor((byte)(0), (byte)(0), (byte)(0), (byte)(255));
+ canvas.FillText("\uE0A4", MusicTextStyle, (float)(MusicFontSize * 1), (float)(791.3960037231445), (float)(96.91999511718751), AlphaSkiaTextAlign.Left, AlphaSkiaTextBaseline.Alphabetic);
+ canvas.Color = AlphaSkiaCanvas.RgbaToColor((byte)(165), (byte)(165), (byte)(165), (byte)(255));
+ canvas.Color = AlphaSkiaCanvas.RgbaToColor((byte)(0), (byte)(0), (byte)(0), (byte)(255));
+ canvas.FillText("\uE0A4", MusicTextStyle, (float)(MusicFontSize * 1), (float)(827.9480018615723), (float)(96.91999511718751), AlphaSkiaTextAlign.Left, AlphaSkiaTextBaseline.Alphabetic);
+ canvas.Color = AlphaSkiaCanvas.RgbaToColor((byte)(153), (byte)(51), (byte)(204), (byte)(100));
+ canvas.FillRect((float)(869), (float)(87.9199951171875), (float)(1), (float)(36.000000000000014));
+ canvas.Color = AlphaSkiaCanvas.RgbaToColor((byte)(0), (byte)(0), (byte)(0), (byte)(255));
+ canvas.LineWidth = (float)(0.96);
+ canvas.BeginPath();
+ canvas.MoveTo((float)(718.2920074462891), (float)(96.91999511718751));
+ canvas.LineTo((float)(718.2920074462891), (float)(123.91999511718751));
+ canvas.Stroke();
+ canvas.LineWidth = (float)(1);
+ canvas.LineWidth = (float)(0.96);
+ canvas.BeginPath();
+ canvas.MoveTo((float)(754.8440055847168), (float)(96.91999511718751));
+ canvas.LineTo((float)(754.8440055847168), (float)(123.91999511718751));
+ canvas.Stroke();
+ canvas.LineWidth = (float)(1);
+ canvas.LineWidth = (float)(0.96);
+ canvas.BeginPath();
+ canvas.MoveTo((float)(791.3960037231445), (float)(96.91999511718751));
+ canvas.LineTo((float)(791.3960037231445), (float)(123.91999511718751));
+ canvas.Stroke();
+ canvas.LineWidth = (float)(1);
+ canvas.LineWidth = (float)(0.96);
+ canvas.BeginPath();
+ canvas.MoveTo((float)(827.9480018615723), (float)(96.91999511718751));
+ canvas.LineTo((float)(827.9480018615723), (float)(123.91999511718751));
+ canvas.Stroke();
+ canvas.LineWidth = (float)(1);
+ canvas.Color = AlphaSkiaCanvas.RgbaToColor((byte)(0), (byte)(0), (byte)(0), (byte)(100));
+ canvas.Color = AlphaSkiaCanvas.RgbaToColor((byte)(165), (byte)(165), (byte)(165), (byte)(255));
+ canvas.FillRect((float)(870), (float)(87), (float)(60), (float)(1.04));
+ canvas.FillRect((float)(870), (float)(96), (float)(60), (float)(1.04));
+ canvas.FillRect((float)(870), (float)(105), (float)(60), (float)(1.04));
+ canvas.FillRect((float)(870), (float)(114), (float)(60), (float)(1.04));
+ canvas.FillRect((float)(870), (float)(123), (float)(60), (float)(1.04));
+ canvas.Color = AlphaSkiaCanvas.RgbaToColor((byte)(0), (byte)(0), (byte)(0), (byte)(100));
+ canvas.Color = AlphaSkiaCanvas.RgbaToColor((byte)(0), (byte)(0), (byte)(0), (byte)(255));
+ canvas.Color = AlphaSkiaCanvas.RgbaToColor((byte)(0), (byte)(0), (byte)(0), (byte)(100));
+ canvas.Color = AlphaSkiaCanvas.RgbaToColor((byte)(0), (byte)(0), (byte)(0), (byte)(255));
+ canvas.Color = AlphaSkiaCanvas.RgbaToColor((byte)(153), (byte)(51), (byte)(204), (byte)(100));
+ canvas.Color = AlphaSkiaCanvas.RgbaToColor((byte)(0), (byte)(0), (byte)(0), (byte)(255));
+ canvas.Color = AlphaSkiaCanvas.RgbaToColor((byte)(200), (byte)(0), (byte)(0), (byte)(255));
+ TextBaseline = AlphaSkiaTextBaseline.Top;
+ TextStyle = GetTextStyle(new []{"Noto Sans", "Noto Music", "Noto Color Emoji"}, 400, false);
+ FontSize = (float)(11);
+ canvas.FillText("8", TextStyle, FontSize, (float)(870), (float)(76.5699951171875), TextAlign, TextBaseline);
+ TextBaseline = AlphaSkiaTextBaseline.Top;
+ canvas.Color = AlphaSkiaCanvas.RgbaToColor((byte)(0), (byte)(0), (byte)(0), (byte)(255));
+ canvas.Color = AlphaSkiaCanvas.RgbaToColor((byte)(165), (byte)(165), (byte)(165), (byte)(255));
+ canvas.Color = AlphaSkiaCanvas.RgbaToColor((byte)(0), (byte)(0), (byte)(0), (byte)(255));
+ canvas.FillText("\uE0A4", MusicTextStyle, (float)(MusicFontSize * 1), (float)(881.2920074462891), (float)(96.91999511718751), AlphaSkiaTextAlign.Left, AlphaSkiaTextBaseline.Alphabetic);
+ canvas.Color = AlphaSkiaCanvas.RgbaToColor((byte)(153), (byte)(51), (byte)(204), (byte)(100));
+ canvas.FillRect((float)(922), (float)(87.9199951171875), (float)(1), (float)(36.000000000000014));
+ canvas.FillRect((float)(926), (float)(87.9199951171875), (float)(4), (float)(36.000000000000014));
+ canvas.Color = AlphaSkiaCanvas.RgbaToColor((byte)(0), (byte)(0), (byte)(0), (byte)(255));
+ canvas.LineWidth = (float)(0.96);
+ canvas.BeginPath();
+ canvas.MoveTo((float)(881.2920074462891), (float)(96.91999511718751));
+ canvas.LineTo((float)(881.2920074462891), (float)(123.91999511718751));
+ canvas.Stroke();
+ canvas.LineWidth = (float)(1);
+ canvas.Color = AlphaSkiaCanvas.RgbaToColor((byte)(0), (byte)(0), (byte)(0), (byte)(100));
+ canvas.Color = AlphaSkiaCanvas.RgbaToColor((byte)(0), (byte)(0), (byte)(0), (byte)(255));
+ canvas.FillText("\uEAA4", MusicTextStyle, (float)(MusicFontSize * 1.2), (float)(722.7920074462891), (float)(161.4199951171875), AlphaSkiaTextAlign.Left, AlphaSkiaTextBaseline.Alphabetic);
+ canvas.FillText("\uEAA4", MusicTextStyle, (float)(MusicFontSize * 1.2), (float)(733.592007446289), (float)(161.4199951171875), AlphaSkiaTextAlign.Left, AlphaSkiaTextBaseline.Alphabetic);
+ canvas.FillText("\uEAA4", MusicTextStyle, (float)(MusicFontSize * 1.2), (float)(744.3920074462891), (float)(161.4199951171875), AlphaSkiaTextAlign.Left, AlphaSkiaTextBaseline.Alphabetic);
+ canvas.FillText("\uEAA4", MusicTextStyle, (float)(MusicFontSize * 1.2), (float)(755.192007446289), (float)(161.4199951171875), AlphaSkiaTextAlign.Left, AlphaSkiaTextBaseline.Alphabetic);
+ canvas.FillText("\uEAA4", MusicTextStyle, (float)(MusicFontSize * 1.2), (float)(765.9920074462891), (float)(161.4199951171875), AlphaSkiaTextAlign.Left, AlphaSkiaTextBaseline.Alphabetic);
+ canvas.FillText("\uEAA4", MusicTextStyle, (float)(MusicFontSize * 1.2), (float)(776.7920074462891), (float)(161.4199951171875), AlphaSkiaTextAlign.Left, AlphaSkiaTextBaseline.Alphabetic);
+ canvas.FillText("\uEAA4", MusicTextStyle, (float)(MusicFontSize * 1.2), (float)(787.592007446289), (float)(161.4199951171875), AlphaSkiaTextAlign.Left, AlphaSkiaTextBaseline.Alphabetic);
+ canvas.FillText("\uEAA4", MusicTextStyle, (float)(MusicFontSize * 1.2), (float)(798.3920074462891), (float)(161.4199951171875), AlphaSkiaTextAlign.Left, AlphaSkiaTextBaseline.Alphabetic);
+ canvas.FillText("\uEAA4", MusicTextStyle, (float)(MusicFontSize * 1.2), (float)(809.192007446289), (float)(161.4199951171875), AlphaSkiaTextAlign.Left, AlphaSkiaTextBaseline.Alphabetic);
+ canvas.FillText("\uEAA4", MusicTextStyle, (float)(MusicFontSize * 1.2), (float)(819.9920074462891), (float)(161.4199951171875), AlphaSkiaTextAlign.Left, AlphaSkiaTextBaseline.Alphabetic);
+ canvas.Color = AlphaSkiaCanvas.RgbaToColor((byte)(165), (byte)(165), (byte)(165), (byte)(255));
+ canvas.FillRect((float)(48), (float)(216), (float)(259), (float)(1.04));
+ canvas.FillRect((float)(48), (float)(227), (float)(259), (float)(1.04));
+ canvas.FillRect((float)(48), (float)(238), (float)(259), (float)(1.04));
+ canvas.FillRect((float)(48), (float)(249), (float)(66.07400512695312), (float)(1.04));
+ canvas.FillRect((float)(122.510009765625), (float)(249), (float)(31.81214141845703), (float)(1.04));
+ canvas.FillRect((float)(162.7581558227539), (float)(249), (float)(31.81214141845703), (float)(1.04));
+ canvas.FillRect((float)(203.0063018798828), (float)(249), (float)(31.8121337890625), (float)(1.04));
+ canvas.FillRect((float)(243.2544403076172), (float)(249), (float)(25.2957763671875), (float)(1.04));
+ canvas.FillRect((float)(276.98622131347656), (float)(249), (float)(30.013778686523438), (float)(1.04));
+ canvas.FillRect((float)(48), (float)(260), (float)(259), (float)(1.04));
+ canvas.FillRect((float)(48), (float)(271), (float)(259), (float)(1.04));
+ canvas.Color = AlphaSkiaCanvas.RgbaToColor((byte)(0), (byte)(0), (byte)(0), (byte)(255));
+ canvas.Color = AlphaSkiaCanvas.RgbaToColor((byte)(153), (byte)(51), (byte)(204), (byte)(100));
+ canvas.FillRect((float)(48), (float)(216.3199951171875), (float)(1), (float)(54.99999999999994));
+ canvas.Color = AlphaSkiaCanvas.RgbaToColor((byte)(0), (byte)(0), (byte)(0), (byte)(255));
+ canvas.FillText("\uE06D", MusicTextStyle, (float)(MusicFontSize * 0.9230769230769231), (float)(54), (float)(243.8199951171875), AlphaSkiaTextAlign.Left, AlphaSkiaTextBaseline.Alphabetic);
TextBaseline = AlphaSkiaTextBaseline.Middle;
- Typeface = GetTypeface("Roboto", false, false);
+ TextStyle = GetTextStyle(new []{"Noto Sans", "Noto Music", "Noto Color Emoji"}, 400, false);
FontSize = (float)(13);
- Typeface = GetTypeface("Roboto", false, false);
+ TextStyle = GetTextStyle(new []{"Noto Sans", "Noto Music", "Noto Color Emoji"}, 400, false);
FontSize = (float)(11);
- canvas.FillText("", Typeface, FontSize, (float)(163.32666015625), (float)(317.3), TextAlign, TextBaseline);
- Typeface = GetTypeface("Roboto", false, false);
+ canvas.FillText("", TextStyle, FontSize, (float)(124.510009765625), (float)(249.3199951171875), TextAlign, TextBaseline);
+ TextStyle = GetTextStyle(new []{"Noto Sans", "Noto Music", "Noto Color Emoji"}, 400, false);
FontSize = (float)(13);
- canvas.FillText("9", Typeface, FontSize, (float)(153.02685546875), (float)(317.3), TextAlign, TextBaseline);
+ canvas.FillText("9", TextStyle, FontSize, (float)(114.07400512695312), (float)(249.3199951171875), TextAlign, TextBaseline);
TextBaseline = AlphaSkiaTextBaseline.Top;
canvas.BeginPath();
canvas.BeginPath();
- canvas.MoveTo((float)(188.23569962449085), (float)(274.7));
- canvas.LineTo((float)(185.23569962449085), (float)(280.7));
- canvas.LineTo((float)(191.23569962449085), (float)(280.7));
+ canvas.MoveTo((float)(150.32215017408072), (float)(206.7199951171875));
+ canvas.LineTo((float)(147.32215017408072), (float)(212.7199951171875));
+ canvas.LineTo((float)(153.32215017408072), (float)(212.7199951171875));
canvas.ClosePath();
canvas.Fill();
+ canvas.BeginPath();
+ canvas.MoveTo((float)(123.510009765625), (float)(249.3199951171875));
+ canvas.BezierCurveTo((float)(136.91607996985286), (float)(249.3199951171875), (float)(150.32215017408072), (float)(249.3199951171875), (float)(150.32215017408072), (float)(212.7199951171875));
canvas.Stroke();
- canvas.MoveTo((float)(162.32666015625), (float)(317.3));
- canvas.BezierCurveTo((float)(175.28117989037042), (float)(317.3), (float)(188.23569962449085), (float)(317.3), (float)(188.23569962449085), (float)(280.7));
- canvas.Stroke();
- Typeface = GetTypeface("Roboto", false, false);
+ TextStyle = GetTextStyle(new []{"Noto Sans", "Noto Music", "Noto Color Emoji"}, 400, false);
FontSize = (float)(13);
- canvas.FillText("\u00BC", Typeface, FontSize, (float)(183.47495743699085), (float)(260.7), TextAlign, TextBaseline);
+ canvas.FillText("\u00BC", TextStyle, FontSize, (float)(145.47965139478384), (float)(192.7199951171875), TextAlign, TextBaseline);
TextBaseline = AlphaSkiaTextBaseline.Middle;
- Typeface = GetTypeface("Roboto", false, false);
+ TextStyle = GetTextStyle(new []{"Noto Sans", "Noto Music", "Noto Color Emoji"}, 400, false);
FontSize = (float)(13);
- Typeface = GetTypeface("Roboto", false, false);
+ TextStyle = GetTextStyle(new []{"Noto Sans", "Noto Music", "Noto Color Emoji"}, 400, false);
FontSize = (float)(11);
- canvas.FillText("", Typeface, FontSize, (float)(203.38560196824085), (float)(317.3), TextAlign, TextBaseline);
- Typeface = GetTypeface("Roboto", false, false);
+ canvas.FillText("", TextStyle, FontSize, (float)(164.7581548127526), (float)(249.3199951171875), TextAlign, TextBaseline);
+ TextStyle = GetTextStyle(new []{"Noto Sans", "Noto Music", "Noto Color Emoji"}, 400, false);
FontSize = (float)(13);
- canvas.FillText("9", Typeface, FontSize, (float)(193.08579728074085), (float)(317.3), TextAlign, TextBaseline);
+ canvas.FillText("9", TextStyle, FontSize, (float)(154.32215017408072), (float)(249.3199951171875), TextAlign, TextBaseline);
TextBaseline = AlphaSkiaTextBaseline.Top;
canvas.BeginPath();
canvas.BeginPath();
- canvas.MoveTo((float)(228.29464143648167), (float)(268.7));
- canvas.LineTo((float)(225.29464143648167), (float)(274.7));
- canvas.LineTo((float)(231.29464143648167), (float)(274.7));
+ canvas.MoveTo((float)(190.5702952212083), (float)(200.7199951171875));
+ canvas.LineTo((float)(187.5702952212083), (float)(206.7199951171875));
+ canvas.LineTo((float)(193.5702952212083), (float)(206.7199951171875));
canvas.ClosePath();
canvas.Fill();
+ canvas.BeginPath();
+ canvas.MoveTo((float)(163.7581548127526), (float)(249.3199951171875));
+ canvas.BezierCurveTo((float)(177.16422501698045), (float)(249.3199951171875), (float)(190.5702952212083), (float)(249.3199951171875), (float)(190.5702952212083), (float)(206.7199951171875));
canvas.Stroke();
- canvas.MoveTo((float)(202.38560196824085), (float)(317.3));
- canvas.BezierCurveTo((float)(215.34012170236127), (float)(317.3), (float)(228.29464143648167), (float)(317.3), (float)(228.29464143648167), (float)(274.7));
- canvas.Stroke();
- Typeface = GetTypeface("Roboto", false, false);
+ TextStyle = GetTextStyle(new []{"Noto Sans", "Noto Music", "Noto Color Emoji"}, 400, false);
FontSize = (float)(13);
- canvas.FillText("\u00BD", Typeface, FontSize, (float)(223.25142854585667), (float)(254.7), TextAlign, TextBaseline);
+ canvas.FillText("\u00BD", TextStyle, FontSize, (float)(185.55879772364972), (float)(186.7199951171875), TextAlign, TextBaseline);
TextBaseline = AlphaSkiaTextBaseline.Middle;
- Typeface = GetTypeface("Roboto", false, false);
+ TextStyle = GetTextStyle(new []{"Noto Sans", "Noto Music", "Noto Color Emoji"}, 400, false);
FontSize = (float)(13);
- Typeface = GetTypeface("Roboto", false, false);
+ TextStyle = GetTextStyle(new []{"Noto Sans", "Noto Music", "Noto Color Emoji"}, 400, false);
FontSize = (float)(11);
- canvas.FillText("", Typeface, FontSize, (float)(243.44454378023167), (float)(317.3), TextAlign, TextBaseline);
- Typeface = GetTypeface("Roboto", false, false);
+ canvas.FillText("", TextStyle, FontSize, (float)(205.0062998598802), (float)(249.3199951171875), TextAlign, TextBaseline);
+ TextStyle = GetTextStyle(new []{"Noto Sans", "Noto Music", "Noto Color Emoji"}, 400, false);
FontSize = (float)(13);
- canvas.FillText("9", Typeface, FontSize, (float)(233.14473909273167), (float)(317.3), TextAlign, TextBaseline);
+ canvas.FillText("9", TextStyle, FontSize, (float)(194.5702952212083), (float)(249.3199951171875), TextAlign, TextBaseline);
TextBaseline = AlphaSkiaTextBaseline.Top;
canvas.BeginPath();
canvas.BeginPath();
- canvas.MoveTo((float)(268.3535832484725), (float)(256.7));
- canvas.LineTo((float)(265.3535832484725), (float)(262.7));
- canvas.LineTo((float)(271.3535832484725), (float)(262.7));
+ canvas.MoveTo((float)(230.81844026833588), (float)(188.7199951171875));
+ canvas.LineTo((float)(227.81844026833588), (float)(194.7199951171875));
+ canvas.LineTo((float)(233.81844026833588), (float)(194.7199951171875));
canvas.ClosePath();
canvas.Fill();
+ canvas.BeginPath();
+ canvas.MoveTo((float)(204.0062998598802), (float)(249.3199951171875));
+ canvas.BezierCurveTo((float)(217.41237006410802), (float)(249.3199951171875), (float)(230.81844026833588), (float)(249.3199951171875), (float)(230.81844026833588), (float)(194.7199951171875));
canvas.Stroke();
- canvas.MoveTo((float)(242.44454378023167), (float)(317.3));
- canvas.BezierCurveTo((float)(255.39906351435206), (float)(317.3), (float)(268.3535832484725), (float)(317.3), (float)(268.3535832484725), (float)(262.7));
- canvas.Stroke();
- Typeface = GetTypeface("Roboto", false, false);
+ TextStyle = GetTextStyle(new []{"Noto Sans", "Noto Music", "Noto Color Emoji"}, 400, false);
FontSize = (float)(13);
- canvas.FillText("full", Typeface, FontSize, (float)(259.3589543422225), (float)(242.7), TextAlign, TextBaseline);
+ canvas.FillText("full", TextStyle, FontSize, (float)(221.2114380100351), (float)(174.7199951171875), TextAlign, TextBaseline);
TextBaseline = AlphaSkiaTextBaseline.Middle;
- Typeface = GetTypeface("Roboto", false, false);
+ TextStyle = GetTextStyle(new []{"Noto Sans", "Noto Music", "Noto Color Emoji"}, 400, false);
FontSize = (float)(13);
- Typeface = GetTypeface("Roboto", false, false);
+ TextStyle = GetTextStyle(new []{"Noto Sans", "Noto Music", "Noto Color Emoji"}, 400, false);
FontSize = (float)(11);
- canvas.FillText("", Typeface, FontSize, (float)(283.5034855922225), (float)(317.3), TextAlign, TextBaseline);
- Typeface = GetTypeface("Roboto", false, false);
+ canvas.FillText("", TextStyle, FontSize, (float)(245.25444490700775), (float)(249.3199951171875), TextAlign, TextBaseline);
+ TextStyle = GetTextStyle(new []{"Noto Sans", "Noto Music", "Noto Color Emoji"}, 400, false);
FontSize = (float)(13);
- canvas.FillText("9", Typeface, FontSize, (float)(273.2036809047225), (float)(317.3), TextAlign, TextBaseline);
+ canvas.FillText("9", TextStyle, FontSize, (float)(234.81844026833588), (float)(249.3199951171875), TextAlign, TextBaseline);
TextBaseline = AlphaSkiaTextBaseline.Top;
canvas.BeginPath();
canvas.BeginPath();
- canvas.MoveTo((float)(301.9267916242362), (float)(244.7));
- canvas.LineTo((float)(298.9267916242362), (float)(250.7));
- canvas.LineTo((float)(304.9267916242362), (float)(250.7));
+ canvas.MoveTo((float)(264.55021897449996), (float)(176.7199951171875));
+ canvas.LineTo((float)(261.55021897449996), (float)(182.7199951171875));
+ canvas.LineTo((float)(267.55021897449996), (float)(182.7199951171875));
canvas.ClosePath();
canvas.Fill();
+ canvas.BeginPath();
+ canvas.MoveTo((float)(244.25444490700775), (float)(249.3199951171875));
+ canvas.BezierCurveTo((float)(254.40233194075387), (float)(249.3199951171875), (float)(264.55021897449996), (float)(249.3199951171875), (float)(264.55021897449996), (float)(182.7199951171875));
canvas.Stroke();
- canvas.MoveTo((float)(282.5034855922225), (float)(317.3));
- canvas.BezierCurveTo((float)(292.2151386082294), (float)(317.3), (float)(301.9267916242362), (float)(317.3), (float)(301.9267916242362), (float)(250.7));
- canvas.Stroke();
- Typeface = GetTypeface("Roboto", false, false);
+ TextStyle = GetTextStyle(new []{"Noto Sans", "Noto Music", "Noto Color Emoji"}, 400, false);
FontSize = (float)(13);
- canvas.FillText("1\u00BD", Typeface, FontSize, (float)(293.2336763898612), (float)(230.7), TextAlign, TextBaseline);
+ canvas.FillText("1\u00BD", TextStyle, FontSize, (float)(255.82071915760542), (float)(162.7199951171875), TextAlign, TextBaseline);
TextBaseline = AlphaSkiaTextBaseline.Middle;
- Typeface = GetTypeface("Roboto", false, false);
+ TextStyle = GetTextStyle(new []{"Noto Sans", "Noto Music", "Noto Color Emoji"}, 400, false);
FontSize = (float)(13);
- Typeface = GetTypeface("Roboto", false, false);
+ TextStyle = GetTextStyle(new []{"Noto Sans", "Noto Music", "Noto Color Emoji"}, 400, false);
FontSize = (float)(11);
- canvas.FillText("", Typeface, FontSize, (float)(317.0766939679862), (float)(317.3), TextAlign, TextBaseline);
- Typeface = GetTypeface("Roboto", false, false);
+ canvas.FillText("", TextStyle, FontSize, (float)(278.98622361317183), (float)(249.3199951171875), TextAlign, TextBaseline);
+ TextStyle = GetTextStyle(new []{"Noto Sans", "Noto Music", "Noto Color Emoji"}, 400, false);
FontSize = (float)(13);
- canvas.FillText("9", Typeface, FontSize, (float)(306.7768892804862), (float)(317.3), TextAlign, TextBaseline);
+ canvas.FillText("9", TextStyle, FontSize, (float)(268.55021897449996), (float)(249.3199951171875), TextAlign, TextBaseline);
TextBaseline = AlphaSkiaTextBaseline.Top;
canvas.BeginPath();
canvas.BeginPath();
- canvas.MoveTo((float)(340), (float)(232.7));
- canvas.LineTo((float)(337), (float)(238.7));
- canvas.LineTo((float)(343), (float)(238.7));
+ canvas.MoveTo((float)(302), (float)(164.7199951171875));
+ canvas.LineTo((float)(299), (float)(170.7199951171875));
+ canvas.LineTo((float)(305), (float)(170.7199951171875));
canvas.ClosePath();
canvas.Fill();
+ canvas.BeginPath();
+ canvas.MoveTo((float)(277.98622361317183), (float)(249.3199951171875));
+ canvas.BezierCurveTo((float)(289.99311180658594), (float)(249.3199951171875), (float)(302), (float)(249.3199951171875), (float)(302), (float)(170.7199951171875));
canvas.Stroke();
- canvas.MoveTo((float)(316.0766939679862), (float)(317.3));
- canvas.BezierCurveTo((float)(328.0383469839931), (float)(317.3), (float)(340), (float)(317.3), (float)(340), (float)(238.7));
- canvas.Stroke();
- Typeface = GetTypeface("Roboto", false, false);
+ TextStyle = GetTextStyle(new []{"Noto Sans", "Noto Music", "Noto Color Emoji"}, 400, false);
FontSize = (float)(13);
- canvas.FillText("2", Typeface, FontSize, (float)(336.35009765625), (float)(218.7), TextAlign, TextBaseline);
- canvas.FillRect((float)(345), (float)(284.3), (float)(1), (float)(54.99999999999994));
+ canvas.FillText("2", TextStyle, FontSize, (float)(298.28199768066406), (float)(150.7199951171875), TextAlign, TextBaseline);
+ canvas.Color = AlphaSkiaCanvas.RgbaToColor((byte)(153), (byte)(51), (byte)(204), (byte)(100));
+ canvas.FillRect((float)(306), (float)(216.3199951171875), (float)(1), (float)(54.99999999999994));
+ canvas.Color = AlphaSkiaCanvas.RgbaToColor((byte)(0), (byte)(0), (byte)(0), (byte)(255));
canvas.Color = AlphaSkiaCanvas.RgbaToColor((byte)(165), (byte)(165), (byte)(165), (byte)(255));
- canvas.FillRect((float)(346), (float)(284), (float)(126), (float)(1.04));
- canvas.FillRect((float)(346), (float)(295), (float)(12.02685546875), (float)(1.04));
- canvas.FillRect((float)(366.32666015625), (float)(295), (float)(12.882984161376953), (float)(1.04));
- canvas.FillRect((float)(387.50944900512695), (float)(295), (float)(84.49055099487305), (float)(1.04));
- canvas.FillRect((float)(346), (float)(306), (float)(126), (float)(1.04));
- canvas.FillRect((float)(346), (float)(317), (float)(54.392433166503906), (float)(1.04));
- canvas.FillRect((float)(408.6922378540039), (float)(317), (float)(18.781005859375), (float)(1.04));
- canvas.FillRect((float)(435.7730484008789), (float)(317), (float)(36.226951599121094), (float)(1.04));
- canvas.FillRect((float)(346), (float)(328), (float)(126), (float)(1.04));
- canvas.FillRect((float)(346), (float)(339), (float)(126), (float)(1.04));
+ canvas.FillRect((float)(307), (float)(216), (float)(126), (float)(1.04));
+ canvas.FillRect((float)(307), (float)(227), (float)(12.074005126953125), (float)(1.04));
+ canvas.FillRect((float)(327.510009765625), (float)(227), (float)(12.9197998046875), (float)(1.04));
+ canvas.FillRect((float)(348.8658142089844), (float)(227), (float)(84.13418579101562), (float)(1.04));
+ canvas.FillRect((float)(307), (float)(238), (float)(126), (float)(1.04));
+ canvas.FillRect((float)(307), (float)(249), (float)(54.785614013671875), (float)(1.04));
+ canvas.FillRect((float)(370.22161865234375), (float)(249), (float)(18.865989685058594), (float)(1.04));
+ canvas.FillRect((float)(397.5236129760742), (float)(249), (float)(35.47638702392578), (float)(1.04));
+ canvas.FillRect((float)(307), (float)(260), (float)(126), (float)(1.04));
+ canvas.FillRect((float)(307), (float)(271), (float)(126), (float)(1.04));
+ canvas.Color = AlphaSkiaCanvas.RgbaToColor((byte)(0), (byte)(0), (byte)(0), (byte)(255));
+ canvas.Color = AlphaSkiaCanvas.RgbaToColor((byte)(153), (byte)(51), (byte)(204), (byte)(100));
canvas.Color = AlphaSkiaCanvas.RgbaToColor((byte)(0), (byte)(0), (byte)(0), (byte)(255));
TextBaseline = AlphaSkiaTextBaseline.Middle;
- Typeface = GetTypeface("Roboto", false, false);
+ TextStyle = GetTextStyle(new []{"Noto Sans", "Noto Music", "Noto Color Emoji"}, 400, false);
FontSize = (float)(13);
- Typeface = GetTypeface("Roboto", false, false);
+ TextStyle = GetTextStyle(new []{"Noto Sans", "Noto Music", "Noto Color Emoji"}, 400, false);
FontSize = (float)(11);
- canvas.FillText("", Typeface, FontSize, (float)(368.32666015625), (float)(295.3), TextAlign, TextBaseline);
- Typeface = GetTypeface("Roboto", false, false);
+ canvas.FillText("", TextStyle, FontSize, (float)(329.510009765625), (float)(227.3199951171875), TextAlign, TextBaseline);
+ TextStyle = GetTextStyle(new []{"Noto Sans", "Noto Music", "Noto Color Emoji"}, 400, false);
FontSize = (float)(13);
- canvas.FillText("3", Typeface, FontSize, (float)(358.02685546875), (float)(295.3), TextAlign, TextBaseline);
+ canvas.FillText("3", TextStyle, FontSize, (float)(319.0740051269531), (float)(227.3199951171875), TextAlign, TextBaseline);
TextBaseline = AlphaSkiaTextBaseline.Top;
TextBaseline = AlphaSkiaTextBaseline.Middle;
- Typeface = GetTypeface("Roboto", false, false);
+ TextStyle = GetTextStyle(new []{"Noto Sans", "Noto Music", "Noto Color Emoji"}, 400, false);
FontSize = (float)(13);
- Typeface = GetTypeface("Roboto", false, false);
+ TextStyle = GetTextStyle(new []{"Noto Sans", "Noto Music", "Noto Color Emoji"}, 400, false);
FontSize = (float)(11);
- canvas.FillText("", Typeface, FontSize, (float)(389.509449828346), (float)(295.3), TextAlign, TextBaseline);
- Typeface = GetTypeface("Roboto", false, false);
+ canvas.FillText("", TextStyle, FontSize, (float)(350.86581383925926), (float)(227.3199951171875), TextAlign, TextBaseline);
+ TextStyle = GetTextStyle(new []{"Noto Sans", "Noto Music", "Noto Color Emoji"}, 400, false);
FontSize = (float)(13);
- canvas.FillText("3", Typeface, FontSize, (float)(379.209645140846), (float)(295.3), TextAlign, TextBaseline);
+ canvas.FillText("3", TextStyle, FontSize, (float)(340.4298092005874), (float)(227.3199951171875), TextAlign, TextBaseline);
TextBaseline = AlphaSkiaTextBaseline.Top;
TextBaseline = AlphaSkiaTextBaseline.Middle;
- Typeface = GetTypeface("Roboto", false, false);
+ TextStyle = GetTextStyle(new []{"Noto Sans", "Noto Music", "Noto Color Emoji"}, 400, false);
FontSize = (float)(13);
- Typeface = GetTypeface("Roboto", false, false);
+ TextStyle = GetTextStyle(new []{"Noto Sans", "Noto Music", "Noto Color Emoji"}, 400, false);
FontSize = (float)(11);
- canvas.FillText("", Typeface, FontSize, (float)(410.692239500442), (float)(317.3), TextAlign, TextBaseline);
- Typeface = GetTypeface("Roboto", false, false);
+ canvas.FillText("", TextStyle, FontSize, (float)(372.2216179128936), (float)(249.3199951171875), TextAlign, TextBaseline);
+ TextStyle = GetTextStyle(new []{"Noto Sans", "Noto Music", "Noto Color Emoji"}, 400, false);
FontSize = (float)(13);
- canvas.FillText("3", Typeface, FontSize, (float)(400.392434812942), (float)(317.3), TextAlign, TextBaseline);
+ canvas.FillText("3", TextStyle, FontSize, (float)(361.7856132742217), (float)(249.3199951171875), TextAlign, TextBaseline);
TextBaseline = AlphaSkiaTextBaseline.Top;
TextBaseline = AlphaSkiaTextBaseline.Middle;
- Typeface = GetTypeface("Roboto", false, false);
- FontSize = (float)(13);
- Typeface = GetTypeface("Roboto", false, false);
- FontSize = (float)(11);
- canvas.FillText("", Typeface, FontSize, (float)(437.773050047317), (float)(317.3), TextAlign, TextBaseline);
- Typeface = GetTypeface("Roboto", false, false);
- FontSize = (float)(13);
- canvas.FillText("5", Typeface, FontSize, (float)(427.473245359817), (float)(317.3), TextAlign, TextBaseline);
- TextBaseline = AlphaSkiaTextBaseline.Top;
- canvas.FillRect((float)(471), (float)(284.3), (float)(1), (float)(54.99999999999994));
- canvas.Color = AlphaSkiaCanvas.RgbaToColor((byte)(165), (byte)(165), (byte)(165), (byte)(255));
- canvas.FillRect((float)(472), (float)(284), (float)(25.1767578125), (float)(1.04));
- canvas.FillRect((float)(505.4765625), (float)(284), (float)(32.2435302734375), (float)(1.04));
- canvas.FillRect((float)(546.0198974609375), (float)(284), (float)(72.786865234375), (float)(1.04));
- canvas.FillRect((float)(627.1065673828125), (float)(284), (float)(50.8934326171875), (float)(1.04));
- canvas.FillRect((float)(472), (float)(295), (float)(25.1767578125), (float)(1.04));
- canvas.FillRect((float)(505.4765625), (float)(295), (float)(32.2435302734375), (float)(1.04));
- canvas.FillRect((float)(546.0198974609375), (float)(295), (float)(72.786865234375), (float)(1.04));
- canvas.FillRect((float)(627.1065673828125), (float)(295), (float)(50.8934326171875), (float)(1.04));
- canvas.FillRect((float)(472), (float)(306), (float)(25.1767578125), (float)(1.04));
- canvas.FillRect((float)(505.4765625), (float)(306), (float)(32.2435302734375), (float)(1.04));
- canvas.FillRect((float)(546.0198974609375), (float)(306), (float)(32.2435302734375), (float)(1.04));
- canvas.FillRect((float)(586.563232421875), (float)(306), (float)(32.2435302734375), (float)(1.04));
- canvas.FillRect((float)(627.1065673828125), (float)(306), (float)(50.8934326171875), (float)(1.04));
- canvas.FillRect((float)(472), (float)(317), (float)(65.7200927734375), (float)(1.04));
- canvas.FillRect((float)(546.0198974609375), (float)(317), (float)(32.2435302734375), (float)(1.04));
- canvas.FillRect((float)(586.563232421875), (float)(317), (float)(32.2435302734375), (float)(1.04));
- canvas.FillRect((float)(627.1065673828125), (float)(317), (float)(50.8934326171875), (float)(1.04));
- canvas.FillRect((float)(472), (float)(328), (float)(65.7200927734375), (float)(1.04));
- canvas.FillRect((float)(546.0198974609375), (float)(328), (float)(32.2435302734375), (float)(1.04));
- canvas.FillRect((float)(586.563232421875), (float)(328), (float)(32.2435302734375), (float)(1.04));
- canvas.FillRect((float)(627.1065673828125), (float)(328), (float)(50.8934326171875), (float)(1.04));
- canvas.FillRect((float)(472), (float)(339), (float)(206), (float)(1.04));
- canvas.Color = AlphaSkiaCanvas.RgbaToColor((byte)(0), (byte)(0), (byte)(0), (byte)(255));
- canvas.BeginPath();
- canvas.MoveTo((float)(488), (float)(275.8));
- canvas.LineTo((float)(488), (float)(312.8));
- canvas.Stroke();
- canvas.BeginPath();
- canvas.MoveTo((float)(488), (float)(275.8));
- canvas.LineTo((float)(492), (float)(283.8));
- canvas.LineTo((float)(484), (float)(283.8));
+ TextStyle = GetTextStyle(new []{"Noto Sans", "Noto Music", "Noto Color Emoji"}, 400, false);
+ FontSize = (float)(13);
+ TextStyle = GetTextStyle(new []{"Noto Sans", "Noto Music", "Noto Color Emoji"}, 400, false);
+ FontSize = (float)(11);
+ canvas.FillText("", TextStyle, FontSize, (float)(399.52361605132126), (float)(249.3199951171875), TextAlign, TextBaseline);
+ TextStyle = GetTextStyle(new []{"Noto Sans", "Noto Music", "Noto Color Emoji"}, 400, false);
+ FontSize = (float)(13);
+ canvas.FillText("5", TextStyle, FontSize, (float)(389.0876114126494), (float)(249.3199951171875), TextAlign, TextBaseline);
+ TextBaseline = AlphaSkiaTextBaseline.Top;
+ canvas.Color = AlphaSkiaCanvas.RgbaToColor((byte)(153), (byte)(51), (byte)(204), (byte)(100));
+ canvas.FillRect((float)(432), (float)(216.3199951171875), (float)(1), (float)(54.99999999999994));
+ canvas.Color = AlphaSkiaCanvas.RgbaToColor((byte)(0), (byte)(0), (byte)(0), (byte)(255));
+ canvas.Color = AlphaSkiaCanvas.RgbaToColor((byte)(165), (byte)(165), (byte)(165), (byte)(255));
+ canvas.FillRect((float)(433), (float)(216), (float)(25.292007446289062), (float)(1.04));
+ canvas.FillRect((float)(466.72801208496094), (float)(216), (float)(32.061492919921875), (float)(1.04));
+ canvas.FillRect((float)(507.2255096435547), (float)(216), (float)(72.55899047851562), (float)(1.04));
+ canvas.FillRect((float)(588.2205047607422), (float)(216), (float)(36.77949523925781), (float)(1.04));
+ canvas.FillRect((float)(433), (float)(227), (float)(25.292007446289062), (float)(1.04));
+ canvas.FillRect((float)(466.72801208496094), (float)(227), (float)(32.061492919921875), (float)(1.04));
+ canvas.FillRect((float)(507.2255096435547), (float)(227), (float)(72.55899047851562), (float)(1.04));
+ canvas.FillRect((float)(588.2205047607422), (float)(227), (float)(36.77949523925781), (float)(1.04));
+ canvas.FillRect((float)(433), (float)(238), (float)(25.292007446289062), (float)(1.04));
+ canvas.FillRect((float)(466.72801208496094), (float)(238), (float)(32.061492919921875), (float)(1.04));
+ canvas.FillRect((float)(507.2255096435547), (float)(238), (float)(32.061492919921875), (float)(1.04));
+ canvas.FillRect((float)(547.7230072021484), (float)(238), (float)(32.061492919921875), (float)(1.04));
+ canvas.FillRect((float)(588.2205047607422), (float)(238), (float)(36.77949523925781), (float)(1.04));
+ canvas.FillRect((float)(433), (float)(249), (float)(65.78950500488281), (float)(1.04));
+ canvas.FillRect((float)(507.2255096435547), (float)(249), (float)(32.061492919921875), (float)(1.04));
+ canvas.FillRect((float)(547.7230072021484), (float)(249), (float)(32.061492919921875), (float)(1.04));
+ canvas.FillRect((float)(588.2205047607422), (float)(249), (float)(36.77949523925781), (float)(1.04));
+ canvas.FillRect((float)(433), (float)(260), (float)(65.78950500488281), (float)(1.04));
+ canvas.FillRect((float)(507.2255096435547), (float)(260), (float)(32.061492919921875), (float)(1.04));
+ canvas.FillRect((float)(547.7230072021484), (float)(260), (float)(32.061492919921875), (float)(1.04));
+ canvas.FillRect((float)(588.2205047607422), (float)(260), (float)(36.77949523925781), (float)(1.04));
+ canvas.FillRect((float)(433), (float)(271), (float)(192), (float)(1.04));
+ canvas.Color = AlphaSkiaCanvas.RgbaToColor((byte)(0), (byte)(0), (byte)(0), (byte)(255));
+ canvas.Color = AlphaSkiaCanvas.RgbaToColor((byte)(153), (byte)(51), (byte)(204), (byte)(100));
+ canvas.Color = AlphaSkiaCanvas.RgbaToColor((byte)(0), (byte)(0), (byte)(0), (byte)(255));
+ canvas.BeginPath();
+ canvas.MoveTo((float)(449), (float)(207.8199951171875));
+ canvas.LineTo((float)(449), (float)(244.8199951171875));
+ canvas.Stroke();
+ canvas.BeginPath();
+ canvas.MoveTo((float)(449), (float)(207.8199951171875));
+ canvas.LineTo((float)(453), (float)(215.8199951171875));
+ canvas.LineTo((float)(445), (float)(215.8199951171875));
canvas.ClosePath();
canvas.Fill();
TextBaseline = AlphaSkiaTextBaseline.Middle;
- Typeface = GetTypeface("Roboto", false, false);
+ TextStyle = GetTextStyle(new []{"Noto Sans", "Noto Music", "Noto Color Emoji"}, 400, false);
FontSize = (float)(13);
- Typeface = GetTypeface("Roboto", false, false);
+ TextStyle = GetTextStyle(new []{"Noto Sans", "Noto Music", "Noto Color Emoji"}, 400, false);
FontSize = (float)(11);
- canvas.FillText("", Typeface, FontSize, (float)(507.4765625), (float)(284.3), TextAlign, TextBaseline);
- Typeface = GetTypeface("Roboto", false, false);
+ canvas.FillText("", TextStyle, FontSize, (float)(468.72801208496094), (float)(216.3199951171875), TextAlign, TextBaseline);
+ TextStyle = GetTextStyle(new []{"Noto Sans", "Noto Music", "Noto Color Emoji"}, 400, false);
FontSize = (float)(13);
- canvas.FillText("0", Typeface, FontSize, (float)(497.1767578125), (float)(284.3), TextAlign, TextBaseline);
- Typeface = GetTypeface("Roboto", false, false);
+ canvas.FillText("0", TextStyle, FontSize, (float)(458.29200744628906), (float)(216.3199951171875), TextAlign, TextBaseline);
+ TextStyle = GetTextStyle(new []{"Noto Sans", "Noto Music", "Noto Color Emoji"}, 400, false);
FontSize = (float)(11);
- canvas.FillText("", Typeface, FontSize, (float)(507.4765625), (float)(295.3), TextAlign, TextBaseline);
- Typeface = GetTypeface("Roboto", false, false);
+ canvas.FillText("", TextStyle, FontSize, (float)(468.72801208496094), (float)(227.3199951171875), TextAlign, TextBaseline);
+ TextStyle = GetTextStyle(new []{"Noto Sans", "Noto Music", "Noto Color Emoji"}, 400, false);
FontSize = (float)(13);
- canvas.FillText("1", Typeface, FontSize, (float)(497.1767578125), (float)(295.3), TextAlign, TextBaseline);
- Typeface = GetTypeface("Roboto", false, false);
+ canvas.FillText("1", TextStyle, FontSize, (float)(458.29200744628906), (float)(227.3199951171875), TextAlign, TextBaseline);
+ TextStyle = GetTextStyle(new []{"Noto Sans", "Noto Music", "Noto Color Emoji"}, 400, false);
FontSize = (float)(11);
- canvas.FillText("", Typeface, FontSize, (float)(507.4765625), (float)(306.3), TextAlign, TextBaseline);
- Typeface = GetTypeface("Roboto", false, false);
+ canvas.FillText("", TextStyle, FontSize, (float)(468.72801208496094), (float)(238.3199951171875), TextAlign, TextBaseline);
+ TextStyle = GetTextStyle(new []{"Noto Sans", "Noto Music", "Noto Color Emoji"}, 400, false);
FontSize = (float)(13);
- canvas.FillText("0", Typeface, FontSize, (float)(497.1767578125), (float)(306.3), TextAlign, TextBaseline);
+ canvas.FillText("0", TextStyle, FontSize, (float)(458.29200744628906), (float)(238.3199951171875), TextAlign, TextBaseline);
TextBaseline = AlphaSkiaTextBaseline.Top;
- canvas.BeginRotate((float)(527.7200927734375), (float)(326.8), (float)(-90));
- canvas.FillText("\uEAA4", MusicTypeface, (float)(MusicFontSize * 1.2), (float)(0), (float)(10.799999999999999), AlphaSkiaTextAlign.Left, AlphaSkiaTextBaseline.Alphabetic);
- canvas.FillText("\uEAA4", MusicTypeface, (float)(MusicFontSize * 1.2), (float)(10.799999999999999), (float)(10.799999999999999), AlphaSkiaTextAlign.Left, AlphaSkiaTextBaseline.Alphabetic);
- canvas.FillText("\uEAA4", MusicTypeface, (float)(MusicFontSize * 1.2), (float)(21.599999999999998), (float)(10.799999999999999), AlphaSkiaTextAlign.Left, AlphaSkiaTextBaseline.Alphabetic);
- canvas.FillText("\uEAA4", MusicTypeface, (float)(MusicFontSize * 1.2), (float)(32.4), (float)(10.799999999999999), AlphaSkiaTextAlign.Left, AlphaSkiaTextBaseline.Alphabetic);
- canvas.FillText("\uEAA4", MusicTypeface, (float)(MusicFontSize * 1.2), (float)(43.199999999999996), (float)(10.799999999999999), AlphaSkiaTextAlign.Left, AlphaSkiaTextBaseline.Alphabetic);
+ canvas.BeginRotate((float)(488.7895050048828), (float)(258.8199951171875), (float)(-90));
+ canvas.FillText("\uEAA4", MusicTextStyle, (float)(MusicFontSize * 1.2), (float)(0), (float)(10.799999999999999), AlphaSkiaTextAlign.Left, AlphaSkiaTextBaseline.Alphabetic);
+ canvas.FillText("\uEAA4", MusicTextStyle, (float)(MusicFontSize * 1.2), (float)(10.799999999999999), (float)(10.799999999999999), AlphaSkiaTextAlign.Left, AlphaSkiaTextBaseline.Alphabetic);
+ canvas.FillText("\uEAA4", MusicTextStyle, (float)(MusicFontSize * 1.2), (float)(21.599999999999998), (float)(10.799999999999999), AlphaSkiaTextAlign.Left, AlphaSkiaTextBaseline.Alphabetic);
+ canvas.FillText("\uEAA4", MusicTextStyle, (float)(MusicFontSize * 1.2), (float)(32.4), (float)(10.799999999999999), AlphaSkiaTextAlign.Left, AlphaSkiaTextBaseline.Alphabetic);
+ canvas.FillText("\uEAA4", MusicTextStyle, (float)(MusicFontSize * 1.2), (float)(43.199999999999996), (float)(10.799999999999999), AlphaSkiaTextAlign.Left, AlphaSkiaTextBaseline.Alphabetic);
canvas.EndRotate();
canvas.BeginPath();
- canvas.MoveTo((float)(528), (float)(334.8));
- canvas.LineTo((float)(532), (float)(326.8));
- canvas.LineTo((float)(524), (float)(326.8));
+ canvas.MoveTo((float)(489), (float)(266.8199951171875));
+ canvas.LineTo((float)(493), (float)(258.8199951171875));
+ canvas.LineTo((float)(485), (float)(258.8199951171875));
canvas.ClosePath();
canvas.Fill();
TextBaseline = AlphaSkiaTextBaseline.Middle;
- Typeface = GetTypeface("Roboto", false, false);
+ TextStyle = GetTextStyle(new []{"Noto Sans", "Noto Music", "Noto Color Emoji"}, 400, false);
FontSize = (float)(13);
- Typeface = GetTypeface("Roboto", false, false);
+ TextStyle = GetTextStyle(new []{"Noto Sans", "Noto Music", "Noto Color Emoji"}, 400, false);
FontSize = (float)(11);
- canvas.FillText("", Typeface, FontSize, (float)(548.0198974609375), (float)(284.3), TextAlign, TextBaseline);
- Typeface = GetTypeface("Roboto", false, false);
+ canvas.FillText("", TextStyle, FontSize, (float)(509.2255096435547), (float)(216.3199951171875), TextAlign, TextBaseline);
+ TextStyle = GetTextStyle(new []{"Noto Sans", "Noto Music", "Noto Color Emoji"}, 400, false);
FontSize = (float)(13);
- canvas.FillText("0", Typeface, FontSize, (float)(537.7200927734375), (float)(284.3), TextAlign, TextBaseline);
- Typeface = GetTypeface("Roboto", false, false);
+ canvas.FillText("0", TextStyle, FontSize, (float)(498.7895050048828), (float)(216.3199951171875), TextAlign, TextBaseline);
+ TextStyle = GetTextStyle(new []{"Noto Sans", "Noto Music", "Noto Color Emoji"}, 400, false);
FontSize = (float)(11);
- canvas.FillText("", Typeface, FontSize, (float)(548.0198974609375), (float)(295.3), TextAlign, TextBaseline);
- Typeface = GetTypeface("Roboto", false, false);
+ canvas.FillText("", TextStyle, FontSize, (float)(509.2255096435547), (float)(227.3199951171875), TextAlign, TextBaseline);
+ TextStyle = GetTextStyle(new []{"Noto Sans", "Noto Music", "Noto Color Emoji"}, 400, false);
FontSize = (float)(13);
- canvas.FillText("1", Typeface, FontSize, (float)(537.7200927734375), (float)(295.3), TextAlign, TextBaseline);
- Typeface = GetTypeface("Roboto", false, false);
+ canvas.FillText("1", TextStyle, FontSize, (float)(498.7895050048828), (float)(227.3199951171875), TextAlign, TextBaseline);
+ TextStyle = GetTextStyle(new []{"Noto Sans", "Noto Music", "Noto Color Emoji"}, 400, false);
FontSize = (float)(11);
- canvas.FillText("", Typeface, FontSize, (float)(548.0198974609375), (float)(306.3), TextAlign, TextBaseline);
- Typeface = GetTypeface("Roboto", false, false);
+ canvas.FillText("", TextStyle, FontSize, (float)(509.2255096435547), (float)(238.3199951171875), TextAlign, TextBaseline);
+ TextStyle = GetTextStyle(new []{"Noto Sans", "Noto Music", "Noto Color Emoji"}, 400, false);
FontSize = (float)(13);
- canvas.FillText("0", Typeface, FontSize, (float)(537.7200927734375), (float)(306.3), TextAlign, TextBaseline);
- Typeface = GetTypeface("Roboto", false, false);
+ canvas.FillText("0", TextStyle, FontSize, (float)(498.7895050048828), (float)(238.3199951171875), TextAlign, TextBaseline);
+ TextStyle = GetTextStyle(new []{"Noto Sans", "Noto Music", "Noto Color Emoji"}, 400, false);
FontSize = (float)(11);
- canvas.FillText("", Typeface, FontSize, (float)(548.0198974609375), (float)(317.3), TextAlign, TextBaseline);
- Typeface = GetTypeface("Roboto", false, false);
+ canvas.FillText("", TextStyle, FontSize, (float)(509.2255096435547), (float)(249.3199951171875), TextAlign, TextBaseline);
+ TextStyle = GetTextStyle(new []{"Noto Sans", "Noto Music", "Noto Color Emoji"}, 400, false);
FontSize = (float)(13);
- canvas.FillText("2", Typeface, FontSize, (float)(537.7200927734375), (float)(317.3), TextAlign, TextBaseline);
- Typeface = GetTypeface("Roboto", false, false);
+ canvas.FillText("2", TextStyle, FontSize, (float)(498.7895050048828), (float)(249.3199951171875), TextAlign, TextBaseline);
+ TextStyle = GetTextStyle(new []{"Noto Sans", "Noto Music", "Noto Color Emoji"}, 400, false);
FontSize = (float)(11);
- canvas.FillText("", Typeface, FontSize, (float)(548.0198974609375), (float)(328.3), TextAlign, TextBaseline);
- Typeface = GetTypeface("Roboto", false, false);
+ canvas.FillText("", TextStyle, FontSize, (float)(509.2255096435547), (float)(260.3199951171875), TextAlign, TextBaseline);
+ TextStyle = GetTextStyle(new []{"Noto Sans", "Noto Music", "Noto Color Emoji"}, 400, false);
FontSize = (float)(13);
- canvas.FillText("3", Typeface, FontSize, (float)(537.7200927734375), (float)(328.3), TextAlign, TextBaseline);
+ canvas.FillText("3", TextStyle, FontSize, (float)(498.7895050048828), (float)(260.3199951171875), TextAlign, TextBaseline);
TextBaseline = AlphaSkiaTextBaseline.Top;
canvas.BeginPath();
- canvas.MoveTo((float)(569), (float)(297.8));
- canvas.LineTo((float)(569), (float)(334.8));
+ canvas.MoveTo((float)(530), (float)(229.8199951171875));
+ canvas.LineTo((float)(530), (float)(266.8199951171875));
canvas.Stroke();
canvas.BeginPath();
- canvas.MoveTo((float)(569), (float)(297.8));
- canvas.LineTo((float)(573), (float)(305.8));
- canvas.LineTo((float)(565), (float)(305.8));
+ canvas.MoveTo((float)(530), (float)(229.8199951171875));
+ canvas.LineTo((float)(534), (float)(237.8199951171875));
+ canvas.LineTo((float)(526), (float)(237.8199951171875));
canvas.ClosePath();
canvas.Fill();
TextBaseline = AlphaSkiaTextBaseline.Middle;
- Typeface = GetTypeface("Roboto", false, false);
+ TextStyle = GetTextStyle(new []{"Noto Sans", "Noto Music", "Noto Color Emoji"}, 400, false);
FontSize = (float)(13);
- Typeface = GetTypeface("Roboto", false, false);
+ TextStyle = GetTextStyle(new []{"Noto Sans", "Noto Music", "Noto Color Emoji"}, 400, false);
FontSize = (float)(11);
- canvas.FillText("", Typeface, FontSize, (float)(588.563232421875), (float)(306.3), TextAlign, TextBaseline);
- Typeface = GetTypeface("Roboto", false, false);
+ canvas.FillText("", TextStyle, FontSize, (float)(549.7230072021484), (float)(238.3199951171875), TextAlign, TextBaseline);
+ TextStyle = GetTextStyle(new []{"Noto Sans", "Noto Music", "Noto Color Emoji"}, 400, false);
FontSize = (float)(13);
- canvas.FillText("2", Typeface, FontSize, (float)(578.263427734375), (float)(306.3), TextAlign, TextBaseline);
- Typeface = GetTypeface("Roboto", false, false);
+ canvas.FillText("2", TextStyle, FontSize, (float)(539.2870025634766), (float)(238.3199951171875), TextAlign, TextBaseline);
+ TextStyle = GetTextStyle(new []{"Noto Sans", "Noto Music", "Noto Color Emoji"}, 400, false);
FontSize = (float)(11);
- canvas.FillText("", Typeface, FontSize, (float)(588.563232421875), (float)(317.3), TextAlign, TextBaseline);
- Typeface = GetTypeface("Roboto", false, false);
+ canvas.FillText("", TextStyle, FontSize, (float)(549.7230072021484), (float)(249.3199951171875), TextAlign, TextBaseline);
+ TextStyle = GetTextStyle(new []{"Noto Sans", "Noto Music", "Noto Color Emoji"}, 400, false);
FontSize = (float)(13);
- canvas.FillText("2", Typeface, FontSize, (float)(578.263427734375), (float)(317.3), TextAlign, TextBaseline);
- Typeface = GetTypeface("Roboto", false, false);
+ canvas.FillText("2", TextStyle, FontSize, (float)(539.2870025634766), (float)(249.3199951171875), TextAlign, TextBaseline);
+ TextStyle = GetTextStyle(new []{"Noto Sans", "Noto Music", "Noto Color Emoji"}, 400, false);
FontSize = (float)(11);
- canvas.FillText("", Typeface, FontSize, (float)(588.563232421875), (float)(328.3), TextAlign, TextBaseline);
- Typeface = GetTypeface("Roboto", false, false);
+ canvas.FillText("", TextStyle, FontSize, (float)(549.7230072021484), (float)(260.3199951171875), TextAlign, TextBaseline);
+ TextStyle = GetTextStyle(new []{"Noto Sans", "Noto Music", "Noto Color Emoji"}, 400, false);
FontSize = (float)(13);
- canvas.FillText("0", Typeface, FontSize, (float)(578.263427734375), (float)(328.3), TextAlign, TextBaseline);
+ canvas.FillText("0", TextStyle, FontSize, (float)(539.2870025634766), (float)(260.3199951171875), TextAlign, TextBaseline);
TextBaseline = AlphaSkiaTextBaseline.Top;
- canvas.BeginRotate((float)(596.8067626953125), (float)(283.8), (float)(90));
- canvas.FillText("\uEAA4", MusicTypeface, (float)(MusicFontSize * 1.2), (float)(0), (float)(10.799999999999999), AlphaSkiaTextAlign.Left, AlphaSkiaTextBaseline.Alphabetic);
- canvas.FillText("\uEAA4", MusicTypeface, (float)(MusicFontSize * 1.2), (float)(10.799999999999999), (float)(10.799999999999999), AlphaSkiaTextAlign.Left, AlphaSkiaTextBaseline.Alphabetic);
- canvas.FillText("\uEAA4", MusicTypeface, (float)(MusicFontSize * 1.2), (float)(21.599999999999998), (float)(10.799999999999999), AlphaSkiaTextAlign.Left, AlphaSkiaTextBaseline.Alphabetic);
- canvas.FillText("\uEAA4", MusicTypeface, (float)(MusicFontSize * 1.2), (float)(32.4), (float)(10.799999999999999), AlphaSkiaTextAlign.Left, AlphaSkiaTextBaseline.Alphabetic);
- canvas.FillText("\uEAA4", MusicTypeface, (float)(MusicFontSize * 1.2), (float)(43.199999999999996), (float)(10.799999999999999), AlphaSkiaTextAlign.Left, AlphaSkiaTextBaseline.Alphabetic);
+ canvas.BeginRotate((float)(569.7845001220703), (float)(215.8199951171875), (float)(90));
+ canvas.FillText("\uEAA4", MusicTextStyle, (float)(MusicFontSize * 1.2), (float)(0), (float)(10.799999999999999), AlphaSkiaTextAlign.Left, AlphaSkiaTextBaseline.Alphabetic);
+ canvas.FillText("\uEAA4", MusicTextStyle, (float)(MusicFontSize * 1.2), (float)(10.799999999999999), (float)(10.799999999999999), AlphaSkiaTextAlign.Left, AlphaSkiaTextBaseline.Alphabetic);
+ canvas.FillText("\uEAA4", MusicTextStyle, (float)(MusicFontSize * 1.2), (float)(21.599999999999998), (float)(10.799999999999999), AlphaSkiaTextAlign.Left, AlphaSkiaTextBaseline.Alphabetic);
+ canvas.FillText("\uEAA4", MusicTextStyle, (float)(MusicFontSize * 1.2), (float)(32.4), (float)(10.799999999999999), AlphaSkiaTextAlign.Left, AlphaSkiaTextBaseline.Alphabetic);
+ canvas.FillText("\uEAA4", MusicTextStyle, (float)(MusicFontSize * 1.2), (float)(43.199999999999996), (float)(10.799999999999999), AlphaSkiaTextAlign.Left, AlphaSkiaTextBaseline.Alphabetic);
canvas.EndRotate();
canvas.BeginPath();
- canvas.MoveTo((float)(597), (float)(275.8));
- canvas.LineTo((float)(601), (float)(283.8));
- canvas.LineTo((float)(593), (float)(283.8));
+ canvas.MoveTo((float)(570), (float)(207.8199951171875));
+ canvas.LineTo((float)(574), (float)(215.8199951171875));
+ canvas.LineTo((float)(566), (float)(215.8199951171875));
canvas.ClosePath();
canvas.Fill();
TextBaseline = AlphaSkiaTextBaseline.Middle;
- Typeface = GetTypeface("Roboto", false, false);
+ TextStyle = GetTextStyle(new []{"Noto Sans", "Noto Music", "Noto Color Emoji"}, 400, false);
FontSize = (float)(13);
- Typeface = GetTypeface("Roboto", false, false);
+ TextStyle = GetTextStyle(new []{"Noto Sans", "Noto Music", "Noto Color Emoji"}, 400, false);
FontSize = (float)(11);
- canvas.FillText("", Typeface, FontSize, (float)(629.1065673828125), (float)(284.3), TextAlign, TextBaseline);
- Typeface = GetTypeface("Roboto", false, false);
+ canvas.FillText("", TextStyle, FontSize, (float)(590.2205047607422), (float)(216.3199951171875), TextAlign, TextBaseline);
+ TextStyle = GetTextStyle(new []{"Noto Sans", "Noto Music", "Noto Color Emoji"}, 400, false);
FontSize = (float)(13);
- canvas.FillText("0", Typeface, FontSize, (float)(618.8067626953125), (float)(284.3), TextAlign, TextBaseline);
- Typeface = GetTypeface("Roboto", false, false);
+ canvas.FillText("0", TextStyle, FontSize, (float)(579.7845001220703), (float)(216.3199951171875), TextAlign, TextBaseline);
+ TextStyle = GetTextStyle(new []{"Noto Sans", "Noto Music", "Noto Color Emoji"}, 400, false);
FontSize = (float)(11);
- canvas.FillText("", Typeface, FontSize, (float)(629.1065673828125), (float)(295.3), TextAlign, TextBaseline);
- Typeface = GetTypeface("Roboto", false, false);
+ canvas.FillText("", TextStyle, FontSize, (float)(590.2205047607422), (float)(227.3199951171875), TextAlign, TextBaseline);
+ TextStyle = GetTextStyle(new []{"Noto Sans", "Noto Music", "Noto Color Emoji"}, 400, false);
FontSize = (float)(13);
- canvas.FillText("2", Typeface, FontSize, (float)(618.8067626953125), (float)(295.3), TextAlign, TextBaseline);
- Typeface = GetTypeface("Roboto", false, false);
+ canvas.FillText("2", TextStyle, FontSize, (float)(579.7845001220703), (float)(227.3199951171875), TextAlign, TextBaseline);
+ TextStyle = GetTextStyle(new []{"Noto Sans", "Noto Music", "Noto Color Emoji"}, 400, false);
FontSize = (float)(11);
- canvas.FillText("", Typeface, FontSize, (float)(629.1065673828125), (float)(306.3), TextAlign, TextBaseline);
- Typeface = GetTypeface("Roboto", false, false);
+ canvas.FillText("", TextStyle, FontSize, (float)(590.2205047607422), (float)(238.3199951171875), TextAlign, TextBaseline);
+ TextStyle = GetTextStyle(new []{"Noto Sans", "Noto Music", "Noto Color Emoji"}, 400, false);
FontSize = (float)(13);
- canvas.FillText("2", Typeface, FontSize, (float)(618.8067626953125), (float)(306.3), TextAlign, TextBaseline);
- Typeface = GetTypeface("Roboto", false, false);
+ canvas.FillText("2", TextStyle, FontSize, (float)(579.7845001220703), (float)(238.3199951171875), TextAlign, TextBaseline);
+ TextStyle = GetTextStyle(new []{"Noto Sans", "Noto Music", "Noto Color Emoji"}, 400, false);
FontSize = (float)(11);
- canvas.FillText("", Typeface, FontSize, (float)(629.1065673828125), (float)(317.3), TextAlign, TextBaseline);
- Typeface = GetTypeface("Roboto", false, false);
+ canvas.FillText("", TextStyle, FontSize, (float)(590.2205047607422), (float)(249.3199951171875), TextAlign, TextBaseline);
+ TextStyle = GetTextStyle(new []{"Noto Sans", "Noto Music", "Noto Color Emoji"}, 400, false);
FontSize = (float)(13);
- canvas.FillText("2", Typeface, FontSize, (float)(618.8067626953125), (float)(317.3), TextAlign, TextBaseline);
- Typeface = GetTypeface("Roboto", false, false);
+ canvas.FillText("2", TextStyle, FontSize, (float)(579.7845001220703), (float)(249.3199951171875), TextAlign, TextBaseline);
+ TextStyle = GetTextStyle(new []{"Noto Sans", "Noto Music", "Noto Color Emoji"}, 400, false);
FontSize = (float)(11);
- canvas.FillText("", Typeface, FontSize, (float)(629.1065673828125), (float)(328.3), TextAlign, TextBaseline);
- Typeface = GetTypeface("Roboto", false, false);
+ canvas.FillText("", TextStyle, FontSize, (float)(590.2205047607422), (float)(260.3199951171875), TextAlign, TextBaseline);
+ TextStyle = GetTextStyle(new []{"Noto Sans", "Noto Music", "Noto Color Emoji"}, 400, false);
FontSize = (float)(13);
- canvas.FillText("0", Typeface, FontSize, (float)(618.8067626953125), (float)(328.3), TextAlign, TextBaseline);
+ canvas.FillText("0", TextStyle, FontSize, (float)(579.7845001220703), (float)(260.3199951171875), TextAlign, TextBaseline);
TextBaseline = AlphaSkiaTextBaseline.Top;
- canvas.FillRect((float)(670), (float)(284.3), (float)(1), (float)(54.99999999999994));
- canvas.FillRect((float)(674), (float)(284.3), (float)(4), (float)(54.99999999999994));
canvas.Color = AlphaSkiaCanvas.RgbaToColor((byte)(153), (byte)(51), (byte)(204), (byte)(100));
- canvas.BeginPath();
- canvas.MoveTo((float)(92), (float)(130.1));
- canvas.LineTo((float)(92), (float)(339.3));
- canvas.Stroke();
- Typeface = GetTypeface("PT Serif", false, true);
+ canvas.FillRect((float)(624), (float)(216.3199951171875), (float)(1), (float)(54.99999999999994));
+ canvas.Color = AlphaSkiaCanvas.RgbaToColor((byte)(0), (byte)(0), (byte)(0), (byte)(255));
+ canvas.Color = AlphaSkiaCanvas.RgbaToColor((byte)(165), (byte)(165), (byte)(165), (byte)(255));
+ canvas.FillRect((float)(625), (float)(216), (float)(82), (float)(1.04));
+ canvas.FillRect((float)(625), (float)(227), (float)(82), (float)(1.04));
+ canvas.FillRect((float)(625), (float)(238), (float)(82), (float)(1.04));
+ canvas.FillRect((float)(625), (float)(249), (float)(82), (float)(1.04));
+ canvas.FillRect((float)(625), (float)(260), (float)(82), (float)(1.04));
+ canvas.FillRect((float)(625), (float)(271), (float)(82), (float)(1.04));
+ canvas.Color = AlphaSkiaCanvas.RgbaToColor((byte)(0), (byte)(0), (byte)(0), (byte)(255));
+ canvas.Color = AlphaSkiaCanvas.RgbaToColor((byte)(153), (byte)(51), (byte)(204), (byte)(100));
+ canvas.Color = AlphaSkiaCanvas.RgbaToColor((byte)(0), (byte)(0), (byte)(0), (byte)(255));
+ canvas.Color = AlphaSkiaCanvas.RgbaToColor((byte)(0), (byte)(0), (byte)(0), (byte)(100));
+ canvas.Color = AlphaSkiaCanvas.RgbaToColor((byte)(0), (byte)(0), (byte)(0), (byte)(255));
+ canvas.Color = AlphaSkiaCanvas.RgbaToColor((byte)(0), (byte)(0), (byte)(0), (byte)(100));
+ canvas.Color = AlphaSkiaCanvas.RgbaToColor((byte)(0), (byte)(0), (byte)(0), (byte)(255));
+ canvas.Color = AlphaSkiaCanvas.RgbaToColor((byte)(0), (byte)(0), (byte)(0), (byte)(100));
+ canvas.Color = AlphaSkiaCanvas.RgbaToColor((byte)(0), (byte)(0), (byte)(0), (byte)(255));
+ canvas.Color = AlphaSkiaCanvas.RgbaToColor((byte)(153), (byte)(51), (byte)(204), (byte)(100));
+ canvas.FillRect((float)(706), (float)(216.3199951171875), (float)(1), (float)(54.99999999999994));
+ canvas.Color = AlphaSkiaCanvas.RgbaToColor((byte)(0), (byte)(0), (byte)(0), (byte)(255));
+ canvas.Color = AlphaSkiaCanvas.RgbaToColor((byte)(165), (byte)(165), (byte)(165), (byte)(255));
+ canvas.FillRect((float)(707), (float)(216), (float)(163), (float)(1.04));
+ canvas.FillRect((float)(707), (float)(227), (float)(12.074005126953125), (float)(1.04));
+ canvas.FillRect((float)(727.510009765625), (float)(227), (float)(28.11599349975586), (float)(1.04));
+ canvas.FillRect((float)(764.0620079040527), (float)(227), (float)(28.11599349975586), (float)(1.04));
+ canvas.FillRect((float)(800.6140060424805), (float)(227), (float)(28.115989685058594), (float)(1.04));
+ canvas.FillRect((float)(837.1660003662109), (float)(227), (float)(32.83399963378906), (float)(1.04));
+ canvas.FillRect((float)(707), (float)(238), (float)(163), (float)(1.04));
+ canvas.FillRect((float)(707), (float)(249), (float)(163), (float)(1.04));
+ canvas.FillRect((float)(707), (float)(260), (float)(163), (float)(1.04));
+ canvas.FillRect((float)(707), (float)(271), (float)(163), (float)(1.04));
+ canvas.Color = AlphaSkiaCanvas.RgbaToColor((byte)(0), (byte)(0), (byte)(0), (byte)(255));
+ canvas.Color = AlphaSkiaCanvas.RgbaToColor((byte)(153), (byte)(51), (byte)(204), (byte)(100));
+ canvas.Color = AlphaSkiaCanvas.RgbaToColor((byte)(0), (byte)(0), (byte)(0), (byte)(255));
+ TextBaseline = AlphaSkiaTextBaseline.Middle;
+ TextStyle = GetTextStyle(new []{"Noto Sans", "Noto Music", "Noto Color Emoji"}, 400, false);
+ FontSize = (float)(13);
+ TextStyle = GetTextStyle(new []{"Noto Sans", "Noto Music", "Noto Color Emoji"}, 400, false);
+ FontSize = (float)(11);
+ canvas.FillText("", TextStyle, FontSize, (float)(729.510009765625), (float)(227.3199951171875), TextAlign, TextBaseline);
+ TextStyle = GetTextStyle(new []{"Noto Sans", "Noto Music", "Noto Color Emoji"}, 400, false);
+ FontSize = (float)(13);
+ canvas.FillText("3", TextStyle, FontSize, (float)(719.0740051269531), (float)(227.3199951171875), TextAlign, TextBaseline);
+ TextBaseline = AlphaSkiaTextBaseline.Top;
+ TextBaseline = AlphaSkiaTextBaseline.Middle;
+ TextStyle = GetTextStyle(new []{"Noto Sans", "Noto Music", "Noto Color Emoji"}, 400, false);
+ FontSize = (float)(13);
+ TextStyle = GetTextStyle(new []{"Noto Sans", "Noto Music", "Noto Color Emoji"}, 400, false);
+ FontSize = (float)(11);
+ canvas.FillText("", TextStyle, FontSize, (float)(766.0620079040527), (float)(227.3199951171875), TextAlign, TextBaseline);
+ TextStyle = GetTextStyle(new []{"Noto Sans", "Noto Music", "Noto Color Emoji"}, 400, false);
+ FontSize = (float)(13);
+ canvas.FillText("3", TextStyle, FontSize, (float)(755.6260032653809), (float)(227.3199951171875), TextAlign, TextBaseline);
+ TextBaseline = AlphaSkiaTextBaseline.Top;
+ TextBaseline = AlphaSkiaTextBaseline.Middle;
+ TextStyle = GetTextStyle(new []{"Noto Sans", "Noto Music", "Noto Color Emoji"}, 400, false);
+ FontSize = (float)(13);
+ TextStyle = GetTextStyle(new []{"Noto Sans", "Noto Music", "Noto Color Emoji"}, 400, false);
+ FontSize = (float)(11);
+ canvas.FillText("", TextStyle, FontSize, (float)(802.6140060424805), (float)(227.3199951171875), TextAlign, TextBaseline);
+ TextStyle = GetTextStyle(new []{"Noto Sans", "Noto Music", "Noto Color Emoji"}, 400, false);
+ FontSize = (float)(13);
+ canvas.FillText("3", TextStyle, FontSize, (float)(792.1780014038086), (float)(227.3199951171875), TextAlign, TextBaseline);
+ TextBaseline = AlphaSkiaTextBaseline.Top;
+ TextBaseline = AlphaSkiaTextBaseline.Middle;
+ TextStyle = GetTextStyle(new []{"Noto Sans", "Noto Music", "Noto Color Emoji"}, 400, false);
+ FontSize = (float)(13);
+ TextStyle = GetTextStyle(new []{"Noto Sans", "Noto Music", "Noto Color Emoji"}, 400, false);
+ FontSize = (float)(11);
+ canvas.FillText("", TextStyle, FontSize, (float)(839.1660041809082), (float)(227.3199951171875), TextAlign, TextBaseline);
+ TextStyle = GetTextStyle(new []{"Noto Sans", "Noto Music", "Noto Color Emoji"}, 400, false);
+ FontSize = (float)(13);
+ canvas.FillText("3", TextStyle, FontSize, (float)(828.7299995422363), (float)(227.3199951171875), TextAlign, TextBaseline);
+ TextBaseline = AlphaSkiaTextBaseline.Top;
+ canvas.Color = AlphaSkiaCanvas.RgbaToColor((byte)(153), (byte)(51), (byte)(204), (byte)(100));
+ canvas.FillRect((float)(869), (float)(216.3199951171875), (float)(1), (float)(54.99999999999994));
+ canvas.Color = AlphaSkiaCanvas.RgbaToColor((byte)(0), (byte)(0), (byte)(0), (byte)(255));
+ canvas.Color = AlphaSkiaCanvas.RgbaToColor((byte)(165), (byte)(165), (byte)(165), (byte)(255));
+ canvas.FillRect((float)(870), (float)(216), (float)(60), (float)(1.04));
+ canvas.FillRect((float)(870), (float)(227), (float)(12.074005126953125), (float)(1.04));
+ canvas.FillRect((float)(890.510009765625), (float)(227), (float)(39.489990234375), (float)(1.04));
+ canvas.FillRect((float)(870), (float)(238), (float)(60), (float)(1.04));
+ canvas.FillRect((float)(870), (float)(249), (float)(60), (float)(1.04));
+ canvas.FillRect((float)(870), (float)(260), (float)(60), (float)(1.04));
+ canvas.FillRect((float)(870), (float)(271), (float)(60), (float)(1.04));
+ canvas.Color = AlphaSkiaCanvas.RgbaToColor((byte)(0), (byte)(0), (byte)(0), (byte)(255));
+ canvas.Color = AlphaSkiaCanvas.RgbaToColor((byte)(153), (byte)(51), (byte)(204), (byte)(100));
+ canvas.Color = AlphaSkiaCanvas.RgbaToColor((byte)(0), (byte)(0), (byte)(0), (byte)(255));
+ TextBaseline = AlphaSkiaTextBaseline.Middle;
+ TextStyle = GetTextStyle(new []{"Noto Sans", "Noto Music", "Noto Color Emoji"}, 400, false);
+ FontSize = (float)(13);
+ TextStyle = GetTextStyle(new []{"Noto Sans", "Noto Music", "Noto Color Emoji"}, 400, false);
+ FontSize = (float)(11);
+ canvas.FillText("", TextStyle, FontSize, (float)(892.510009765625), (float)(227.3199951171875), TextAlign, TextBaseline);
+ TextStyle = GetTextStyle(new []{"Noto Sans", "Noto Music", "Noto Color Emoji"}, 400, false);
+ FontSize = (float)(13);
+ canvas.FillText("3", TextStyle, FontSize, (float)(882.0740051269531), (float)(227.3199951171875), TextAlign, TextBaseline);
+ TextBaseline = AlphaSkiaTextBaseline.Top;
+ canvas.Color = AlphaSkiaCanvas.RgbaToColor((byte)(153), (byte)(51), (byte)(204), (byte)(100));
+ canvas.FillRect((float)(922), (float)(216.3199951171875), (float)(1), (float)(54.99999999999994));
+ canvas.FillRect((float)(926), (float)(216.3199951171875), (float)(4), (float)(54.99999999999994));
+ canvas.Color = AlphaSkiaCanvas.RgbaToColor((byte)(0), (byte)(0), (byte)(0), (byte)(255));
+ canvas.Color = AlphaSkiaCanvas.RgbaToColor((byte)(153), (byte)(51), (byte)(204), (byte)(100));
+ TextStyle = GetTextStyle(new []{"Noto Serif", "Noto Music", "Noto Color Emoji"}, 400, true);
FontSize = (float)(12);
- canvas.FillText("s.guit.", Typeface, FontSize, (float)(50), (float)(130.1), TextAlign, TextBaseline);
- canvas.FillRect((float)(86), (float)(118.1), (float)(3), (float)(233.20000000000002));
- canvas.BeginPath();
- canvas.MoveTo((float)(86), (float)(118.1));
- canvas.BezierCurveTo((float)(86), (float)(118.1), (float)(86), (float)(118.1), (float)(98), (float)(115.1));
- canvas.BezierCurveTo((float)(92), (float)(121.1), (float)(86), (float)(121.1), (float)(86), (float)(121.1));
- canvas.ClosePath();
- canvas.Fill();
- canvas.BeginPath();
- canvas.MoveTo((float)(86), (float)(351.3));
- canvas.BezierCurveTo((float)(86), (float)(351.3), (float)(92), (float)(351.3), (float)(98), (float)(354.3));
- canvas.BezierCurveTo((float)(92), (float)(348.3), (float)(86), (float)(348.3), (float)(86), (float)(348.3));
- canvas.ClosePath();
- canvas.Fill();
+ TextBaseline = AlphaSkiaTextBaseline.Bottom;
+ TextAlign = AlphaSkiaTextAlign.Center;
+ canvas.BeginRotate((float)(42), (float)(179.6199951171875), (float)(-90.1));
+ canvas.FillText("s.guit.", TextStyle, FontSize, (float)(0), (float)(0), TextAlign, TextBaseline);
+ canvas.EndRotate();
+ TextBaseline = AlphaSkiaTextBaseline.Top;
+ TextAlign = AlphaSkiaTextAlign.Left;
+ canvas.FillRect((float)(48), (float)(123.91999511718751), (float)(1), (float)(93));
+ return canvas.EndRender();
+ }
+ private static AlphaSkiaImage? DrawMusicSheetPart4(AlphaSkiaCanvas canvas)
+ {
+ canvas.BeginRender(709, 14, (float)(RenderScale));
+ canvas.Color = AlphaSkiaCanvas.RgbaToColor((byte)(153), (byte)(204), (byte)(30), (byte)(255));
+ TextAlign = AlphaSkiaTextAlign.Left;
+ TextBaseline = AlphaSkiaTextBaseline.Top;
+ TextStyle = GetTextStyle(new []{"Noto Sans", "Noto Music", "Noto Color Emoji"}, 700, false);
+ FontSize = (float)(12);
+ TextAlign = AlphaSkiaTextAlign.Center;
+ canvas.FillText("Copyright", TextStyle, FontSize, (float)(650), (float)(0), TextAlign, TextBaseline);
+ TextAlign = AlphaSkiaTextAlign.Left;
+ TextBaseline = AlphaSkiaTextBaseline.Top;
return canvas.EndRender();
}
private static AlphaSkiaImage? DrawMusicSheetPart5(AlphaSkiaCanvas canvas)
{
- canvas.BeginRender(116, 24, (float)(RenderScale));
+ canvas.BeginRender(779, 12, (float)(RenderScale));
canvas.Color = AlphaSkiaCanvas.RgbaToColor((byte)(0), (byte)(0), (byte)(0), (byte)(255));
- Typeface = GetTypeface("Roboto", true, false);
+ TextStyle = GetTextStyle(new []{"Noto Sans", "Noto Music", "Noto Color Emoji"}, 700, false);
+ FontSize = (float)(12);
+ TextAlign = AlphaSkiaTextAlign.Left;
+ TextBaseline = AlphaSkiaTextBaseline.Top;
+ TextStyle = GetTextStyle(new []{"Noto Sans", "Noto Music", "Noto Color Emoji"}, 700, false);
FontSize = (float)(12);
+ TextAlign = AlphaSkiaTextAlign.Center;
+ canvas.FillText("rendered by alphaTab", TextStyle, FontSize, (float)(650), (float)(0), TextAlign, TextBaseline);
TextAlign = AlphaSkiaTextAlign.Left;
- canvas.FillText("rendered by alphaTab", Typeface, FontSize, (float)(0), (float)(12), TextAlign, TextBaseline);
+ TextBaseline = AlphaSkiaTextBaseline.Top;
return canvas.EndRender();
}
public static float[,] PartPositions => new float[,] {
- {(float)0, (float)0, (float)1300, (float)164}, {(float)0, (float)164, (float)1300, (float)38}, {(float)0, (float)202, (float)1300, (float)6}, {(float)0, (float)208, (float)1300, (float)373}, {(float)591.962890625, (float)581, (float)116.07421875, (float)24}
+ {(float)0, (float)35, (float)1300, (float)124}, {(float)0, (float)159, (float)1300, (float)12}, {(float)0, (float)171, (float)1300, (float)285}, {(float)0, (float)456, (float)709, (float)14}, {(float)0, (float)470, (float)779.2159881591797, (float)12}
};
public static int TotalWidth => (int)1300;
- public static int TotalHeight => (int)605;
+ public static int TotalHeight => (int)482;
public static Func[] AllParts => new[]
{
DrawMusicSheetPart1, DrawMusicSheetPart2, DrawMusicSheetPart3, DrawMusicSheetPart4, DrawMusicSheetPart5
diff --git a/test/dotnet/AlphaSkia.Test/Program.cs b/test/dotnet/AlphaSkia.Test/Program.cs
index 61fa377..9d25067 100644
--- a/test/dotnet/AlphaSkia.Test/Program.cs
+++ b/test/dotnet/AlphaSkia.Test/Program.cs
@@ -63,25 +63,25 @@ public static int Main(string[] args)
// Load all fonts for rendering
Console.WriteLine("Loading fonts");
var testDataPath = Path.Combine(repositoryRoot, "test", "test-data");
- AlphaTabGeneratedRenderTest.MusicTypeface = AlphaTabGeneratedRenderTest.LoadTypeface("Bravura", false,
- false,
- Path.Combine(testDataPath, "font", "bravura", "Bravura.ttf"));
- AlphaTabGeneratedRenderTest.LoadTypeface("Roboto", false, false,
- Path.Combine(testDataPath, "font", "roboto", "Roboto-Regular.ttf"));
- AlphaTabGeneratedRenderTest.LoadTypeface("Roboto", true, false,
- Path.Combine(testDataPath, "font", "roboto", "Roboto-Bold.ttf"));
- AlphaTabGeneratedRenderTest.LoadTypeface("Roboto", false, true,
- Path.Combine(testDataPath, "font", "roboto", "Roboto-Italic.ttf"));
- AlphaTabGeneratedRenderTest.LoadTypeface("Roboto", true, true,
- Path.Combine(testDataPath, "font", "roboto", "Roboto-BoldItalic.ttf"));
- AlphaTabGeneratedRenderTest.LoadTypeface("PT Serif", false, false,
- Path.Combine(testDataPath, "font", "ptserif", "PTSerif-Regular.ttf"));
- AlphaTabGeneratedRenderTest.LoadTypeface("PT Serif", true, false,
- Path.Combine(testDataPath, "font", "ptserif", "PTSerif-Bold.ttf"));
- AlphaTabGeneratedRenderTest.LoadTypeface("PT Serif", false, true,
- Path.Combine(testDataPath, "font", "ptserif", "PTSerif-Italic.ttf"));
- AlphaTabGeneratedRenderTest.LoadTypeface("PT Serif", true, true,
- Path.Combine(testDataPath, "font", "ptserif", "PTSerif-BoldItalic.ttf"));
+ var musicTypeface = AlphaTabGeneratedRenderTest.LoadTypeface(Path.Combine(testDataPath, "font", "bravura", "Bravura.otf"));
+
+ AlphaTabGeneratedRenderTest.MusicTextStyle = new AlphaSkiaTextStyle(
+ new[] { musicTypeface.FamilyName },
+ musicTypeface.Weight,
+ musicTypeface.IsItalic
+ );
+
+ AlphaTabGeneratedRenderTest.LoadTypeface(Path.Combine(testDataPath, "font", "noto-sans", "NotoSans-Regular.otf"));
+ AlphaTabGeneratedRenderTest.LoadTypeface(Path.Combine(testDataPath, "font", "noto-sans", "NotoSans-Bold.otf"));
+ AlphaTabGeneratedRenderTest.LoadTypeface(Path.Combine(testDataPath, "font", "noto-sans", "NotoSans-Italic.otf"));
+ AlphaTabGeneratedRenderTest.LoadTypeface(Path.Combine(testDataPath, "font", "noto-sans", "NotoSans-BoldItalic.otf"));
+ AlphaTabGeneratedRenderTest.LoadTypeface(Path.Combine(testDataPath, "font", "noto-serif", "NotoSerif-Regular.otf"));
+ AlphaTabGeneratedRenderTest.LoadTypeface(Path.Combine(testDataPath, "font", "noto-serif", "NotoSerif-Bold.otf"));
+ AlphaTabGeneratedRenderTest.LoadTypeface(Path.Combine(testDataPath, "font", "noto-serif", "NotoSerif-Italic.otf"));
+ AlphaTabGeneratedRenderTest.LoadTypeface(Path.Combine(testDataPath, "font", "noto-serif", "NotoSerif-BoldItalic.otf"));
+ AlphaTabGeneratedRenderTest.LoadTypeface(Path.Combine(testDataPath, "font", "noto-music", "NotoMusic-Regular.otf"));
+ AlphaTabGeneratedRenderTest.LoadTypeface(Path.Combine(testDataPath, "font", "noto-color-emoji", "NotoColorEmoji_WindowsCompatible.ttf"));
+
Console.WriteLine("Fonts loaded");
// render full image
diff --git a/test/java/build.gradle.kts b/test/java/build.gradle.kts
index 8072dac..65216ed 100644
--- a/test/java/build.gradle.kts
+++ b/test/java/build.gradle.kts
@@ -5,7 +5,7 @@ plugins {
}
group = "alphaTab.alphaSkia"
-version = "2.3.0-LOCAL"
+version = "2.3.135-SNAPSHOT"
// Use any latest version
var alphaSkiaVersion = version
diff --git a/test/java/gradle/wrapper/gradle-wrapper.jar b/test/java/gradle/wrapper/gradle-wrapper.jar
index 249e583..2c35211 100644
Binary files a/test/java/gradle/wrapper/gradle-wrapper.jar and b/test/java/gradle/wrapper/gradle-wrapper.jar differ
diff --git a/test/java/gradle/wrapper/gradle-wrapper.properties b/test/java/gradle/wrapper/gradle-wrapper.properties
index 33a06b2..e18bc25 100644
--- a/test/java/gradle/wrapper/gradle-wrapper.properties
+++ b/test/java/gradle/wrapper/gradle-wrapper.properties
@@ -1,6 +1,7 @@
-#Sun Oct 15 12:27:03 CEST 2023
distributionBase=GRADLE_USER_HOME
distributionPath=wrapper/dists
-distributionUrl=https\://services.gradle.org/distributions/gradle-8.2-bin.zip
+distributionUrl=https\://services.gradle.org/distributions/gradle-8.12.1-bin.zip
+networkTimeout=10000
+validateDistributionUrl=true
zipStoreBase=GRADLE_USER_HOME
zipStorePath=wrapper/dists
diff --git a/test/java/src/main/generated/alphaTab/alphaSkia/test/AlphaTabGeneratedRenderTest.java b/test/java/src/main/generated/alphaTab/alphaSkia/test/AlphaTabGeneratedRenderTest.java
index bedcfea..f5f67c5 100644
--- a/test/java/src/main/generated/alphaTab/alphaSkia/test/AlphaTabGeneratedRenderTest.java
+++ b/test/java/src/main/generated/alphaTab/alphaSkia/test/AlphaTabGeneratedRenderTest.java
@@ -5,742 +5,1069 @@
public class AlphaTabGeneratedRenderTest extends AlphaTabGeneratedRenderTestBase
{
private static AlphaSkiaImage drawMusicSheetPart1(AlphaSkiaCanvas canvas) {
- canvas.beginRender(1300, 164, (float)(getRenderScale()));
+ canvas.beginRender(1300, 124, (float)(getRenderScale()));
canvas.setColor(AlphaSkiaCanvas.rgbaToColor((byte)(153), (byte)(204), (byte)(30), (byte)(255)));
setTextAlign(AlphaSkiaTextAlign.CENTER);
- setTypeface(getTypeface("PT Serif", false, false));
+ setTextStyle(getTextStyle(new String[]{"Noto Serif", "Noto Music", "Noto Color Emoji"}, 400, false));
setFontSize((float)(32));
setTextAlign(AlphaSkiaTextAlign.CENTER);
- canvas.fillText("Title", getTypeface(), getFontSize(), (float)(650), (float)(40), getTextAlign(), getTextBaseline());
+ canvas.fillText("Title", getTextStyle(), getFontSize(), (float)(650), (float)(0), getTextAlign(), getTextBaseline());
setTextAlign(AlphaSkiaTextAlign.CENTER);
- setTypeface(getTypeface("PT Serif", false, false));
+ setTextBaseline(AlphaSkiaTextBaseline.TOP);
+ setTextStyle(getTextStyle(new String[]{"Noto Serif", "Noto Music", "Noto Color Emoji"}, 400, false));
setFontSize((float)(20));
setTextAlign(AlphaSkiaTextAlign.CENTER);
- canvas.fillText("Subtitle", getTypeface(), getFontSize(), (float)(650), (float)(72), getTextAlign(), getTextBaseline());
+ canvas.fillText("Subtitle", getTextStyle(), getFontSize(), (float)(650), (float)(32), getTextAlign(), getTextBaseline());
setTextAlign(AlphaSkiaTextAlign.CENTER);
- setTypeface(getTypeface("PT Serif", false, false));
+ setTextBaseline(AlphaSkiaTextBaseline.TOP);
+ setTextStyle(getTextStyle(new String[]{"Noto Serif", "Noto Music", "Noto Color Emoji"}, 400, false));
setFontSize((float)(20));
setTextAlign(AlphaSkiaTextAlign.CENTER);
- canvas.fillText("Artist", getTypeface(), getFontSize(), (float)(650), (float)(92), getTextAlign(), getTextBaseline());
+ canvas.fillText("Artist", getTextStyle(), getFontSize(), (float)(650), (float)(52), getTextAlign(), getTextBaseline());
setTextAlign(AlphaSkiaTextAlign.CENTER);
- setTypeface(getTypeface("PT Serif", false, false));
+ setTextBaseline(AlphaSkiaTextBaseline.TOP);
+ setTextStyle(getTextStyle(new String[]{"Noto Serif", "Noto Music", "Noto Color Emoji"}, 400, false));
setFontSize((float)(20));
setTextAlign(AlphaSkiaTextAlign.CENTER);
- canvas.fillText("Album", getTypeface(), getFontSize(), (float)(650), (float)(112), getTextAlign(), getTextBaseline());
+ canvas.fillText("Album", getTextStyle(), getFontSize(), (float)(650), (float)(72), getTextAlign(), getTextBaseline());
setTextAlign(AlphaSkiaTextAlign.CENTER);
- setTypeface(getTypeface("PT Serif", false, false));
+ setTextBaseline(AlphaSkiaTextBaseline.TOP);
+ setTextStyle(getTextStyle(new String[]{"Noto Serif", "Noto Music", "Noto Color Emoji"}, 400, false));
setFontSize((float)(15));
- setTextAlign(AlphaSkiaTextAlign.RIGHT);
- canvas.fillText("Music by Music", getTypeface(), getFontSize(), (float)(1260), (float)(132), getTextAlign(), getTextBaseline());
+ setTextAlign(AlphaSkiaTextAlign.LEFT);
+ canvas.fillText("Words by Words", getTextStyle(), getFontSize(), (float)(35), (float)(92), getTextAlign(), getTextBaseline());
setTextAlign(AlphaSkiaTextAlign.CENTER);
- setTypeface(getTypeface("PT Serif", false, false));
+ setTextBaseline(AlphaSkiaTextBaseline.TOP);
+ setTextStyle(getTextStyle(new String[]{"Noto Serif", "Noto Music", "Noto Color Emoji"}, 400, false));
setFontSize((float)(15));
- setTextAlign(AlphaSkiaTextAlign.LEFT);
- canvas.fillText("Words by Words", getTypeface(), getFontSize(), (float)(40), (float)(132), getTextAlign(), getTextBaseline());
+ setTextAlign(AlphaSkiaTextAlign.RIGHT);
+ canvas.fillText("Music by Music", getTextStyle(), getFontSize(), (float)(1265), (float)(92), getTextAlign(), getTextBaseline());
setTextAlign(AlphaSkiaTextAlign.CENTER);
+ setTextBaseline(AlphaSkiaTextBaseline.TOP);
return canvas.endRender();
}
private static AlphaSkiaImage drawMusicSheetPart2(AlphaSkiaCanvas canvas) {
- canvas.beginRender(1300, 38, (float)(getRenderScale()));
+ canvas.beginRender(1300, 12, (float)(getRenderScale()));
setTextAlign(AlphaSkiaTextAlign.CENTER);
- setTypeface(getTypeface("PT Serif", false, true));
+ setTextBaseline(AlphaSkiaTextBaseline.MIDDLE);
+ setTextStyle(getTextStyle(new String[]{"Noto Serif", "Noto Music", "Noto Color Emoji"}, 400, true));
setFontSize((float)(12));
setTextAlign(AlphaSkiaTextAlign.LEFT);
- canvas.fillText("Guitar Standard Tuning", getTypeface(), getFontSize(), (float)(40), (float)(3), getTextAlign(), getTextBaseline());
+ canvas.fillText("Guitar Standard Tuning", getTextStyle(), getFontSize(), (float)(35), (float)(4.5659942626953125), getTextAlign(), getTextBaseline());
setTextAlign(AlphaSkiaTextAlign.CENTER);
+ setTextBaseline(AlphaSkiaTextBaseline.MIDDLE);
return canvas.endRender();
}
private static AlphaSkiaImage drawMusicSheetPart3(AlphaSkiaCanvas canvas) {
- canvas.beginRender(1300, 6, (float)(getRenderScale()));
- setTextAlign(AlphaSkiaTextAlign.CENTER);
- return canvas.endRender();
- }
- private static AlphaSkiaImage drawMusicSheetPart4(AlphaSkiaCanvas canvas) {
- canvas.beginRender(1300, 373, (float)(getRenderScale()));
+ canvas.beginRender(1300, 285, (float)(getRenderScale()));
canvas.setColor(AlphaSkiaCanvas.rgbaToColor((byte)(0), (byte)(0), (byte)(0), (byte)(255)));
setTextAlign(AlphaSkiaTextAlign.LEFT);
- setTypeface(getTypeface("PT Serif", true, false));
+ setTextStyle(getTextStyle(new String[]{"Noto Serif", "Noto Music", "Noto Color Emoji"}, 700, false));
setFontSize((float)(14));
- canvas.fillText("\uE1D5", getMusicTypeface(), (float)(getMusicFontSize() * 0.75), (float)(156.6767578125), (float)(40), AlphaSkiaTextAlign.LEFT, AlphaSkiaTextBaseline.ALPHABETIC);
- canvas.fillText("= 120", getTypeface(), getFontSize(), (float)(169.1767578125), (float)(27), getTextAlign(), getTextBaseline());
- canvas.setColor(AlphaSkiaCanvas.rgbaToColor((byte)(165), (byte)(165), (byte)(165), (byte)(255)));
- canvas.fillRect((float)(92), (float)(130), (float)(254), (float)(1.04));
- canvas.fillRect((float)(92), (float)(139), (float)(254), (float)(1.04));
- canvas.fillRect((float)(92), (float)(148), (float)(254), (float)(1.04));
- canvas.fillRect((float)(92), (float)(157), (float)(254), (float)(1.04));
- canvas.fillRect((float)(92), (float)(166), (float)(254), (float)(1.04));
- canvas.setColor(AlphaSkiaCanvas.rgbaToColor((byte)(0), (byte)(0), (byte)(0), (byte)(255)));
- canvas.fillText("\uE050", getMusicTypeface(), (float)(getMusicFontSize() * 1), (float)(94), (float)(157.52), AlphaSkiaTextAlign.LEFT, AlphaSkiaTextBaseline.ALPHABETIC);
- canvas.fillText("\uE084", getMusicTypeface(), (float)(getMusicFontSize() * 1), (float)(127), (float)(139), AlphaSkiaTextAlign.LEFT, AlphaSkiaTextBaseline.ALPHABETIC);
- canvas.fillText("\uE084", getMusicTypeface(), (float)(getMusicFontSize() * 1), (float)(127), (float)(157), AlphaSkiaTextAlign.LEFT, AlphaSkiaTextBaseline.ALPHABETIC);
+ setTextBaseline(AlphaSkiaTextBaseline.TOP);
+ canvas.fillText("\uE1D5", getMusicTextStyle(), (float)(getMusicFontSize() * 0.5), (float)(117.79200744628906), (float)(25), AlphaSkiaTextAlign.CENTER, AlphaSkiaTextBaseline.ALPHABETIC);
+ canvas.fillText("= 120", getTextStyle(), getFontSize(), (float)(125.79200744628906), (float)(12), getTextAlign(), getTextBaseline());
+ setTextStyle(getTextStyle(new String[]{"Noto Serif", "Noto Music", "Noto Color Emoji"}, 400, true));
+ setFontSize((float)(12));
+ setTextAlign(AlphaSkiaTextAlign.LEFT);
+ canvas.fillText("Fallback Font (\uD834\uDD1E \uD834\uDD5F \uD83C\uDFB8 \uD83E\uDD18\uD83C\uDFFB)", getTextStyle(), getFontSize(), (float)(885.7920074462891), (float)(30), getTextAlign(), getTextBaseline());
+ setTextAlign(AlphaSkiaTextAlign.LEFT);
+ setTextBaseline(AlphaSkiaTextBaseline.TOP);
+ canvas.fillText("\uEAA4", getMusicTextStyle(), (float)(getMusicFontSize() * 1.2), (float)(722.7920074462891), (float)(53.5199951171875), AlphaSkiaTextAlign.LEFT, AlphaSkiaTextBaseline.ALPHABETIC);
+ canvas.fillText("\uEAA4", getMusicTextStyle(), (float)(getMusicFontSize() * 1.2), (float)(733.592007446289), (float)(53.5199951171875), AlphaSkiaTextAlign.LEFT, AlphaSkiaTextBaseline.ALPHABETIC);
+ canvas.fillText("\uEAA4", getMusicTextStyle(), (float)(getMusicFontSize() * 1.2), (float)(744.3920074462891), (float)(53.5199951171875), AlphaSkiaTextAlign.LEFT, AlphaSkiaTextBaseline.ALPHABETIC);
+ canvas.fillText("\uEAA4", getMusicTextStyle(), (float)(getMusicFontSize() * 1.2), (float)(755.192007446289), (float)(53.5199951171875), AlphaSkiaTextAlign.LEFT, AlphaSkiaTextBaseline.ALPHABETIC);
+ canvas.fillText("\uEAA4", getMusicTextStyle(), (float)(getMusicFontSize() * 1.2), (float)(765.9920074462891), (float)(53.5199951171875), AlphaSkiaTextAlign.LEFT, AlphaSkiaTextBaseline.ALPHABETIC);
+ canvas.fillText("\uEAA4", getMusicTextStyle(), (float)(getMusicFontSize() * 1.2), (float)(776.7920074462891), (float)(53.5199951171875), AlphaSkiaTextAlign.LEFT, AlphaSkiaTextBaseline.ALPHABETIC);
+ canvas.fillText("\uEAA4", getMusicTextStyle(), (float)(getMusicFontSize() * 1.2), (float)(787.592007446289), (float)(53.5199951171875), AlphaSkiaTextAlign.LEFT, AlphaSkiaTextBaseline.ALPHABETIC);
+ canvas.fillText("\uEAA4", getMusicTextStyle(), (float)(getMusicFontSize() * 1.2), (float)(798.3920074462891), (float)(53.5199951171875), AlphaSkiaTextAlign.LEFT, AlphaSkiaTextBaseline.ALPHABETIC);
+ canvas.fillText("\uEAA4", getMusicTextStyle(), (float)(getMusicFontSize() * 1.2), (float)(809.192007446289), (float)(53.5199951171875), AlphaSkiaTextAlign.LEFT, AlphaSkiaTextBaseline.ALPHABETIC);
+ canvas.fillText("\uEAA4", getMusicTextStyle(), (float)(getMusicFontSize() * 1.2), (float)(819.9920074462891), (float)(53.5199951171875), AlphaSkiaTextAlign.LEFT, AlphaSkiaTextBaseline.ALPHABETIC);
+ canvas.setColor(AlphaSkiaCanvas.rgbaToColor((byte)(165), (byte)(165), (byte)(165), (byte)(255)));
+ canvas.fillRect((float)(48), (float)(87), (float)(259), (float)(1.04));
+ canvas.fillRect((float)(48), (float)(96), (float)(259), (float)(1.04));
+ canvas.fillRect((float)(48), (float)(105), (float)(259), (float)(1.04));
+ canvas.fillRect((float)(48), (float)(114), (float)(259), (float)(1.04));
+ canvas.fillRect((float)(48), (float)(123), (float)(259), (float)(1.04));
+ canvas.setColor(AlphaSkiaCanvas.rgbaToColor((byte)(0), (byte)(0), (byte)(0), (byte)(255)));
+ canvas.setColor(AlphaSkiaCanvas.rgbaToColor((byte)(153), (byte)(51), (byte)(204), (byte)(100)));
+ canvas.fillRect((float)(48), (float)(87.9199951171875), (float)(1), (float)(36.000000000000014));
+ canvas.setColor(AlphaSkiaCanvas.rgbaToColor((byte)(0), (byte)(0), (byte)(0), (byte)(255)));
+ canvas.fillText("\uE050", getMusicTextStyle(), (float)(getMusicFontSize() * 1), (float)(55), (float)(115.43999511718751), AlphaSkiaTextAlign.LEFT, AlphaSkiaTextBaseline.ALPHABETIC);
+ canvas.fillText("\uE084", getMusicTextStyle(), (float)(getMusicFontSize() * 1), (float)(88), (float)(96.91999511718751), AlphaSkiaTextAlign.LEFT, AlphaSkiaTextBaseline.ALPHABETIC);
+ canvas.fillText("\uE084", getMusicTextStyle(), (float)(getMusicFontSize() * 1), (float)(88), (float)(114.91999511718751), AlphaSkiaTextAlign.LEFT, AlphaSkiaTextBaseline.ALPHABETIC);
canvas.setColor(AlphaSkiaCanvas.rgbaToColor((byte)(200), (byte)(0), (byte)(0), (byte)(255)));
- setTypeface(getTypeface("Roboto", false, false));
+ setTextBaseline(AlphaSkiaTextBaseline.TOP);
+ setTextStyle(getTextStyle(new String[]{"Noto Sans", "Noto Music", "Noto Color Emoji"}, 400, false));
setFontSize((float)(11));
- canvas.fillText("1", getTypeface(), getFontSize(), (float)(141), (float)(118.75), getTextAlign(), getTextBaseline());
+ canvas.fillText("1", getTextStyle(), getFontSize(), (float)(102), (float)(76.5699951171875), getTextAlign(), getTextBaseline());
+ setTextBaseline(AlphaSkiaTextBaseline.TOP);
+ canvas.setColor(AlphaSkiaCanvas.rgbaToColor((byte)(0), (byte)(0), (byte)(0), (byte)(255)));
+ canvas.setColor(AlphaSkiaCanvas.rgbaToColor((byte)(165), (byte)(165), (byte)(165), (byte)(255)));
+ canvas.setColor(AlphaSkiaCanvas.rgbaToColor((byte)(0), (byte)(0), (byte)(0), (byte)(255)));
+ canvas.fillText("\uE0A4", getMusicTextStyle(), (float)(getMusicFontSize() * 1), (float)(113.29200744628906), (float)(105.91999511718751), AlphaSkiaTextAlign.LEFT, AlphaSkiaTextBaseline.ALPHABETIC);
+ canvas.fillText("\uE272", getMusicTextStyle(), (float)(getMusicFontSize() * 0.75), (float)(134.16515249341666), (float)(105.91999511718751), AlphaSkiaTextAlign.LEFT, AlphaSkiaTextBaseline.ALPHABETIC);
+ canvas.setColor(AlphaSkiaCanvas.rgbaToColor((byte)(165), (byte)(165), (byte)(165), (byte)(255)));
canvas.setColor(AlphaSkiaCanvas.rgbaToColor((byte)(0), (byte)(0), (byte)(0), (byte)(255)));
- canvas.fillText("\uE0A4", getMusicTypeface(), (float)(getMusicFontSize() * 1), (float)(152.1767578125), (float)(148), AlphaSkiaTextAlign.LEFT, AlphaSkiaTextBaseline.ALPHABETIC);
- canvas.fillText("\uE272", getMusicTypeface(), (float)(getMusicFontSize() * 0.75), (float)(172.86069962449085), (float)(148), AlphaSkiaTextAlign.LEFT, AlphaSkiaTextBaseline.ALPHABETIC);
- canvas.fillText("\uE0A4", getMusicTypeface(), (float)(getMusicFontSize() * 0.75), (float)(180.86069962449085), (float)(149), AlphaSkiaTextAlign.LEFT, AlphaSkiaTextBaseline.ALPHABETIC);
+ canvas.fillText("\uE0A4", getMusicTextStyle(), (float)(getMusicFontSize() * 0.75), (float)(142.16515249341666), (float)(106.91999511718751), AlphaSkiaTextAlign.LEFT, AlphaSkiaTextBaseline.ALPHABETIC);
canvas.beginPath();
- canvas.moveTo((float)(156.6767578125), (float)(144));
- canvas.lineTo((float)(170.855110706305), (float)(133.50723450810483));
- canvas.lineTo((float)(184.23569962449085), (float)(145));
+ canvas.moveTo((float)(117.79200744628906), (float)(101.91999511718751));
+ canvas.lineTo((float)(132.06224568469634), (float)(91.42713139901187));
+ canvas.lineTo((float)(145.54015249341666), (float)(102.91999511718751));
canvas.stroke();
- canvas.fillText("\uE0A4", getMusicTypeface(), (float)(getMusicFontSize() * 1), (float)(192.23569962449085), (float)(148), AlphaSkiaTextAlign.LEFT, AlphaSkiaTextBaseline.ALPHABETIC);
- canvas.fillText("\uE0A4", getMusicTypeface(), (float)(getMusicFontSize() * 0.75), (float)(220.91964143648167), (float)(144.5), AlphaSkiaTextAlign.LEFT, AlphaSkiaTextBaseline.ALPHABETIC);
+ canvas.setColor(AlphaSkiaCanvas.rgbaToColor((byte)(165), (byte)(165), (byte)(165), (byte)(255)));
+ canvas.setColor(AlphaSkiaCanvas.rgbaToColor((byte)(0), (byte)(0), (byte)(0), (byte)(255)));
+ canvas.fillText("\uE0A4", getMusicTextStyle(), (float)(getMusicFontSize() * 1), (float)(153.54015249341666), (float)(105.91999511718751), AlphaSkiaTextAlign.LEFT, AlphaSkiaTextBaseline.ALPHABETIC);
+ canvas.setColor(AlphaSkiaCanvas.rgbaToColor((byte)(165), (byte)(165), (byte)(165), (byte)(255)));
+ canvas.setColor(AlphaSkiaCanvas.rgbaToColor((byte)(0), (byte)(0), (byte)(0), (byte)(255)));
+ canvas.fillText("\uE0A4", getMusicTextStyle(), (float)(getMusicFontSize() * 0.75), (float)(182.41329754054425), (float)(102.41999511718751), AlphaSkiaTextAlign.LEFT, AlphaSkiaTextBaseline.ALPHABETIC);
canvas.beginPath();
- canvas.moveTo((float)(196.73569962449085), (float)(144));
- canvas.lineTo((float)(209.12929655256082), (float)(131.33765133817155));
- canvas.lineTo((float)(224.29464143648167), (float)(140.5));
+ canvas.moveTo((float)(158.04015249341666), (float)(101.91999511718751));
+ canvas.lineTo((float)(170.53765225640643), (float)(89.25646922337823));
+ canvas.lineTo((float)(185.78829754054425), (float)(98.41999511718751));
canvas.stroke();
- canvas.fillText("\uE0A4", getMusicTypeface(), (float)(getMusicFontSize() * 1), (float)(232.29464143648167), (float)(148), AlphaSkiaTextAlign.LEFT, AlphaSkiaTextBaseline.ALPHABETIC);
- canvas.fillText("\uE262", getMusicTypeface(), (float)(getMusicFontSize() * 0.75), (float)(252.9785832484725), (float)(143.5), AlphaSkiaTextAlign.LEFT, AlphaSkiaTextBaseline.ALPHABETIC);
- canvas.fillText("\uE0A4", getMusicTypeface(), (float)(getMusicFontSize() * 0.75), (float)(260.9785832484725), (float)(144.5), AlphaSkiaTextAlign.LEFT, AlphaSkiaTextBaseline.ALPHABETIC);
+ canvas.setColor(AlphaSkiaCanvas.rgbaToColor((byte)(165), (byte)(165), (byte)(165), (byte)(255)));
+ canvas.setColor(AlphaSkiaCanvas.rgbaToColor((byte)(0), (byte)(0), (byte)(0), (byte)(255)));
+ canvas.fillText("\uE0A4", getMusicTextStyle(), (float)(getMusicFontSize() * 1), (float)(193.78829754054425), (float)(105.91999511718751), AlphaSkiaTextAlign.LEFT, AlphaSkiaTextBaseline.ALPHABETIC);
+ canvas.fillText("\uE262", getMusicTextStyle(), (float)(getMusicFontSize() * 0.75), (float)(214.66144258767181), (float)(101.41999511718751), AlphaSkiaTextAlign.LEFT, AlphaSkiaTextBaseline.ALPHABETIC);
+ canvas.setColor(AlphaSkiaCanvas.rgbaToColor((byte)(165), (byte)(165), (byte)(165), (byte)(255)));
+ canvas.setColor(AlphaSkiaCanvas.rgbaToColor((byte)(0), (byte)(0), (byte)(0), (byte)(255)));
+ canvas.fillText("\uE0A4", getMusicTextStyle(), (float)(getMusicFontSize() * 0.75), (float)(222.66144258767181), (float)(102.41999511718751), AlphaSkiaTextAlign.LEFT, AlphaSkiaTextBaseline.ALPHABETIC);
canvas.beginPath();
- canvas.moveTo((float)(236.79464143648167), (float)(144));
- canvas.lineTo((float)(249.1882383645516), (float)(131.33765133817155));
- canvas.lineTo((float)(264.3535832484725), (float)(140.5));
+ canvas.moveTo((float)(198.28829754054425), (float)(101.91999511718751));
+ canvas.lineTo((float)(210.785797303534), (float)(89.25646922337823));
+ canvas.lineTo((float)(226.03644258767181), (float)(98.41999511718751));
canvas.stroke();
- canvas.fillText("\uE0A4", getMusicTypeface(), (float)(getMusicFontSize() * 1), (float)(272.3535832484725), (float)(148), AlphaSkiaTextAlign.LEFT, AlphaSkiaTextBaseline.ALPHABETIC);
- canvas.fillText("\uE0A4", getMusicTypeface(), (float)(getMusicFontSize() * 0.75), (float)(294.5517916242362), (float)(140), AlphaSkiaTextAlign.LEFT, AlphaSkiaTextBaseline.ALPHABETIC);
+ canvas.setColor(AlphaSkiaCanvas.rgbaToColor((byte)(165), (byte)(165), (byte)(165), (byte)(255)));
+ canvas.setColor(AlphaSkiaCanvas.rgbaToColor((byte)(0), (byte)(0), (byte)(0), (byte)(255)));
+ canvas.fillText("\uE0A4", getMusicTextStyle(), (float)(getMusicFontSize() * 1), (float)(234.03644258767181), (float)(105.91999511718751), AlphaSkiaTextAlign.LEFT, AlphaSkiaTextBaseline.ALPHABETIC);
+ canvas.setColor(AlphaSkiaCanvas.rgbaToColor((byte)(165), (byte)(165), (byte)(165), (byte)(255)));
+ canvas.setColor(AlphaSkiaCanvas.rgbaToColor((byte)(0), (byte)(0), (byte)(0), (byte)(255)));
+ canvas.fillText("\uE0A4", getMusicTextStyle(), (float)(getMusicFontSize() * 0.75), (float)(256.3932212938359), (float)(97.91999511718751), AlphaSkiaTextAlign.LEFT, AlphaSkiaTextBaseline.ALPHABETIC);
canvas.beginPath();
- canvas.moveTo((float)(276.8535832484725), (float)(152));
- canvas.lineTo((float)(292.1060513036615), (float)(156.93783819474976));
- canvas.lineTo((float)(297.9267916242362), (float)(142));
+ canvas.moveTo((float)(238.53644258767181), (float)(109.91999511718751));
+ canvas.lineTo((float)(253.8393894465572), (float)(114.87145189181567));
+ canvas.lineTo((float)(259.7682212938359), (float)(99.91999511718751));
canvas.stroke();
- canvas.fillText("\uE0A4", getMusicTypeface(), (float)(getMusicFontSize() * 1), (float)(305.9267916242362), (float)(148), AlphaSkiaTextAlign.LEFT, AlphaSkiaTextBaseline.ALPHABETIC);
- canvas.fillText("\uE262", getMusicTypeface(), (float)(getMusicFontSize() * 0.75), (float)(324.625), (float)(139), AlphaSkiaTextAlign.LEFT, AlphaSkiaTextBaseline.ALPHABETIC);
- canvas.fillText("\uE0A4", getMusicTypeface(), (float)(getMusicFontSize() * 0.75), (float)(332.625), (float)(140), AlphaSkiaTextAlign.LEFT, AlphaSkiaTextBaseline.ALPHABETIC);
+ canvas.setColor(AlphaSkiaCanvas.rgbaToColor((byte)(165), (byte)(165), (byte)(165), (byte)(255)));
+ canvas.setColor(AlphaSkiaCanvas.rgbaToColor((byte)(0), (byte)(0), (byte)(0), (byte)(255)));
+ canvas.fillText("\uE0A4", getMusicTextStyle(), (float)(getMusicFontSize() * 1), (float)(267.7682212938359), (float)(105.91999511718751), AlphaSkiaTextAlign.LEFT, AlphaSkiaTextBaseline.ALPHABETIC);
+ canvas.fillText("\uE262", getMusicTextStyle(), (float)(getMusicFontSize() * 0.75), (float)(286.625), (float)(96.91999511718751), AlphaSkiaTextAlign.LEFT, AlphaSkiaTextBaseline.ALPHABETIC);
+ canvas.setColor(AlphaSkiaCanvas.rgbaToColor((byte)(165), (byte)(165), (byte)(165), (byte)(255)));
+ canvas.setColor(AlphaSkiaCanvas.rgbaToColor((byte)(0), (byte)(0), (byte)(0), (byte)(255)));
+ canvas.fillText("\uE0A4", getMusicTextStyle(), (float)(getMusicFontSize() * 0.75), (float)(294.625), (float)(97.91999511718751), AlphaSkiaTextAlign.LEFT, AlphaSkiaTextBaseline.ALPHABETIC);
canvas.beginPath();
- canvas.moveTo((float)(310.4267916242362), (float)(152));
- canvas.lineTo((float)(327.2193887931866), (float)(157.24460932567123));
- canvas.lineTo((float)(336), (float)(142));
+ canvas.moveTo((float)(272.2682212938359), (float)(109.91999511718751));
+ canvas.lineTo((float)(289.1186648773111), (float)(115.17296188710615));
+ canvas.lineTo((float)(298), (float)(99.91999511718751));
canvas.stroke();
- canvas.fillRect((float)(345), (float)(130.1), (float)(1), (float)(36));
+ canvas.setColor(AlphaSkiaCanvas.rgbaToColor((byte)(153), (byte)(51), (byte)(204), (byte)(100)));
+ canvas.fillRect((float)(306), (float)(87.9199951171875), (float)(1), (float)(36.000000000000014));
+ canvas.setColor(AlphaSkiaCanvas.rgbaToColor((byte)(0), (byte)(0), (byte)(0), (byte)(255)));
canvas.setLineWidth((float)(0.96));
canvas.beginPath();
- canvas.moveTo((float)(152.1767578125), (float)(148));
- canvas.lineTo((float)(152.1767578125), (float)(175));
+ canvas.moveTo((float)(113.29200744628906), (float)(105.91999511718751));
+ canvas.lineTo((float)(113.29200744628906), (float)(132.9199951171875));
canvas.stroke();
canvas.setLineWidth((float)(1));
canvas.setLineWidth((float)(0.96));
canvas.beginPath();
- canvas.moveTo((float)(192.23569962449085), (float)(148));
- canvas.lineTo((float)(192.23569962449085), (float)(175));
+ canvas.moveTo((float)(153.54015249341666), (float)(105.91999511718751));
+ canvas.lineTo((float)(153.54015249341666), (float)(132.9199951171875));
canvas.stroke();
canvas.setLineWidth((float)(1));
canvas.setLineWidth((float)(0.96));
canvas.beginPath();
- canvas.moveTo((float)(232.29464143648167), (float)(148));
- canvas.lineTo((float)(232.29464143648167), (float)(175));
+ canvas.moveTo((float)(193.78829754054425), (float)(105.91999511718751));
+ canvas.lineTo((float)(193.78829754054425), (float)(132.9199951171875));
canvas.stroke();
canvas.setLineWidth((float)(1));
canvas.setLineWidth((float)(0.96));
canvas.beginPath();
- canvas.moveTo((float)(281.3535832484725), (float)(148));
- canvas.lineTo((float)(281.3535832484725), (float)(121));
+ canvas.moveTo((float)(243.03644258767181), (float)(105.91999511718751));
+ canvas.lineTo((float)(243.03644258767181), (float)(78.91999511718751));
canvas.stroke();
canvas.setLineWidth((float)(1));
canvas.beginPath();
- canvas.moveTo((float)(281.3535832484725), (float)(121));
- canvas.lineTo((float)(314.9267916242362), (float)(121));
- canvas.lineTo((float)(314.9267916242362), (float)(125));
- canvas.lineTo((float)(281.3535832484725), (float)(125));
+ canvas.moveTo((float)(243.03644258767181), (float)(78.91999511718751));
+ canvas.lineTo((float)(276.7682212938359), (float)(78.91999511718751));
+ canvas.lineTo((float)(276.7682212938359), (float)(82.91999511718751));
+ canvas.lineTo((float)(243.03644258767181), (float)(82.91999511718751));
canvas.closePath();
canvas.fill();
canvas.setLineWidth((float)(0.96));
canvas.beginPath();
- canvas.moveTo((float)(314.9267916242362), (float)(148));
- canvas.lineTo((float)(314.9267916242362), (float)(121));
+ canvas.moveTo((float)(276.7682212938359), (float)(105.91999511718751));
+ canvas.lineTo((float)(276.7682212938359), (float)(78.91999511718751));
canvas.stroke();
canvas.setLineWidth((float)(1));
canvas.setColor(AlphaSkiaCanvas.rgbaToColor((byte)(0), (byte)(0), (byte)(0), (byte)(100)));
canvas.setColor(AlphaSkiaCanvas.rgbaToColor((byte)(165), (byte)(165), (byte)(165), (byte)(255)));
- canvas.fillRect((float)(346), (float)(130), (float)(126), (float)(1.04));
- canvas.fillRect((float)(346), (float)(139), (float)(126), (float)(1.04));
- canvas.fillRect((float)(346), (float)(148), (float)(126), (float)(1.04));
- canvas.fillRect((float)(346), (float)(157), (float)(126), (float)(1.04));
- canvas.fillRect((float)(346), (float)(166), (float)(126), (float)(1.04));
+ canvas.fillRect((float)(307), (float)(87), (float)(126), (float)(1.04));
+ canvas.fillRect((float)(307), (float)(96), (float)(126), (float)(1.04));
+ canvas.fillRect((float)(307), (float)(105), (float)(126), (float)(1.04));
+ canvas.fillRect((float)(307), (float)(114), (float)(126), (float)(1.04));
+ canvas.fillRect((float)(307), (float)(123), (float)(126), (float)(1.04));
+ canvas.setColor(AlphaSkiaCanvas.rgbaToColor((byte)(0), (byte)(0), (byte)(0), (byte)(100)));
+ canvas.setColor(AlphaSkiaCanvas.rgbaToColor((byte)(0), (byte)(0), (byte)(0), (byte)(255)));
+ canvas.setColor(AlphaSkiaCanvas.rgbaToColor((byte)(0), (byte)(0), (byte)(0), (byte)(100)));
+ canvas.setColor(AlphaSkiaCanvas.rgbaToColor((byte)(0), (byte)(0), (byte)(0), (byte)(255)));
+ canvas.setColor(AlphaSkiaCanvas.rgbaToColor((byte)(153), (byte)(51), (byte)(204), (byte)(100)));
canvas.setColor(AlphaSkiaCanvas.rgbaToColor((byte)(0), (byte)(0), (byte)(0), (byte)(255)));
canvas.setColor(AlphaSkiaCanvas.rgbaToColor((byte)(200), (byte)(0), (byte)(0), (byte)(255)));
- setTypeface(getTypeface("Roboto", false, false));
+ setTextBaseline(AlphaSkiaTextBaseline.TOP);
+ setTextStyle(getTextStyle(new String[]{"Noto Sans", "Noto Music", "Noto Color Emoji"}, 400, false));
setFontSize((float)(11));
- canvas.fillText("2", getTypeface(), getFontSize(), (float)(346), (float)(118.75), getTextAlign(), getTextBaseline());
+ canvas.fillText("2", getTextStyle(), getFontSize(), (float)(307), (float)(76.5699951171875), getTextAlign(), getTextBaseline());
+ setTextBaseline(AlphaSkiaTextBaseline.TOP);
+ canvas.setColor(AlphaSkiaCanvas.rgbaToColor((byte)(0), (byte)(0), (byte)(0), (byte)(255)));
+ canvas.setColor(AlphaSkiaCanvas.rgbaToColor((byte)(165), (byte)(165), (byte)(165), (byte)(255)));
+ canvas.setColor(AlphaSkiaCanvas.rgbaToColor((byte)(0), (byte)(0), (byte)(0), (byte)(255)));
+ canvas.fillText("\uE0A4", getMusicTextStyle(), (float)(getMusicFontSize() * 1), (float)(318.29200744628906), (float)(96.91999511718751), AlphaSkiaTextAlign.LEFT, AlphaSkiaTextBaseline.ALPHABETIC);
+ canvas.setColor(AlphaSkiaCanvas.rgbaToColor((byte)(165), (byte)(165), (byte)(165), (byte)(255)));
+ canvas.setColor(AlphaSkiaCanvas.rgbaToColor((byte)(0), (byte)(0), (byte)(0), (byte)(255)));
+ canvas.fillText("\uE0A4", getMusicTextStyle(), (float)(getMusicFontSize() * 1), (float)(339.6478115199233), (float)(96.91999511718751), AlphaSkiaTextAlign.LEFT, AlphaSkiaTextBaseline.ALPHABETIC);
+ canvas.setColor(AlphaSkiaCanvas.rgbaToColor((byte)(165), (byte)(165), (byte)(165), (byte)(255)));
+ canvas.setColor(AlphaSkiaCanvas.rgbaToColor((byte)(0), (byte)(0), (byte)(0), (byte)(255)));
+ canvas.fillText("\uE0A4", getMusicTextStyle(), (float)(getMusicFontSize() * 1), (float)(361.00361559355764), (float)(119.41999511718751), AlphaSkiaTextAlign.LEFT, AlphaSkiaTextBaseline.ALPHABETIC);
+ canvas.setColor(AlphaSkiaCanvas.rgbaToColor((byte)(165), (byte)(165), (byte)(165), (byte)(255)));
+ canvas.setColor(AlphaSkiaCanvas.rgbaToColor((byte)(0), (byte)(0), (byte)(0), (byte)(255)));
+ canvas.fillText("\uE0A3", getMusicTextStyle(), (float)(getMusicFontSize() * 1), (float)(388.3056137319853), (float)(114.91999511718751), AlphaSkiaTextAlign.LEFT, AlphaSkiaTextBaseline.ALPHABETIC);
+ canvas.setColor(AlphaSkiaCanvas.rgbaToColor((byte)(153), (byte)(51), (byte)(204), (byte)(100)));
+ canvas.fillRect((float)(432), (float)(87.9199951171875), (float)(1), (float)(36.000000000000014));
canvas.setColor(AlphaSkiaCanvas.rgbaToColor((byte)(0), (byte)(0), (byte)(0), (byte)(255)));
- canvas.fillText("\uE0A4", getMusicTypeface(), (float)(getMusicFontSize() * 1), (float)(357.1767578125), (float)(139), AlphaSkiaTextAlign.LEFT, AlphaSkiaTextBaseline.ALPHABETIC);
- canvas.fillText("\uE0A4", getMusicTypeface(), (float)(getMusicFontSize() * 1), (float)(378.359547484596), (float)(139), AlphaSkiaTextAlign.LEFT, AlphaSkiaTextBaseline.ALPHABETIC);
- canvas.fillText("\uE0A4", getMusicTypeface(), (float)(getMusicFontSize() * 1), (float)(399.542337156692), (float)(161.5), AlphaSkiaTextAlign.LEFT, AlphaSkiaTextBaseline.ALPHABETIC);
- canvas.fillText("\uE0A3", getMusicTypeface(), (float)(getMusicFontSize() * 1), (float)(426.623147703567), (float)(157), AlphaSkiaTextAlign.LEFT, AlphaSkiaTextBaseline.ALPHABETIC);
- canvas.fillRect((float)(471), (float)(130.1), (float)(1), (float)(36));
canvas.setLineWidth((float)(0.96));
canvas.beginPath();
- canvas.moveTo((float)(366.1767578125), (float)(139));
- canvas.lineTo((float)(366.1767578125), (float)(112));
+ canvas.moveTo((float)(327.29200744628906), (float)(96.91999511718751));
+ canvas.lineTo((float)(327.29200744628906), (float)(69.91999511718751));
canvas.stroke();
canvas.setLineWidth((float)(1));
canvas.beginPath();
- canvas.moveTo((float)(366.1767578125), (float)(112));
- canvas.lineTo((float)(387.359547484596), (float)(117));
- canvas.lineTo((float)(387.359547484596), (float)(121));
- canvas.lineTo((float)(366.1767578125), (float)(116));
+ canvas.moveTo((float)(327.29200744628906), (float)(69.91999511718751));
+ canvas.lineTo((float)(348.6478115199233), (float)(74.91999511718751));
+ canvas.lineTo((float)(348.6478115199233), (float)(78.91999511718751));
+ canvas.lineTo((float)(327.29200744628906), (float)(73.91999511718751));
canvas.closePath();
canvas.fill();
canvas.beginPath();
- canvas.moveTo((float)(366.1767578125), (float)(118));
- canvas.lineTo((float)(387.359547484596), (float)(123));
- canvas.lineTo((float)(387.359547484596), (float)(127));
- canvas.lineTo((float)(366.1767578125), (float)(122));
+ canvas.moveTo((float)(327.29200744628906), (float)(75.91999511718751));
+ canvas.lineTo((float)(348.6478115199233), (float)(80.91999511718751));
+ canvas.lineTo((float)(348.6478115199233), (float)(84.91999511718751));
+ canvas.lineTo((float)(327.29200744628906), (float)(79.91999511718751));
canvas.closePath();
canvas.fill();
canvas.setLineWidth((float)(0.96));
canvas.beginPath();
- canvas.moveTo((float)(387.359547484596), (float)(139));
- canvas.lineTo((float)(387.359547484596), (float)(117));
+ canvas.moveTo((float)(348.6478115199233), (float)(96.91999511718751));
+ canvas.lineTo((float)(348.6478115199233), (float)(74.91999511718751));
canvas.stroke();
canvas.setLineWidth((float)(1));
canvas.beginPath();
- canvas.moveTo((float)(387.359547484596), (float)(117));
- canvas.lineTo((float)(408.542337156692), (float)(122));
- canvas.lineTo((float)(408.542337156692), (float)(126));
- canvas.lineTo((float)(387.359547484596), (float)(121));
+ canvas.moveTo((float)(348.6478115199233), (float)(74.91999511718751));
+ canvas.lineTo((float)(370.00361559355764), (float)(79.91999511718751));
+ canvas.lineTo((float)(370.00361559355764), (float)(83.91999511718751));
+ canvas.lineTo((float)(348.6478115199233), (float)(78.91999511718751));
canvas.closePath();
canvas.fill();
canvas.setLineWidth((float)(0.96));
canvas.beginPath();
- canvas.moveTo((float)(408.542337156692), (float)(161.5));
- canvas.lineTo((float)(408.542337156692), (float)(122));
+ canvas.moveTo((float)(370.00361559355764), (float)(119.41999511718751));
+ canvas.lineTo((float)(370.00361559355764), (float)(79.91999511718751));
canvas.stroke();
canvas.setLineWidth((float)(1));
canvas.setLineWidth((float)(0.96));
canvas.beginPath();
- canvas.moveTo((float)(435.623147703567), (float)(130));
- canvas.lineTo((float)(435.623147703567), (float)(157));
+ canvas.moveTo((float)(397.3056137319853), (float)(87.91999511718751));
+ canvas.lineTo((float)(397.3056137319853), (float)(114.91999511718751));
canvas.stroke();
canvas.setLineWidth((float)(1));
canvas.setColor(AlphaSkiaCanvas.rgbaToColor((byte)(0), (byte)(0), (byte)(0), (byte)(100)));
canvas.setColor(AlphaSkiaCanvas.rgbaToColor((byte)(0), (byte)(0), (byte)(0), (byte)(255)));
setTextAlign(AlphaSkiaTextAlign.CENTER);
setTextBaseline(AlphaSkiaTextBaseline.MIDDLE);
- setTypeface(getTypeface("PT Serif", false, true));
+ setTextStyle(getTextStyle(new String[]{"Noto Serif", "Noto Music", "Noto Color Emoji"}, 400, true));
setFontSize((float)(12));
canvas.beginPath();
- canvas.moveTo((float)(366.1767578125), (float)(102));
- canvas.lineTo((float)(366.1767578125), (float)(97));
- canvas.lineTo((float)(394.7559555656507), (float)(104));
+ canvas.moveTo((float)(327.29200744628906), (float)(59));
+ canvas.lineTo((float)(327.29200744628906), (float)(54));
+ canvas.lineTo((float)(355.9448143122817), (float)(62));
canvas.stroke();
canvas.beginPath();
- canvas.moveTo((float)(407.04394995041633), (float)(107));
- canvas.lineTo((float)(435.623147703567), (float)(115));
- canvas.lineTo((float)(435.623147703567), (float)(120));
+ canvas.moveTo((float)(368.65280686599266), (float)(65));
+ canvas.lineTo((float)(397.3056137319853), (float)(72));
+ canvas.lineTo((float)(397.3056137319853), (float)(77));
canvas.stroke();
- canvas.fillText("3", getTypeface(), getFontSize(), (float)(400.8999527580335), (float)(106), getTextAlign(), getTextBaseline());
+ canvas.fillText("3", getTextStyle(), getFontSize(), (float)(362.2988105891372), (float)(63.91999511718751), getTextAlign(), getTextBaseline());
setTextAlign(AlphaSkiaTextAlign.LEFT);
setTextBaseline(AlphaSkiaTextBaseline.TOP);
canvas.setColor(AlphaSkiaCanvas.rgbaToColor((byte)(165), (byte)(165), (byte)(165), (byte)(255)));
- canvas.fillRect((float)(472), (float)(130), (float)(206), (float)(1.04));
- canvas.fillRect((float)(472), (float)(139), (float)(206), (float)(1.04));
- canvas.fillRect((float)(472), (float)(148), (float)(206), (float)(1.04));
- canvas.fillRect((float)(472), (float)(157), (float)(206), (float)(1.04));
- canvas.fillRect((float)(472), (float)(166), (float)(206), (float)(1.04));
+ canvas.fillRect((float)(433), (float)(87), (float)(192), (float)(1.04));
+ canvas.fillRect((float)(433), (float)(96), (float)(192), (float)(1.04));
+ canvas.fillRect((float)(433), (float)(105), (float)(192), (float)(1.04));
+ canvas.fillRect((float)(433), (float)(114), (float)(192), (float)(1.04));
+ canvas.fillRect((float)(433), (float)(123), (float)(192), (float)(1.04));
+ canvas.setColor(AlphaSkiaCanvas.rgbaToColor((byte)(0), (byte)(0), (byte)(0), (byte)(255)));
+ canvas.setColor(AlphaSkiaCanvas.rgbaToColor((byte)(153), (byte)(51), (byte)(204), (byte)(100)));
canvas.setColor(AlphaSkiaCanvas.rgbaToColor((byte)(0), (byte)(0), (byte)(0), (byte)(255)));
canvas.setColor(AlphaSkiaCanvas.rgbaToColor((byte)(200), (byte)(0), (byte)(0), (byte)(255)));
- setTypeface(getTypeface("Roboto", false, false));
- setFontSize((float)(11));
- canvas.fillText("3", getTypeface(), getFontSize(), (float)(472), (float)(118.75), getTextAlign(), getTextBaseline());
- canvas.setColor(AlphaSkiaCanvas.rgbaToColor((byte)(0), (byte)(0), (byte)(0), (byte)(255)));
- canvas.fillText("\uE0A4", getMusicTypeface(), (float)(getMusicFontSize() * 1), (float)(496.32666015625), (float)(157), AlphaSkiaTextAlign.LEFT, AlphaSkiaTextBaseline.ALPHABETIC);
- canvas.fillText("\uE0A4", getMusicTypeface(), (float)(getMusicFontSize() * 1), (float)(496.32666015625), (float)(143.5), AlphaSkiaTextAlign.LEFT, AlphaSkiaTextBaseline.ALPHABETIC);
- canvas.fillText("\uE0A4", getMusicTypeface(), (float)(getMusicFontSize() * 1), (float)(496.32666015625), (float)(134.5), AlphaSkiaTextAlign.LEFT, AlphaSkiaTextBaseline.ALPHABETIC);
- canvas.beginRotate((float)(527.8699951171875), (float)(172), (float)(-90));
- canvas.fillText("\uEAA4", getMusicTypeface(), (float)(getMusicFontSize() * 1.2), (float)(0), (float)(10.799999999999999), AlphaSkiaTextAlign.LEFT, AlphaSkiaTextBaseline.ALPHABETIC);
- canvas.fillText("\uEAA4", getMusicTypeface(), (float)(getMusicFontSize() * 1.2), (float)(10.799999999999999), (float)(10.799999999999999), AlphaSkiaTextAlign.LEFT, AlphaSkiaTextBaseline.ALPHABETIC);
- canvas.fillText("\uEAA4", getMusicTypeface(), (float)(getMusicFontSize() * 1.2), (float)(21.599999999999998), (float)(10.799999999999999), AlphaSkiaTextAlign.LEFT, AlphaSkiaTextBaseline.ALPHABETIC);
- canvas.fillText("\uEAA4", getMusicTypeface(), (float)(getMusicFontSize() * 1.2), (float)(32.4), (float)(10.799999999999999), AlphaSkiaTextAlign.LEFT, AlphaSkiaTextBaseline.ALPHABETIC);
+ setTextBaseline(AlphaSkiaTextBaseline.TOP);
+ setTextStyle(getTextStyle(new String[]{"Noto Sans", "Noto Music", "Noto Color Emoji"}, 400, false));
+ setFontSize((float)(11));
+ canvas.fillText("3", getTextStyle(), getFontSize(), (float)(433), (float)(76.5699951171875), getTextAlign(), getTextBaseline());
+ setTextBaseline(AlphaSkiaTextBaseline.TOP);
+ canvas.setColor(AlphaSkiaCanvas.rgbaToColor((byte)(0), (byte)(0), (byte)(0), (byte)(255)));
+ canvas.setColor(AlphaSkiaCanvas.rgbaToColor((byte)(165), (byte)(165), (byte)(165), (byte)(255)));
+ canvas.setColor(AlphaSkiaCanvas.rgbaToColor((byte)(0), (byte)(0), (byte)(0), (byte)(255)));
+ canvas.fillText("\uE0A4", getMusicTextStyle(), (float)(getMusicFontSize() * 1), (float)(457.510009765625), (float)(114.91999511718751), AlphaSkiaTextAlign.LEFT, AlphaSkiaTextBaseline.ALPHABETIC);
+ canvas.fillText("\uE0A4", getMusicTextStyle(), (float)(getMusicFontSize() * 1), (float)(457.510009765625), (float)(101.41999511718751), AlphaSkiaTextAlign.LEFT, AlphaSkiaTextBaseline.ALPHABETIC);
+ canvas.fillText("\uE0A4", getMusicTextStyle(), (float)(getMusicFontSize() * 1), (float)(457.510009765625), (float)(92.4199951171875), AlphaSkiaTextAlign.LEFT, AlphaSkiaTextBaseline.ALPHABETIC);
+ canvas.beginRotate((float)(489.00750732421875), (float)(129.9199951171875), (float)(-90));
+ canvas.fillText("\uEAA4", getMusicTextStyle(), (float)(getMusicFontSize() * 1.2), (float)(0), (float)(10.799999999999999), AlphaSkiaTextAlign.LEFT, AlphaSkiaTextBaseline.ALPHABETIC);
+ canvas.fillText("\uEAA4", getMusicTextStyle(), (float)(getMusicFontSize() * 1.2), (float)(10.799999999999999), (float)(10.799999999999999), AlphaSkiaTextAlign.LEFT, AlphaSkiaTextBaseline.ALPHABETIC);
+ canvas.fillText("\uEAA4", getMusicTextStyle(), (float)(getMusicFontSize() * 1.2), (float)(21.599999999999998), (float)(10.799999999999999), AlphaSkiaTextAlign.LEFT, AlphaSkiaTextBaseline.ALPHABETIC);
+ canvas.fillText("\uEAA4", getMusicTextStyle(), (float)(getMusicFontSize() * 1.2), (float)(32.4), (float)(10.799999999999999), AlphaSkiaTextAlign.LEFT, AlphaSkiaTextBaseline.ALPHABETIC);
canvas.endRotate();
canvas.beginPath();
- canvas.moveTo((float)(527.8699951171875), (float)(180));
- canvas.lineTo((float)(531.8699951171875), (float)(172));
- canvas.lineTo((float)(523.8699951171875), (float)(172));
+ canvas.moveTo((float)(489.00750732421875), (float)(137.9199951171875));
+ canvas.lineTo((float)(493.00750732421875), (float)(129.9199951171875));
+ canvas.lineTo((float)(485.00750732421875), (float)(129.9199951171875));
canvas.closePath();
canvas.fill();
canvas.setColor(AlphaSkiaCanvas.rgbaToColor((byte)(165), (byte)(165), (byte)(165), (byte)(255)));
- canvas.fillRect((float)(533.8699951171875), (float)(175), (float)(15), (float)(1));
- canvas.setColor(AlphaSkiaCanvas.rgbaToColor((byte)(0), (byte)(0), (byte)(0), (byte)(255)));
- canvas.fillText("\uE0A4", getMusicTypeface(), (float)(getMusicFontSize() * 1), (float)(536.8699951171875), (float)(175), AlphaSkiaTextAlign.LEFT, AlphaSkiaTextBaseline.ALPHABETIC);
- canvas.fillText("\uE0A4", getMusicTypeface(), (float)(getMusicFontSize() * 1), (float)(536.8699951171875), (float)(166), AlphaSkiaTextAlign.LEFT, AlphaSkiaTextBaseline.ALPHABETIC);
- canvas.fillText("\uE0A4", getMusicTypeface(), (float)(getMusicFontSize() * 1), (float)(536.8699951171875), (float)(157), AlphaSkiaTextAlign.LEFT, AlphaSkiaTextBaseline.ALPHABETIC);
- canvas.fillText("\uE0A4", getMusicTypeface(), (float)(getMusicFontSize() * 1), (float)(536.8699951171875), (float)(143.5), AlphaSkiaTextAlign.LEFT, AlphaSkiaTextBaseline.ALPHABETIC);
- canvas.fillText("\uE0A4", getMusicTypeface(), (float)(getMusicFontSize() * 1), (float)(536.8699951171875), (float)(134.5), AlphaSkiaTextAlign.LEFT, AlphaSkiaTextBaseline.ALPHABETIC);
- canvas.setColor(AlphaSkiaCanvas.rgbaToColor((byte)(165), (byte)(165), (byte)(165), (byte)(255)));
- canvas.fillRect((float)(574.413330078125), (float)(175), (float)(15), (float)(1));
- canvas.fillRect((float)(574.413330078125), (float)(184), (float)(15), (float)(1));
- canvas.setColor(AlphaSkiaCanvas.rgbaToColor((byte)(0), (byte)(0), (byte)(0), (byte)(255)));
- canvas.fillText("\uE0A4", getMusicTypeface(), (float)(getMusicFontSize() * 1), (float)(577.413330078125), (float)(184), AlphaSkiaTextAlign.LEFT, AlphaSkiaTextBaseline.ALPHABETIC);
- canvas.fillText("\uE0A4", getMusicTypeface(), (float)(getMusicFontSize() * 1), (float)(577.413330078125), (float)(166), AlphaSkiaTextAlign.LEFT, AlphaSkiaTextBaseline.ALPHABETIC);
- canvas.fillText("\uE0A4", getMusicTypeface(), (float)(getMusicFontSize() * 1), (float)(577.413330078125), (float)(152.5), AlphaSkiaTextAlign.LEFT, AlphaSkiaTextBaseline.ALPHABETIC);
- canvas.beginRotate((float)(596.9566650390625), (float)(137.5), (float)(90));
- canvas.fillText("\uEAA4", getMusicTypeface(), (float)(getMusicFontSize() * 1.2), (float)(0), (float)(10.799999999999999), AlphaSkiaTextAlign.LEFT, AlphaSkiaTextBaseline.ALPHABETIC);
- canvas.fillText("\uEAA4", getMusicTypeface(), (float)(getMusicFontSize() * 1.2), (float)(10.799999999999999), (float)(10.799999999999999), AlphaSkiaTextAlign.LEFT, AlphaSkiaTextBaseline.ALPHABETIC);
- canvas.fillText("\uEAA4", getMusicTypeface(), (float)(getMusicFontSize() * 1.2), (float)(21.599999999999998), (float)(10.799999999999999), AlphaSkiaTextAlign.LEFT, AlphaSkiaTextBaseline.ALPHABETIC);
- canvas.fillText("\uEAA4", getMusicTypeface(), (float)(getMusicFontSize() * 1.2), (float)(32.4), (float)(10.799999999999999), AlphaSkiaTextAlign.LEFT, AlphaSkiaTextBaseline.ALPHABETIC);
- canvas.fillText("\uEAA4", getMusicTypeface(), (float)(getMusicFontSize() * 1.2), (float)(43.199999999999996), (float)(10.799999999999999), AlphaSkiaTextAlign.LEFT, AlphaSkiaTextBaseline.ALPHABETIC);
+ canvas.fillRect((float)(495.00750732421875), (float)(132), (float)(15), (float)(1.04));
+ canvas.setColor(AlphaSkiaCanvas.rgbaToColor((byte)(0), (byte)(0), (byte)(0), (byte)(255)));
+ canvas.fillText("\uE0A4", getMusicTextStyle(), (float)(getMusicFontSize() * 1), (float)(498.00750732421875), (float)(132.9199951171875), AlphaSkiaTextAlign.LEFT, AlphaSkiaTextBaseline.ALPHABETIC);
+ canvas.fillText("\uE0A4", getMusicTextStyle(), (float)(getMusicFontSize() * 1), (float)(498.00750732421875), (float)(123.91999511718751), AlphaSkiaTextAlign.LEFT, AlphaSkiaTextBaseline.ALPHABETIC);
+ canvas.fillText("\uE0A4", getMusicTextStyle(), (float)(getMusicFontSize() * 1), (float)(498.00750732421875), (float)(114.91999511718751), AlphaSkiaTextAlign.LEFT, AlphaSkiaTextBaseline.ALPHABETIC);
+ canvas.fillText("\uE0A4", getMusicTextStyle(), (float)(getMusicFontSize() * 1), (float)(498.00750732421875), (float)(101.41999511718751), AlphaSkiaTextAlign.LEFT, AlphaSkiaTextBaseline.ALPHABETIC);
+ canvas.fillText("\uE0A4", getMusicTextStyle(), (float)(getMusicFontSize() * 1), (float)(498.00750732421875), (float)(92.4199951171875), AlphaSkiaTextAlign.LEFT, AlphaSkiaTextBaseline.ALPHABETIC);
+ canvas.setColor(AlphaSkiaCanvas.rgbaToColor((byte)(165), (byte)(165), (byte)(165), (byte)(255)));
+ canvas.fillRect((float)(535.5050048828125), (float)(132), (float)(15), (float)(1.04));
+ canvas.fillRect((float)(535.5050048828125), (float)(141), (float)(15), (float)(1.04));
+ canvas.setColor(AlphaSkiaCanvas.rgbaToColor((byte)(0), (byte)(0), (byte)(0), (byte)(255)));
+ canvas.fillText("\uE0A4", getMusicTextStyle(), (float)(getMusicFontSize() * 1), (float)(538.5050048828125), (float)(141.9199951171875), AlphaSkiaTextAlign.LEFT, AlphaSkiaTextBaseline.ALPHABETIC);
+ canvas.fillText("\uE0A4", getMusicTextStyle(), (float)(getMusicFontSize() * 1), (float)(538.5050048828125), (float)(123.91999511718751), AlphaSkiaTextAlign.LEFT, AlphaSkiaTextBaseline.ALPHABETIC);
+ canvas.fillText("\uE0A4", getMusicTextStyle(), (float)(getMusicFontSize() * 1), (float)(538.5050048828125), (float)(110.41999511718751), AlphaSkiaTextAlign.LEFT, AlphaSkiaTextBaseline.ALPHABETIC);
+ canvas.beginRotate((float)(558.0025024414062), (float)(95.41999511718751), (float)(90));
+ canvas.fillText("\uEAA4", getMusicTextStyle(), (float)(getMusicFontSize() * 1.2), (float)(0), (float)(10.799999999999999), AlphaSkiaTextAlign.LEFT, AlphaSkiaTextBaseline.ALPHABETIC);
+ canvas.fillText("\uEAA4", getMusicTextStyle(), (float)(getMusicFontSize() * 1.2), (float)(10.799999999999999), (float)(10.799999999999999), AlphaSkiaTextAlign.LEFT, AlphaSkiaTextBaseline.ALPHABETIC);
+ canvas.fillText("\uEAA4", getMusicTextStyle(), (float)(getMusicFontSize() * 1.2), (float)(21.599999999999998), (float)(10.799999999999999), AlphaSkiaTextAlign.LEFT, AlphaSkiaTextBaseline.ALPHABETIC);
+ canvas.fillText("\uEAA4", getMusicTextStyle(), (float)(getMusicFontSize() * 1.2), (float)(32.4), (float)(10.799999999999999), AlphaSkiaTextAlign.LEFT, AlphaSkiaTextBaseline.ALPHABETIC);
+ canvas.fillText("\uEAA4", getMusicTextStyle(), (float)(getMusicFontSize() * 1.2), (float)(43.199999999999996), (float)(10.799999999999999), AlphaSkiaTextAlign.LEFT, AlphaSkiaTextBaseline.ALPHABETIC);
canvas.endRotate();
canvas.beginPath();
- canvas.moveTo((float)(596.9566650390625), (float)(129.5));
- canvas.lineTo((float)(600.9566650390625), (float)(137.5));
- canvas.lineTo((float)(592.9566650390625), (float)(137.5));
+ canvas.moveTo((float)(558.0025024414062), (float)(87.41999511718751));
+ canvas.lineTo((float)(562.0025024414062), (float)(95.41999511718751));
+ canvas.lineTo((float)(554.0025024414062), (float)(95.41999511718751));
canvas.closePath();
canvas.fill();
- canvas.fillText("\uE262", getMusicTypeface(), (float)(getMusicFontSize() * 1), (float)(607.9566650390625), (float)(143.5), AlphaSkiaTextAlign.LEFT, AlphaSkiaTextBaseline.ALPHABETIC);
- canvas.setColor(AlphaSkiaCanvas.rgbaToColor((byte)(165), (byte)(165), (byte)(165), (byte)(255)));
- canvas.fillRect((float)(614.9566650390625), (float)(175), (float)(15), (float)(1));
- canvas.fillRect((float)(614.9566650390625), (float)(184), (float)(15), (float)(1));
- canvas.setColor(AlphaSkiaCanvas.rgbaToColor((byte)(0), (byte)(0), (byte)(0), (byte)(255)));
- canvas.fillText("\uE0A4", getMusicTypeface(), (float)(getMusicFontSize() * 1), (float)(617.9566650390625), (float)(184), AlphaSkiaTextAlign.LEFT, AlphaSkiaTextBaseline.ALPHABETIC);
- canvas.fillText("\uE0A4", getMusicTypeface(), (float)(getMusicFontSize() * 1), (float)(617.9566650390625), (float)(166), AlphaSkiaTextAlign.LEFT, AlphaSkiaTextBaseline.ALPHABETIC);
- canvas.fillText("\uE0A4", getMusicTypeface(), (float)(getMusicFontSize() * 1), (float)(617.9566650390625), (float)(152.5), AlphaSkiaTextAlign.LEFT, AlphaSkiaTextBaseline.ALPHABETIC);
- canvas.fillText("\uE0A4", getMusicTypeface(), (float)(getMusicFontSize() * 1), (float)(617.9566650390625), (float)(143.5), AlphaSkiaTextAlign.LEFT, AlphaSkiaTextBaseline.ALPHABETIC);
- canvas.fillText("\uE0A4", getMusicTypeface(), (float)(getMusicFontSize() * 1), (float)(617.9566650390625), (float)(134.5), AlphaSkiaTextAlign.LEFT, AlphaSkiaTextBaseline.ALPHABETIC);
- canvas.fillRect((float)(670), (float)(130.1), (float)(1), (float)(36));
- canvas.fillRect((float)(674), (float)(130.1), (float)(4), (float)(36));
+ canvas.fillText("\uE262", getMusicTextStyle(), (float)(getMusicFontSize() * 1), (float)(569.0025024414062), (float)(101.41999511718751), AlphaSkiaTextAlign.LEFT, AlphaSkiaTextBaseline.ALPHABETIC);
+ canvas.setColor(AlphaSkiaCanvas.rgbaToColor((byte)(165), (byte)(165), (byte)(165), (byte)(255)));
+ canvas.fillRect((float)(576.0025024414062), (float)(132), (float)(15), (float)(1.04));
+ canvas.fillRect((float)(576.0025024414062), (float)(141), (float)(15), (float)(1.04));
+ canvas.setColor(AlphaSkiaCanvas.rgbaToColor((byte)(0), (byte)(0), (byte)(0), (byte)(255)));
+ canvas.fillText("\uE0A4", getMusicTextStyle(), (float)(getMusicFontSize() * 1), (float)(579.0025024414062), (float)(141.9199951171875), AlphaSkiaTextAlign.LEFT, AlphaSkiaTextBaseline.ALPHABETIC);
+ canvas.fillText("\uE0A4", getMusicTextStyle(), (float)(getMusicFontSize() * 1), (float)(579.0025024414062), (float)(123.91999511718751), AlphaSkiaTextAlign.LEFT, AlphaSkiaTextBaseline.ALPHABETIC);
+ canvas.fillText("\uE0A4", getMusicTextStyle(), (float)(getMusicFontSize() * 1), (float)(579.0025024414062), (float)(110.41999511718751), AlphaSkiaTextAlign.LEFT, AlphaSkiaTextBaseline.ALPHABETIC);
+ canvas.fillText("\uE0A4", getMusicTextStyle(), (float)(getMusicFontSize() * 1), (float)(579.0025024414062), (float)(101.41999511718751), AlphaSkiaTextAlign.LEFT, AlphaSkiaTextBaseline.ALPHABETIC);
+ canvas.fillText("\uE0A4", getMusicTextStyle(), (float)(getMusicFontSize() * 1), (float)(579.0025024414062), (float)(92.4199951171875), AlphaSkiaTextAlign.LEFT, AlphaSkiaTextBaseline.ALPHABETIC);
+ canvas.setColor(AlphaSkiaCanvas.rgbaToColor((byte)(153), (byte)(51), (byte)(204), (byte)(100)));
+ canvas.fillRect((float)(624), (float)(87.9199951171875), (float)(1), (float)(36.000000000000014));
+ canvas.setColor(AlphaSkiaCanvas.rgbaToColor((byte)(0), (byte)(0), (byte)(0), (byte)(255)));
canvas.setLineWidth((float)(0.96));
canvas.beginPath();
- canvas.moveTo((float)(496.32666015625), (float)(134.5));
- canvas.lineTo((float)(496.32666015625), (float)(184));
+ canvas.moveTo((float)(457.510009765625), (float)(92.4199951171875));
+ canvas.lineTo((float)(457.510009765625), (float)(141.9199951171875));
canvas.stroke();
canvas.setLineWidth((float)(1));
canvas.setLineWidth((float)(0.96));
canvas.beginPath();
- canvas.moveTo((float)(545.8699951171875), (float)(107.5));
- canvas.lineTo((float)(545.8699951171875), (float)(175));
+ canvas.moveTo((float)(507.00750732421875), (float)(65.4199951171875));
+ canvas.lineTo((float)(507.00750732421875), (float)(132.9199951171875));
canvas.stroke();
canvas.setLineWidth((float)(1));
canvas.setLineWidth((float)(0.96));
canvas.beginPath();
- canvas.moveTo((float)(586.413330078125), (float)(125.5));
- canvas.lineTo((float)(586.413330078125), (float)(184));
+ canvas.moveTo((float)(547.5050048828125), (float)(83.41999511718751));
+ canvas.lineTo((float)(547.5050048828125), (float)(141.9199951171875));
canvas.stroke();
canvas.setLineWidth((float)(1));
canvas.setLineWidth((float)(0.96));
canvas.beginPath();
- canvas.moveTo((float)(626.9566650390625), (float)(107.5));
- canvas.lineTo((float)(626.9566650390625), (float)(184));
+ canvas.moveTo((float)(588.0025024414062), (float)(65.4199951171875));
+ canvas.lineTo((float)(588.0025024414062), (float)(141.9199951171875));
canvas.stroke();
canvas.setLineWidth((float)(1));
canvas.setColor(AlphaSkiaCanvas.rgbaToColor((byte)(0), (byte)(0), (byte)(0), (byte)(100)));
canvas.setColor(AlphaSkiaCanvas.rgbaToColor((byte)(165), (byte)(165), (byte)(165), (byte)(255)));
- canvas.fillRect((float)(92), (float)(284), (float)(254), (float)(1.04));
- canvas.fillRect((float)(92), (float)(295), (float)(254), (float)(1.04));
- canvas.fillRect((float)(92), (float)(306), (float)(254), (float)(1.04));
- canvas.fillRect((float)(92), (float)(317), (float)(61.02685546875), (float)(1.04));
- canvas.fillRect((float)(161.32666015625), (float)(317), (float)(31.759140014648438), (float)(1.04));
- canvas.fillRect((float)(201.38560485839844), (float)(317), (float)(31.759140014648438), (float)(1.04));
- canvas.fillRect((float)(241.44454956054688), (float)(317), (float)(31.759124755859375), (float)(1.04));
- canvas.fillRect((float)(281.50347900390625), (float)(317), (float)(25.273406982421875), (float)(1.04));
- canvas.fillRect((float)(315.0766906738281), (float)(317), (float)(30.923309326171875), (float)(1.04));
- canvas.fillRect((float)(92), (float)(328), (float)(254), (float)(1.04));
- canvas.fillRect((float)(92), (float)(339), (float)(254), (float)(1.04));
- canvas.setColor(AlphaSkiaCanvas.rgbaToColor((byte)(0), (byte)(0), (byte)(0), (byte)(255)));
- canvas.fillText("\uE06D", getMusicTypeface(), (float)(getMusicFontSize() * 0.9230769230769231), (float)(97), (float)(311.8), AlphaSkiaTextAlign.LEFT, AlphaSkiaTextBaseline.ALPHABETIC);
+ canvas.fillRect((float)(625), (float)(87), (float)(82), (float)(1.04));
+ canvas.fillRect((float)(625), (float)(96), (float)(82), (float)(1.04));
+ canvas.fillRect((float)(625), (float)(105), (float)(82), (float)(1.04));
+ canvas.fillRect((float)(625), (float)(114), (float)(82), (float)(1.04));
+ canvas.fillRect((float)(625), (float)(123), (float)(82), (float)(1.04));
+ canvas.setColor(AlphaSkiaCanvas.rgbaToColor((byte)(0), (byte)(0), (byte)(0), (byte)(100)));
+ canvas.setColor(AlphaSkiaCanvas.rgbaToColor((byte)(0), (byte)(0), (byte)(0), (byte)(255)));
+ canvas.setColor(AlphaSkiaCanvas.rgbaToColor((byte)(0), (byte)(0), (byte)(0), (byte)(100)));
+ canvas.setColor(AlphaSkiaCanvas.rgbaToColor((byte)(0), (byte)(0), (byte)(0), (byte)(255)));
+ canvas.setColor(AlphaSkiaCanvas.rgbaToColor((byte)(153), (byte)(51), (byte)(204), (byte)(100)));
+ canvas.setColor(AlphaSkiaCanvas.rgbaToColor((byte)(0), (byte)(0), (byte)(0), (byte)(255)));
+ canvas.setColor(AlphaSkiaCanvas.rgbaToColor((byte)(200), (byte)(0), (byte)(0), (byte)(255)));
+ setTextBaseline(AlphaSkiaTextBaseline.TOP);
+ setTextStyle(getTextStyle(new String[]{"Noto Sans", "Noto Music", "Noto Color Emoji"}, 400, false));
+ setFontSize((float)(11));
+ canvas.fillText("4", getTextStyle(), getFontSize(), (float)(625), (float)(76.5699951171875), getTextAlign(), getTextBaseline());
+ setTextBaseline(AlphaSkiaTextBaseline.TOP);
+ canvas.setColor(AlphaSkiaCanvas.rgbaToColor((byte)(0), (byte)(0), (byte)(0), (byte)(255)));
+ canvas.fillText("\uE4EF\uE4F0\uE4F0\uE4F0\uE4F1", getMusicTextStyle(), (float)(getMusicFontSize() * 1), (float)(636.2920074462891), (float)(105.91999511718751), AlphaSkiaTextAlign.LEFT, AlphaSkiaTextBaseline.ALPHABETIC);
+ canvas.fillText("\uE083", getMusicTextStyle(), (float)(getMusicFontSize() * 1), (float)(666.2920074462891), (float)(74), AlphaSkiaTextAlign.CENTER, AlphaSkiaTextBaseline.ALPHABETIC);
+ canvas.setColor(AlphaSkiaCanvas.rgbaToColor((byte)(0), (byte)(0), (byte)(0), (byte)(100)));
+ canvas.setColor(AlphaSkiaCanvas.rgbaToColor((byte)(0), (byte)(0), (byte)(0), (byte)(255)));
+ canvas.setColor(AlphaSkiaCanvas.rgbaToColor((byte)(0), (byte)(0), (byte)(0), (byte)(100)));
+ canvas.setColor(AlphaSkiaCanvas.rgbaToColor((byte)(0), (byte)(0), (byte)(0), (byte)(255)));
+ canvas.setColor(AlphaSkiaCanvas.rgbaToColor((byte)(0), (byte)(0), (byte)(0), (byte)(100)));
+ canvas.setColor(AlphaSkiaCanvas.rgbaToColor((byte)(0), (byte)(0), (byte)(0), (byte)(255)));
+ canvas.setColor(AlphaSkiaCanvas.rgbaToColor((byte)(153), (byte)(51), (byte)(204), (byte)(100)));
+ canvas.fillRect((float)(706), (float)(87.9199951171875), (float)(1), (float)(36.000000000000014));
+ canvas.setColor(AlphaSkiaCanvas.rgbaToColor((byte)(0), (byte)(0), (byte)(0), (byte)(255)));
+ canvas.setColor(AlphaSkiaCanvas.rgbaToColor((byte)(0), (byte)(0), (byte)(0), (byte)(100)));
+ canvas.setColor(AlphaSkiaCanvas.rgbaToColor((byte)(165), (byte)(165), (byte)(165), (byte)(255)));
+ canvas.fillRect((float)(707), (float)(87), (float)(163), (float)(1.04));
+ canvas.fillRect((float)(707), (float)(96), (float)(163), (float)(1.04));
+ canvas.fillRect((float)(707), (float)(105), (float)(163), (float)(1.04));
+ canvas.fillRect((float)(707), (float)(114), (float)(163), (float)(1.04));
+ canvas.fillRect((float)(707), (float)(123), (float)(163), (float)(1.04));
+ canvas.setColor(AlphaSkiaCanvas.rgbaToColor((byte)(0), (byte)(0), (byte)(0), (byte)(100)));
+ canvas.setColor(AlphaSkiaCanvas.rgbaToColor((byte)(0), (byte)(0), (byte)(0), (byte)(255)));
+ canvas.setColor(AlphaSkiaCanvas.rgbaToColor((byte)(0), (byte)(0), (byte)(0), (byte)(100)));
+ canvas.setColor(AlphaSkiaCanvas.rgbaToColor((byte)(0), (byte)(0), (byte)(0), (byte)(255)));
+ canvas.setColor(AlphaSkiaCanvas.rgbaToColor((byte)(153), (byte)(51), (byte)(204), (byte)(100)));
+ canvas.setColor(AlphaSkiaCanvas.rgbaToColor((byte)(0), (byte)(0), (byte)(0), (byte)(255)));
+ canvas.setColor(AlphaSkiaCanvas.rgbaToColor((byte)(200), (byte)(0), (byte)(0), (byte)(255)));
+ setTextBaseline(AlphaSkiaTextBaseline.TOP);
+ setTextStyle(getTextStyle(new String[]{"Noto Sans", "Noto Music", "Noto Color Emoji"}, 400, false));
+ setFontSize((float)(11));
+ canvas.fillText("7", getTextStyle(), getFontSize(), (float)(707), (float)(76.5699951171875), getTextAlign(), getTextBaseline());
+ setTextBaseline(AlphaSkiaTextBaseline.TOP);
+ canvas.setColor(AlphaSkiaCanvas.rgbaToColor((byte)(0), (byte)(0), (byte)(0), (byte)(255)));
+ canvas.setColor(AlphaSkiaCanvas.rgbaToColor((byte)(165), (byte)(165), (byte)(165), (byte)(255)));
+ canvas.setColor(AlphaSkiaCanvas.rgbaToColor((byte)(0), (byte)(0), (byte)(0), (byte)(255)));
+ canvas.fillText("\uE0A4", getMusicTextStyle(), (float)(getMusicFontSize() * 1), (float)(718.2920074462891), (float)(96.91999511718751), AlphaSkiaTextAlign.LEFT, AlphaSkiaTextBaseline.ALPHABETIC);
+ canvas.setColor(AlphaSkiaCanvas.rgbaToColor((byte)(165), (byte)(165), (byte)(165), (byte)(255)));
+ canvas.setColor(AlphaSkiaCanvas.rgbaToColor((byte)(0), (byte)(0), (byte)(0), (byte)(255)));
+ canvas.fillText("\uE0A4", getMusicTextStyle(), (float)(getMusicFontSize() * 1), (float)(754.8440055847168), (float)(96.91999511718751), AlphaSkiaTextAlign.LEFT, AlphaSkiaTextBaseline.ALPHABETIC);
+ canvas.setColor(AlphaSkiaCanvas.rgbaToColor((byte)(165), (byte)(165), (byte)(165), (byte)(255)));
+ canvas.setColor(AlphaSkiaCanvas.rgbaToColor((byte)(0), (byte)(0), (byte)(0), (byte)(255)));
+ canvas.fillText("\uE0A4", getMusicTextStyle(), (float)(getMusicFontSize() * 1), (float)(791.3960037231445), (float)(96.91999511718751), AlphaSkiaTextAlign.LEFT, AlphaSkiaTextBaseline.ALPHABETIC);
+ canvas.setColor(AlphaSkiaCanvas.rgbaToColor((byte)(165), (byte)(165), (byte)(165), (byte)(255)));
+ canvas.setColor(AlphaSkiaCanvas.rgbaToColor((byte)(0), (byte)(0), (byte)(0), (byte)(255)));
+ canvas.fillText("\uE0A4", getMusicTextStyle(), (float)(getMusicFontSize() * 1), (float)(827.9480018615723), (float)(96.91999511718751), AlphaSkiaTextAlign.LEFT, AlphaSkiaTextBaseline.ALPHABETIC);
+ canvas.setColor(AlphaSkiaCanvas.rgbaToColor((byte)(153), (byte)(51), (byte)(204), (byte)(100)));
+ canvas.fillRect((float)(869), (float)(87.9199951171875), (float)(1), (float)(36.000000000000014));
+ canvas.setColor(AlphaSkiaCanvas.rgbaToColor((byte)(0), (byte)(0), (byte)(0), (byte)(255)));
+ canvas.setLineWidth((float)(0.96));
+ canvas.beginPath();
+ canvas.moveTo((float)(718.2920074462891), (float)(96.91999511718751));
+ canvas.lineTo((float)(718.2920074462891), (float)(123.91999511718751));
+ canvas.stroke();
+ canvas.setLineWidth((float)(1));
+ canvas.setLineWidth((float)(0.96));
+ canvas.beginPath();
+ canvas.moveTo((float)(754.8440055847168), (float)(96.91999511718751));
+ canvas.lineTo((float)(754.8440055847168), (float)(123.91999511718751));
+ canvas.stroke();
+ canvas.setLineWidth((float)(1));
+ canvas.setLineWidth((float)(0.96));
+ canvas.beginPath();
+ canvas.moveTo((float)(791.3960037231445), (float)(96.91999511718751));
+ canvas.lineTo((float)(791.3960037231445), (float)(123.91999511718751));
+ canvas.stroke();
+ canvas.setLineWidth((float)(1));
+ canvas.setLineWidth((float)(0.96));
+ canvas.beginPath();
+ canvas.moveTo((float)(827.9480018615723), (float)(96.91999511718751));
+ canvas.lineTo((float)(827.9480018615723), (float)(123.91999511718751));
+ canvas.stroke();
+ canvas.setLineWidth((float)(1));
+ canvas.setColor(AlphaSkiaCanvas.rgbaToColor((byte)(0), (byte)(0), (byte)(0), (byte)(100)));
+ canvas.setColor(AlphaSkiaCanvas.rgbaToColor((byte)(165), (byte)(165), (byte)(165), (byte)(255)));
+ canvas.fillRect((float)(870), (float)(87), (float)(60), (float)(1.04));
+ canvas.fillRect((float)(870), (float)(96), (float)(60), (float)(1.04));
+ canvas.fillRect((float)(870), (float)(105), (float)(60), (float)(1.04));
+ canvas.fillRect((float)(870), (float)(114), (float)(60), (float)(1.04));
+ canvas.fillRect((float)(870), (float)(123), (float)(60), (float)(1.04));
+ canvas.setColor(AlphaSkiaCanvas.rgbaToColor((byte)(0), (byte)(0), (byte)(0), (byte)(100)));
+ canvas.setColor(AlphaSkiaCanvas.rgbaToColor((byte)(0), (byte)(0), (byte)(0), (byte)(255)));
+ canvas.setColor(AlphaSkiaCanvas.rgbaToColor((byte)(0), (byte)(0), (byte)(0), (byte)(100)));
+ canvas.setColor(AlphaSkiaCanvas.rgbaToColor((byte)(0), (byte)(0), (byte)(0), (byte)(255)));
+ canvas.setColor(AlphaSkiaCanvas.rgbaToColor((byte)(153), (byte)(51), (byte)(204), (byte)(100)));
+ canvas.setColor(AlphaSkiaCanvas.rgbaToColor((byte)(0), (byte)(0), (byte)(0), (byte)(255)));
+ canvas.setColor(AlphaSkiaCanvas.rgbaToColor((byte)(200), (byte)(0), (byte)(0), (byte)(255)));
+ setTextBaseline(AlphaSkiaTextBaseline.TOP);
+ setTextStyle(getTextStyle(new String[]{"Noto Sans", "Noto Music", "Noto Color Emoji"}, 400, false));
+ setFontSize((float)(11));
+ canvas.fillText("8", getTextStyle(), getFontSize(), (float)(870), (float)(76.5699951171875), getTextAlign(), getTextBaseline());
+ setTextBaseline(AlphaSkiaTextBaseline.TOP);
+ canvas.setColor(AlphaSkiaCanvas.rgbaToColor((byte)(0), (byte)(0), (byte)(0), (byte)(255)));
+ canvas.setColor(AlphaSkiaCanvas.rgbaToColor((byte)(165), (byte)(165), (byte)(165), (byte)(255)));
+ canvas.setColor(AlphaSkiaCanvas.rgbaToColor((byte)(0), (byte)(0), (byte)(0), (byte)(255)));
+ canvas.fillText("\uE0A4", getMusicTextStyle(), (float)(getMusicFontSize() * 1), (float)(881.2920074462891), (float)(96.91999511718751), AlphaSkiaTextAlign.LEFT, AlphaSkiaTextBaseline.ALPHABETIC);
+ canvas.setColor(AlphaSkiaCanvas.rgbaToColor((byte)(153), (byte)(51), (byte)(204), (byte)(100)));
+ canvas.fillRect((float)(922), (float)(87.9199951171875), (float)(1), (float)(36.000000000000014));
+ canvas.fillRect((float)(926), (float)(87.9199951171875), (float)(4), (float)(36.000000000000014));
+ canvas.setColor(AlphaSkiaCanvas.rgbaToColor((byte)(0), (byte)(0), (byte)(0), (byte)(255)));
+ canvas.setLineWidth((float)(0.96));
+ canvas.beginPath();
+ canvas.moveTo((float)(881.2920074462891), (float)(96.91999511718751));
+ canvas.lineTo((float)(881.2920074462891), (float)(123.91999511718751));
+ canvas.stroke();
+ canvas.setLineWidth((float)(1));
+ canvas.setColor(AlphaSkiaCanvas.rgbaToColor((byte)(0), (byte)(0), (byte)(0), (byte)(100)));
+ canvas.setColor(AlphaSkiaCanvas.rgbaToColor((byte)(0), (byte)(0), (byte)(0), (byte)(255)));
+ canvas.fillText("\uEAA4", getMusicTextStyle(), (float)(getMusicFontSize() * 1.2), (float)(722.7920074462891), (float)(161.4199951171875), AlphaSkiaTextAlign.LEFT, AlphaSkiaTextBaseline.ALPHABETIC);
+ canvas.fillText("\uEAA4", getMusicTextStyle(), (float)(getMusicFontSize() * 1.2), (float)(733.592007446289), (float)(161.4199951171875), AlphaSkiaTextAlign.LEFT, AlphaSkiaTextBaseline.ALPHABETIC);
+ canvas.fillText("\uEAA4", getMusicTextStyle(), (float)(getMusicFontSize() * 1.2), (float)(744.3920074462891), (float)(161.4199951171875), AlphaSkiaTextAlign.LEFT, AlphaSkiaTextBaseline.ALPHABETIC);
+ canvas.fillText("\uEAA4", getMusicTextStyle(), (float)(getMusicFontSize() * 1.2), (float)(755.192007446289), (float)(161.4199951171875), AlphaSkiaTextAlign.LEFT, AlphaSkiaTextBaseline.ALPHABETIC);
+ canvas.fillText("\uEAA4", getMusicTextStyle(), (float)(getMusicFontSize() * 1.2), (float)(765.9920074462891), (float)(161.4199951171875), AlphaSkiaTextAlign.LEFT, AlphaSkiaTextBaseline.ALPHABETIC);
+ canvas.fillText("\uEAA4", getMusicTextStyle(), (float)(getMusicFontSize() * 1.2), (float)(776.7920074462891), (float)(161.4199951171875), AlphaSkiaTextAlign.LEFT, AlphaSkiaTextBaseline.ALPHABETIC);
+ canvas.fillText("\uEAA4", getMusicTextStyle(), (float)(getMusicFontSize() * 1.2), (float)(787.592007446289), (float)(161.4199951171875), AlphaSkiaTextAlign.LEFT, AlphaSkiaTextBaseline.ALPHABETIC);
+ canvas.fillText("\uEAA4", getMusicTextStyle(), (float)(getMusicFontSize() * 1.2), (float)(798.3920074462891), (float)(161.4199951171875), AlphaSkiaTextAlign.LEFT, AlphaSkiaTextBaseline.ALPHABETIC);
+ canvas.fillText("\uEAA4", getMusicTextStyle(), (float)(getMusicFontSize() * 1.2), (float)(809.192007446289), (float)(161.4199951171875), AlphaSkiaTextAlign.LEFT, AlphaSkiaTextBaseline.ALPHABETIC);
+ canvas.fillText("\uEAA4", getMusicTextStyle(), (float)(getMusicFontSize() * 1.2), (float)(819.9920074462891), (float)(161.4199951171875), AlphaSkiaTextAlign.LEFT, AlphaSkiaTextBaseline.ALPHABETIC);
+ canvas.setColor(AlphaSkiaCanvas.rgbaToColor((byte)(165), (byte)(165), (byte)(165), (byte)(255)));
+ canvas.fillRect((float)(48), (float)(216), (float)(259), (float)(1.04));
+ canvas.fillRect((float)(48), (float)(227), (float)(259), (float)(1.04));
+ canvas.fillRect((float)(48), (float)(238), (float)(259), (float)(1.04));
+ canvas.fillRect((float)(48), (float)(249), (float)(66.07400512695312), (float)(1.04));
+ canvas.fillRect((float)(122.510009765625), (float)(249), (float)(31.81214141845703), (float)(1.04));
+ canvas.fillRect((float)(162.7581558227539), (float)(249), (float)(31.81214141845703), (float)(1.04));
+ canvas.fillRect((float)(203.0063018798828), (float)(249), (float)(31.8121337890625), (float)(1.04));
+ canvas.fillRect((float)(243.2544403076172), (float)(249), (float)(25.2957763671875), (float)(1.04));
+ canvas.fillRect((float)(276.98622131347656), (float)(249), (float)(30.013778686523438), (float)(1.04));
+ canvas.fillRect((float)(48), (float)(260), (float)(259), (float)(1.04));
+ canvas.fillRect((float)(48), (float)(271), (float)(259), (float)(1.04));
+ canvas.setColor(AlphaSkiaCanvas.rgbaToColor((byte)(0), (byte)(0), (byte)(0), (byte)(255)));
+ canvas.setColor(AlphaSkiaCanvas.rgbaToColor((byte)(153), (byte)(51), (byte)(204), (byte)(100)));
+ canvas.fillRect((float)(48), (float)(216.3199951171875), (float)(1), (float)(54.99999999999994));
+ canvas.setColor(AlphaSkiaCanvas.rgbaToColor((byte)(0), (byte)(0), (byte)(0), (byte)(255)));
+ canvas.fillText("\uE06D", getMusicTextStyle(), (float)(getMusicFontSize() * 0.9230769230769231), (float)(54), (float)(243.8199951171875), AlphaSkiaTextAlign.LEFT, AlphaSkiaTextBaseline.ALPHABETIC);
setTextBaseline(AlphaSkiaTextBaseline.MIDDLE);
- setTypeface(getTypeface("Roboto", false, false));
+ setTextStyle(getTextStyle(new String[]{"Noto Sans", "Noto Music", "Noto Color Emoji"}, 400, false));
setFontSize((float)(13));
- setTypeface(getTypeface("Roboto", false, false));
+ setTextStyle(getTextStyle(new String[]{"Noto Sans", "Noto Music", "Noto Color Emoji"}, 400, false));
setFontSize((float)(11));
- canvas.fillText("", getTypeface(), getFontSize(), (float)(163.32666015625), (float)(317.3), getTextAlign(), getTextBaseline());
- setTypeface(getTypeface("Roboto", false, false));
+ canvas.fillText("", getTextStyle(), getFontSize(), (float)(124.510009765625), (float)(249.3199951171875), getTextAlign(), getTextBaseline());
+ setTextStyle(getTextStyle(new String[]{"Noto Sans", "Noto Music", "Noto Color Emoji"}, 400, false));
setFontSize((float)(13));
- canvas.fillText("9", getTypeface(), getFontSize(), (float)(153.02685546875), (float)(317.3), getTextAlign(), getTextBaseline());
+ canvas.fillText("9", getTextStyle(), getFontSize(), (float)(114.07400512695312), (float)(249.3199951171875), getTextAlign(), getTextBaseline());
setTextBaseline(AlphaSkiaTextBaseline.TOP);
canvas.beginPath();
canvas.beginPath();
- canvas.moveTo((float)(188.23569962449085), (float)(274.7));
- canvas.lineTo((float)(185.23569962449085), (float)(280.7));
- canvas.lineTo((float)(191.23569962449085), (float)(280.7));
+ canvas.moveTo((float)(150.32215017408072), (float)(206.7199951171875));
+ canvas.lineTo((float)(147.32215017408072), (float)(212.7199951171875));
+ canvas.lineTo((float)(153.32215017408072), (float)(212.7199951171875));
canvas.closePath();
canvas.fill();
+ canvas.beginPath();
+ canvas.moveTo((float)(123.510009765625), (float)(249.3199951171875));
+ canvas.bezierCurveTo((float)(136.91607996985286), (float)(249.3199951171875), (float)(150.32215017408072), (float)(249.3199951171875), (float)(150.32215017408072), (float)(212.7199951171875));
canvas.stroke();
- canvas.moveTo((float)(162.32666015625), (float)(317.3));
- canvas.bezierCurveTo((float)(175.28117989037042), (float)(317.3), (float)(188.23569962449085), (float)(317.3), (float)(188.23569962449085), (float)(280.7));
- canvas.stroke();
- setTypeface(getTypeface("Roboto", false, false));
+ setTextStyle(getTextStyle(new String[]{"Noto Sans", "Noto Music", "Noto Color Emoji"}, 400, false));
setFontSize((float)(13));
- canvas.fillText("\u00BC", getTypeface(), getFontSize(), (float)(183.47495743699085), (float)(260.7), getTextAlign(), getTextBaseline());
+ canvas.fillText("\u00BC", getTextStyle(), getFontSize(), (float)(145.47965139478384), (float)(192.7199951171875), getTextAlign(), getTextBaseline());
setTextBaseline(AlphaSkiaTextBaseline.MIDDLE);
- setTypeface(getTypeface("Roboto", false, false));
+ setTextStyle(getTextStyle(new String[]{"Noto Sans", "Noto Music", "Noto Color Emoji"}, 400, false));
setFontSize((float)(13));
- setTypeface(getTypeface("Roboto", false, false));
+ setTextStyle(getTextStyle(new String[]{"Noto Sans", "Noto Music", "Noto Color Emoji"}, 400, false));
setFontSize((float)(11));
- canvas.fillText("", getTypeface(), getFontSize(), (float)(203.38560196824085), (float)(317.3), getTextAlign(), getTextBaseline());
- setTypeface(getTypeface("Roboto", false, false));
+ canvas.fillText("", getTextStyle(), getFontSize(), (float)(164.7581548127526), (float)(249.3199951171875), getTextAlign(), getTextBaseline());
+ setTextStyle(getTextStyle(new String[]{"Noto Sans", "Noto Music", "Noto Color Emoji"}, 400, false));
setFontSize((float)(13));
- canvas.fillText("9", getTypeface(), getFontSize(), (float)(193.08579728074085), (float)(317.3), getTextAlign(), getTextBaseline());
+ canvas.fillText("9", getTextStyle(), getFontSize(), (float)(154.32215017408072), (float)(249.3199951171875), getTextAlign(), getTextBaseline());
setTextBaseline(AlphaSkiaTextBaseline.TOP);
canvas.beginPath();
canvas.beginPath();
- canvas.moveTo((float)(228.29464143648167), (float)(268.7));
- canvas.lineTo((float)(225.29464143648167), (float)(274.7));
- canvas.lineTo((float)(231.29464143648167), (float)(274.7));
+ canvas.moveTo((float)(190.5702952212083), (float)(200.7199951171875));
+ canvas.lineTo((float)(187.5702952212083), (float)(206.7199951171875));
+ canvas.lineTo((float)(193.5702952212083), (float)(206.7199951171875));
canvas.closePath();
canvas.fill();
+ canvas.beginPath();
+ canvas.moveTo((float)(163.7581548127526), (float)(249.3199951171875));
+ canvas.bezierCurveTo((float)(177.16422501698045), (float)(249.3199951171875), (float)(190.5702952212083), (float)(249.3199951171875), (float)(190.5702952212083), (float)(206.7199951171875));
canvas.stroke();
- canvas.moveTo((float)(202.38560196824085), (float)(317.3));
- canvas.bezierCurveTo((float)(215.34012170236127), (float)(317.3), (float)(228.29464143648167), (float)(317.3), (float)(228.29464143648167), (float)(274.7));
- canvas.stroke();
- setTypeface(getTypeface("Roboto", false, false));
+ setTextStyle(getTextStyle(new String[]{"Noto Sans", "Noto Music", "Noto Color Emoji"}, 400, false));
setFontSize((float)(13));
- canvas.fillText("\u00BD", getTypeface(), getFontSize(), (float)(223.25142854585667), (float)(254.7), getTextAlign(), getTextBaseline());
+ canvas.fillText("\u00BD", getTextStyle(), getFontSize(), (float)(185.55879772364972), (float)(186.7199951171875), getTextAlign(), getTextBaseline());
setTextBaseline(AlphaSkiaTextBaseline.MIDDLE);
- setTypeface(getTypeface("Roboto", false, false));
+ setTextStyle(getTextStyle(new String[]{"Noto Sans", "Noto Music", "Noto Color Emoji"}, 400, false));
setFontSize((float)(13));
- setTypeface(getTypeface("Roboto", false, false));
+ setTextStyle(getTextStyle(new String[]{"Noto Sans", "Noto Music", "Noto Color Emoji"}, 400, false));
setFontSize((float)(11));
- canvas.fillText("", getTypeface(), getFontSize(), (float)(243.44454378023167), (float)(317.3), getTextAlign(), getTextBaseline());
- setTypeface(getTypeface("Roboto", false, false));
+ canvas.fillText("", getTextStyle(), getFontSize(), (float)(205.0062998598802), (float)(249.3199951171875), getTextAlign(), getTextBaseline());
+ setTextStyle(getTextStyle(new String[]{"Noto Sans", "Noto Music", "Noto Color Emoji"}, 400, false));
setFontSize((float)(13));
- canvas.fillText("9", getTypeface(), getFontSize(), (float)(233.14473909273167), (float)(317.3), getTextAlign(), getTextBaseline());
+ canvas.fillText("9", getTextStyle(), getFontSize(), (float)(194.5702952212083), (float)(249.3199951171875), getTextAlign(), getTextBaseline());
setTextBaseline(AlphaSkiaTextBaseline.TOP);
canvas.beginPath();
canvas.beginPath();
- canvas.moveTo((float)(268.3535832484725), (float)(256.7));
- canvas.lineTo((float)(265.3535832484725), (float)(262.7));
- canvas.lineTo((float)(271.3535832484725), (float)(262.7));
+ canvas.moveTo((float)(230.81844026833588), (float)(188.7199951171875));
+ canvas.lineTo((float)(227.81844026833588), (float)(194.7199951171875));
+ canvas.lineTo((float)(233.81844026833588), (float)(194.7199951171875));
canvas.closePath();
canvas.fill();
+ canvas.beginPath();
+ canvas.moveTo((float)(204.0062998598802), (float)(249.3199951171875));
+ canvas.bezierCurveTo((float)(217.41237006410802), (float)(249.3199951171875), (float)(230.81844026833588), (float)(249.3199951171875), (float)(230.81844026833588), (float)(194.7199951171875));
canvas.stroke();
- canvas.moveTo((float)(242.44454378023167), (float)(317.3));
- canvas.bezierCurveTo((float)(255.39906351435206), (float)(317.3), (float)(268.3535832484725), (float)(317.3), (float)(268.3535832484725), (float)(262.7));
- canvas.stroke();
- setTypeface(getTypeface("Roboto", false, false));
+ setTextStyle(getTextStyle(new String[]{"Noto Sans", "Noto Music", "Noto Color Emoji"}, 400, false));
setFontSize((float)(13));
- canvas.fillText("full", getTypeface(), getFontSize(), (float)(259.3589543422225), (float)(242.7), getTextAlign(), getTextBaseline());
+ canvas.fillText("full", getTextStyle(), getFontSize(), (float)(221.2114380100351), (float)(174.7199951171875), getTextAlign(), getTextBaseline());
setTextBaseline(AlphaSkiaTextBaseline.MIDDLE);
- setTypeface(getTypeface("Roboto", false, false));
+ setTextStyle(getTextStyle(new String[]{"Noto Sans", "Noto Music", "Noto Color Emoji"}, 400, false));
setFontSize((float)(13));
- setTypeface(getTypeface("Roboto", false, false));
+ setTextStyle(getTextStyle(new String[]{"Noto Sans", "Noto Music", "Noto Color Emoji"}, 400, false));
setFontSize((float)(11));
- canvas.fillText("", getTypeface(), getFontSize(), (float)(283.5034855922225), (float)(317.3), getTextAlign(), getTextBaseline());
- setTypeface(getTypeface("Roboto", false, false));
+ canvas.fillText("", getTextStyle(), getFontSize(), (float)(245.25444490700775), (float)(249.3199951171875), getTextAlign(), getTextBaseline());
+ setTextStyle(getTextStyle(new String[]{"Noto Sans", "Noto Music", "Noto Color Emoji"}, 400, false));
setFontSize((float)(13));
- canvas.fillText("9", getTypeface(), getFontSize(), (float)(273.2036809047225), (float)(317.3), getTextAlign(), getTextBaseline());
+ canvas.fillText("9", getTextStyle(), getFontSize(), (float)(234.81844026833588), (float)(249.3199951171875), getTextAlign(), getTextBaseline());
setTextBaseline(AlphaSkiaTextBaseline.TOP);
canvas.beginPath();
canvas.beginPath();
- canvas.moveTo((float)(301.9267916242362), (float)(244.7));
- canvas.lineTo((float)(298.9267916242362), (float)(250.7));
- canvas.lineTo((float)(304.9267916242362), (float)(250.7));
+ canvas.moveTo((float)(264.55021897449996), (float)(176.7199951171875));
+ canvas.lineTo((float)(261.55021897449996), (float)(182.7199951171875));
+ canvas.lineTo((float)(267.55021897449996), (float)(182.7199951171875));
canvas.closePath();
canvas.fill();
+ canvas.beginPath();
+ canvas.moveTo((float)(244.25444490700775), (float)(249.3199951171875));
+ canvas.bezierCurveTo((float)(254.40233194075387), (float)(249.3199951171875), (float)(264.55021897449996), (float)(249.3199951171875), (float)(264.55021897449996), (float)(182.7199951171875));
canvas.stroke();
- canvas.moveTo((float)(282.5034855922225), (float)(317.3));
- canvas.bezierCurveTo((float)(292.2151386082294), (float)(317.3), (float)(301.9267916242362), (float)(317.3), (float)(301.9267916242362), (float)(250.7));
- canvas.stroke();
- setTypeface(getTypeface("Roboto", false, false));
+ setTextStyle(getTextStyle(new String[]{"Noto Sans", "Noto Music", "Noto Color Emoji"}, 400, false));
setFontSize((float)(13));
- canvas.fillText("1\u00BD", getTypeface(), getFontSize(), (float)(293.2336763898612), (float)(230.7), getTextAlign(), getTextBaseline());
+ canvas.fillText("1\u00BD", getTextStyle(), getFontSize(), (float)(255.82071915760542), (float)(162.7199951171875), getTextAlign(), getTextBaseline());
setTextBaseline(AlphaSkiaTextBaseline.MIDDLE);
- setTypeface(getTypeface("Roboto", false, false));
+ setTextStyle(getTextStyle(new String[]{"Noto Sans", "Noto Music", "Noto Color Emoji"}, 400, false));
setFontSize((float)(13));
- setTypeface(getTypeface("Roboto", false, false));
+ setTextStyle(getTextStyle(new String[]{"Noto Sans", "Noto Music", "Noto Color Emoji"}, 400, false));
setFontSize((float)(11));
- canvas.fillText("", getTypeface(), getFontSize(), (float)(317.0766939679862), (float)(317.3), getTextAlign(), getTextBaseline());
- setTypeface(getTypeface("Roboto", false, false));
+ canvas.fillText("", getTextStyle(), getFontSize(), (float)(278.98622361317183), (float)(249.3199951171875), getTextAlign(), getTextBaseline());
+ setTextStyle(getTextStyle(new String[]{"Noto Sans", "Noto Music", "Noto Color Emoji"}, 400, false));
setFontSize((float)(13));
- canvas.fillText("9", getTypeface(), getFontSize(), (float)(306.7768892804862), (float)(317.3), getTextAlign(), getTextBaseline());
+ canvas.fillText("9", getTextStyle(), getFontSize(), (float)(268.55021897449996), (float)(249.3199951171875), getTextAlign(), getTextBaseline());
setTextBaseline(AlphaSkiaTextBaseline.TOP);
canvas.beginPath();
canvas.beginPath();
- canvas.moveTo((float)(340), (float)(232.7));
- canvas.lineTo((float)(337), (float)(238.7));
- canvas.lineTo((float)(343), (float)(238.7));
+ canvas.moveTo((float)(302), (float)(164.7199951171875));
+ canvas.lineTo((float)(299), (float)(170.7199951171875));
+ canvas.lineTo((float)(305), (float)(170.7199951171875));
canvas.closePath();
canvas.fill();
+ canvas.beginPath();
+ canvas.moveTo((float)(277.98622361317183), (float)(249.3199951171875));
+ canvas.bezierCurveTo((float)(289.99311180658594), (float)(249.3199951171875), (float)(302), (float)(249.3199951171875), (float)(302), (float)(170.7199951171875));
canvas.stroke();
- canvas.moveTo((float)(316.0766939679862), (float)(317.3));
- canvas.bezierCurveTo((float)(328.0383469839931), (float)(317.3), (float)(340), (float)(317.3), (float)(340), (float)(238.7));
- canvas.stroke();
- setTypeface(getTypeface("Roboto", false, false));
+ setTextStyle(getTextStyle(new String[]{"Noto Sans", "Noto Music", "Noto Color Emoji"}, 400, false));
setFontSize((float)(13));
- canvas.fillText("2", getTypeface(), getFontSize(), (float)(336.35009765625), (float)(218.7), getTextAlign(), getTextBaseline());
- canvas.fillRect((float)(345), (float)(284.3), (float)(1), (float)(54.99999999999994));
+ canvas.fillText("2", getTextStyle(), getFontSize(), (float)(298.28199768066406), (float)(150.7199951171875), getTextAlign(), getTextBaseline());
+ canvas.setColor(AlphaSkiaCanvas.rgbaToColor((byte)(153), (byte)(51), (byte)(204), (byte)(100)));
+ canvas.fillRect((float)(306), (float)(216.3199951171875), (float)(1), (float)(54.99999999999994));
+ canvas.setColor(AlphaSkiaCanvas.rgbaToColor((byte)(0), (byte)(0), (byte)(0), (byte)(255)));
canvas.setColor(AlphaSkiaCanvas.rgbaToColor((byte)(165), (byte)(165), (byte)(165), (byte)(255)));
- canvas.fillRect((float)(346), (float)(284), (float)(126), (float)(1.04));
- canvas.fillRect((float)(346), (float)(295), (float)(12.02685546875), (float)(1.04));
- canvas.fillRect((float)(366.32666015625), (float)(295), (float)(12.882984161376953), (float)(1.04));
- canvas.fillRect((float)(387.50944900512695), (float)(295), (float)(84.49055099487305), (float)(1.04));
- canvas.fillRect((float)(346), (float)(306), (float)(126), (float)(1.04));
- canvas.fillRect((float)(346), (float)(317), (float)(54.392433166503906), (float)(1.04));
- canvas.fillRect((float)(408.6922378540039), (float)(317), (float)(18.781005859375), (float)(1.04));
- canvas.fillRect((float)(435.7730484008789), (float)(317), (float)(36.226951599121094), (float)(1.04));
- canvas.fillRect((float)(346), (float)(328), (float)(126), (float)(1.04));
- canvas.fillRect((float)(346), (float)(339), (float)(126), (float)(1.04));
+ canvas.fillRect((float)(307), (float)(216), (float)(126), (float)(1.04));
+ canvas.fillRect((float)(307), (float)(227), (float)(12.074005126953125), (float)(1.04));
+ canvas.fillRect((float)(327.510009765625), (float)(227), (float)(12.9197998046875), (float)(1.04));
+ canvas.fillRect((float)(348.8658142089844), (float)(227), (float)(84.13418579101562), (float)(1.04));
+ canvas.fillRect((float)(307), (float)(238), (float)(126), (float)(1.04));
+ canvas.fillRect((float)(307), (float)(249), (float)(54.785614013671875), (float)(1.04));
+ canvas.fillRect((float)(370.22161865234375), (float)(249), (float)(18.865989685058594), (float)(1.04));
+ canvas.fillRect((float)(397.5236129760742), (float)(249), (float)(35.47638702392578), (float)(1.04));
+ canvas.fillRect((float)(307), (float)(260), (float)(126), (float)(1.04));
+ canvas.fillRect((float)(307), (float)(271), (float)(126), (float)(1.04));
+ canvas.setColor(AlphaSkiaCanvas.rgbaToColor((byte)(0), (byte)(0), (byte)(0), (byte)(255)));
+ canvas.setColor(AlphaSkiaCanvas.rgbaToColor((byte)(153), (byte)(51), (byte)(204), (byte)(100)));
canvas.setColor(AlphaSkiaCanvas.rgbaToColor((byte)(0), (byte)(0), (byte)(0), (byte)(255)));
setTextBaseline(AlphaSkiaTextBaseline.MIDDLE);
- setTypeface(getTypeface("Roboto", false, false));
+ setTextStyle(getTextStyle(new String[]{"Noto Sans", "Noto Music", "Noto Color Emoji"}, 400, false));
setFontSize((float)(13));
- setTypeface(getTypeface("Roboto", false, false));
+ setTextStyle(getTextStyle(new String[]{"Noto Sans", "Noto Music", "Noto Color Emoji"}, 400, false));
setFontSize((float)(11));
- canvas.fillText("", getTypeface(), getFontSize(), (float)(368.32666015625), (float)(295.3), getTextAlign(), getTextBaseline());
- setTypeface(getTypeface("Roboto", false, false));
+ canvas.fillText("", getTextStyle(), getFontSize(), (float)(329.510009765625), (float)(227.3199951171875), getTextAlign(), getTextBaseline());
+ setTextStyle(getTextStyle(new String[]{"Noto Sans", "Noto Music", "Noto Color Emoji"}, 400, false));
setFontSize((float)(13));
- canvas.fillText("3", getTypeface(), getFontSize(), (float)(358.02685546875), (float)(295.3), getTextAlign(), getTextBaseline());
+ canvas.fillText("3", getTextStyle(), getFontSize(), (float)(319.0740051269531), (float)(227.3199951171875), getTextAlign(), getTextBaseline());
setTextBaseline(AlphaSkiaTextBaseline.TOP);
setTextBaseline(AlphaSkiaTextBaseline.MIDDLE);
- setTypeface(getTypeface("Roboto", false, false));
+ setTextStyle(getTextStyle(new String[]{"Noto Sans", "Noto Music", "Noto Color Emoji"}, 400, false));
setFontSize((float)(13));
- setTypeface(getTypeface("Roboto", false, false));
+ setTextStyle(getTextStyle(new String[]{"Noto Sans", "Noto Music", "Noto Color Emoji"}, 400, false));
setFontSize((float)(11));
- canvas.fillText("", getTypeface(), getFontSize(), (float)(389.509449828346), (float)(295.3), getTextAlign(), getTextBaseline());
- setTypeface(getTypeface("Roboto", false, false));
+ canvas.fillText("", getTextStyle(), getFontSize(), (float)(350.86581383925926), (float)(227.3199951171875), getTextAlign(), getTextBaseline());
+ setTextStyle(getTextStyle(new String[]{"Noto Sans", "Noto Music", "Noto Color Emoji"}, 400, false));
setFontSize((float)(13));
- canvas.fillText("3", getTypeface(), getFontSize(), (float)(379.209645140846), (float)(295.3), getTextAlign(), getTextBaseline());
+ canvas.fillText("3", getTextStyle(), getFontSize(), (float)(340.4298092005874), (float)(227.3199951171875), getTextAlign(), getTextBaseline());
setTextBaseline(AlphaSkiaTextBaseline.TOP);
setTextBaseline(AlphaSkiaTextBaseline.MIDDLE);
- setTypeface(getTypeface("Roboto", false, false));
+ setTextStyle(getTextStyle(new String[]{"Noto Sans", "Noto Music", "Noto Color Emoji"}, 400, false));
setFontSize((float)(13));
- setTypeface(getTypeface("Roboto", false, false));
+ setTextStyle(getTextStyle(new String[]{"Noto Sans", "Noto Music", "Noto Color Emoji"}, 400, false));
setFontSize((float)(11));
- canvas.fillText("", getTypeface(), getFontSize(), (float)(410.692239500442), (float)(317.3), getTextAlign(), getTextBaseline());
- setTypeface(getTypeface("Roboto", false, false));
+ canvas.fillText("", getTextStyle(), getFontSize(), (float)(372.2216179128936), (float)(249.3199951171875), getTextAlign(), getTextBaseline());
+ setTextStyle(getTextStyle(new String[]{"Noto Sans", "Noto Music", "Noto Color Emoji"}, 400, false));
setFontSize((float)(13));
- canvas.fillText("3", getTypeface(), getFontSize(), (float)(400.392434812942), (float)(317.3), getTextAlign(), getTextBaseline());
+ canvas.fillText("3", getTextStyle(), getFontSize(), (float)(361.7856132742217), (float)(249.3199951171875), getTextAlign(), getTextBaseline());
setTextBaseline(AlphaSkiaTextBaseline.TOP);
setTextBaseline(AlphaSkiaTextBaseline.MIDDLE);
- setTypeface(getTypeface("Roboto", false, false));
- setFontSize((float)(13));
- setTypeface(getTypeface("Roboto", false, false));
- setFontSize((float)(11));
- canvas.fillText("", getTypeface(), getFontSize(), (float)(437.773050047317), (float)(317.3), getTextAlign(), getTextBaseline());
- setTypeface(getTypeface("Roboto", false, false));
- setFontSize((float)(13));
- canvas.fillText("5", getTypeface(), getFontSize(), (float)(427.473245359817), (float)(317.3), getTextAlign(), getTextBaseline());
- setTextBaseline(AlphaSkiaTextBaseline.TOP);
- canvas.fillRect((float)(471), (float)(284.3), (float)(1), (float)(54.99999999999994));
- canvas.setColor(AlphaSkiaCanvas.rgbaToColor((byte)(165), (byte)(165), (byte)(165), (byte)(255)));
- canvas.fillRect((float)(472), (float)(284), (float)(25.1767578125), (float)(1.04));
- canvas.fillRect((float)(505.4765625), (float)(284), (float)(32.2435302734375), (float)(1.04));
- canvas.fillRect((float)(546.0198974609375), (float)(284), (float)(72.786865234375), (float)(1.04));
- canvas.fillRect((float)(627.1065673828125), (float)(284), (float)(50.8934326171875), (float)(1.04));
- canvas.fillRect((float)(472), (float)(295), (float)(25.1767578125), (float)(1.04));
- canvas.fillRect((float)(505.4765625), (float)(295), (float)(32.2435302734375), (float)(1.04));
- canvas.fillRect((float)(546.0198974609375), (float)(295), (float)(72.786865234375), (float)(1.04));
- canvas.fillRect((float)(627.1065673828125), (float)(295), (float)(50.8934326171875), (float)(1.04));
- canvas.fillRect((float)(472), (float)(306), (float)(25.1767578125), (float)(1.04));
- canvas.fillRect((float)(505.4765625), (float)(306), (float)(32.2435302734375), (float)(1.04));
- canvas.fillRect((float)(546.0198974609375), (float)(306), (float)(32.2435302734375), (float)(1.04));
- canvas.fillRect((float)(586.563232421875), (float)(306), (float)(32.2435302734375), (float)(1.04));
- canvas.fillRect((float)(627.1065673828125), (float)(306), (float)(50.8934326171875), (float)(1.04));
- canvas.fillRect((float)(472), (float)(317), (float)(65.7200927734375), (float)(1.04));
- canvas.fillRect((float)(546.0198974609375), (float)(317), (float)(32.2435302734375), (float)(1.04));
- canvas.fillRect((float)(586.563232421875), (float)(317), (float)(32.2435302734375), (float)(1.04));
- canvas.fillRect((float)(627.1065673828125), (float)(317), (float)(50.8934326171875), (float)(1.04));
- canvas.fillRect((float)(472), (float)(328), (float)(65.7200927734375), (float)(1.04));
- canvas.fillRect((float)(546.0198974609375), (float)(328), (float)(32.2435302734375), (float)(1.04));
- canvas.fillRect((float)(586.563232421875), (float)(328), (float)(32.2435302734375), (float)(1.04));
- canvas.fillRect((float)(627.1065673828125), (float)(328), (float)(50.8934326171875), (float)(1.04));
- canvas.fillRect((float)(472), (float)(339), (float)(206), (float)(1.04));
- canvas.setColor(AlphaSkiaCanvas.rgbaToColor((byte)(0), (byte)(0), (byte)(0), (byte)(255)));
- canvas.beginPath();
- canvas.moveTo((float)(488), (float)(275.8));
- canvas.lineTo((float)(488), (float)(312.8));
- canvas.stroke();
- canvas.beginPath();
- canvas.moveTo((float)(488), (float)(275.8));
- canvas.lineTo((float)(492), (float)(283.8));
- canvas.lineTo((float)(484), (float)(283.8));
+ setTextStyle(getTextStyle(new String[]{"Noto Sans", "Noto Music", "Noto Color Emoji"}, 400, false));
+ setFontSize((float)(13));
+ setTextStyle(getTextStyle(new String[]{"Noto Sans", "Noto Music", "Noto Color Emoji"}, 400, false));
+ setFontSize((float)(11));
+ canvas.fillText("", getTextStyle(), getFontSize(), (float)(399.52361605132126), (float)(249.3199951171875), getTextAlign(), getTextBaseline());
+ setTextStyle(getTextStyle(new String[]{"Noto Sans", "Noto Music", "Noto Color Emoji"}, 400, false));
+ setFontSize((float)(13));
+ canvas.fillText("5", getTextStyle(), getFontSize(), (float)(389.0876114126494), (float)(249.3199951171875), getTextAlign(), getTextBaseline());
+ setTextBaseline(AlphaSkiaTextBaseline.TOP);
+ canvas.setColor(AlphaSkiaCanvas.rgbaToColor((byte)(153), (byte)(51), (byte)(204), (byte)(100)));
+ canvas.fillRect((float)(432), (float)(216.3199951171875), (float)(1), (float)(54.99999999999994));
+ canvas.setColor(AlphaSkiaCanvas.rgbaToColor((byte)(0), (byte)(0), (byte)(0), (byte)(255)));
+ canvas.setColor(AlphaSkiaCanvas.rgbaToColor((byte)(165), (byte)(165), (byte)(165), (byte)(255)));
+ canvas.fillRect((float)(433), (float)(216), (float)(25.292007446289062), (float)(1.04));
+ canvas.fillRect((float)(466.72801208496094), (float)(216), (float)(32.061492919921875), (float)(1.04));
+ canvas.fillRect((float)(507.2255096435547), (float)(216), (float)(72.55899047851562), (float)(1.04));
+ canvas.fillRect((float)(588.2205047607422), (float)(216), (float)(36.77949523925781), (float)(1.04));
+ canvas.fillRect((float)(433), (float)(227), (float)(25.292007446289062), (float)(1.04));
+ canvas.fillRect((float)(466.72801208496094), (float)(227), (float)(32.061492919921875), (float)(1.04));
+ canvas.fillRect((float)(507.2255096435547), (float)(227), (float)(72.55899047851562), (float)(1.04));
+ canvas.fillRect((float)(588.2205047607422), (float)(227), (float)(36.77949523925781), (float)(1.04));
+ canvas.fillRect((float)(433), (float)(238), (float)(25.292007446289062), (float)(1.04));
+ canvas.fillRect((float)(466.72801208496094), (float)(238), (float)(32.061492919921875), (float)(1.04));
+ canvas.fillRect((float)(507.2255096435547), (float)(238), (float)(32.061492919921875), (float)(1.04));
+ canvas.fillRect((float)(547.7230072021484), (float)(238), (float)(32.061492919921875), (float)(1.04));
+ canvas.fillRect((float)(588.2205047607422), (float)(238), (float)(36.77949523925781), (float)(1.04));
+ canvas.fillRect((float)(433), (float)(249), (float)(65.78950500488281), (float)(1.04));
+ canvas.fillRect((float)(507.2255096435547), (float)(249), (float)(32.061492919921875), (float)(1.04));
+ canvas.fillRect((float)(547.7230072021484), (float)(249), (float)(32.061492919921875), (float)(1.04));
+ canvas.fillRect((float)(588.2205047607422), (float)(249), (float)(36.77949523925781), (float)(1.04));
+ canvas.fillRect((float)(433), (float)(260), (float)(65.78950500488281), (float)(1.04));
+ canvas.fillRect((float)(507.2255096435547), (float)(260), (float)(32.061492919921875), (float)(1.04));
+ canvas.fillRect((float)(547.7230072021484), (float)(260), (float)(32.061492919921875), (float)(1.04));
+ canvas.fillRect((float)(588.2205047607422), (float)(260), (float)(36.77949523925781), (float)(1.04));
+ canvas.fillRect((float)(433), (float)(271), (float)(192), (float)(1.04));
+ canvas.setColor(AlphaSkiaCanvas.rgbaToColor((byte)(0), (byte)(0), (byte)(0), (byte)(255)));
+ canvas.setColor(AlphaSkiaCanvas.rgbaToColor((byte)(153), (byte)(51), (byte)(204), (byte)(100)));
+ canvas.setColor(AlphaSkiaCanvas.rgbaToColor((byte)(0), (byte)(0), (byte)(0), (byte)(255)));
+ canvas.beginPath();
+ canvas.moveTo((float)(449), (float)(207.8199951171875));
+ canvas.lineTo((float)(449), (float)(244.8199951171875));
+ canvas.stroke();
+ canvas.beginPath();
+ canvas.moveTo((float)(449), (float)(207.8199951171875));
+ canvas.lineTo((float)(453), (float)(215.8199951171875));
+ canvas.lineTo((float)(445), (float)(215.8199951171875));
canvas.closePath();
canvas.fill();
setTextBaseline(AlphaSkiaTextBaseline.MIDDLE);
- setTypeface(getTypeface("Roboto", false, false));
+ setTextStyle(getTextStyle(new String[]{"Noto Sans", "Noto Music", "Noto Color Emoji"}, 400, false));
setFontSize((float)(13));
- setTypeface(getTypeface("Roboto", false, false));
+ setTextStyle(getTextStyle(new String[]{"Noto Sans", "Noto Music", "Noto Color Emoji"}, 400, false));
setFontSize((float)(11));
- canvas.fillText("", getTypeface(), getFontSize(), (float)(507.4765625), (float)(284.3), getTextAlign(), getTextBaseline());
- setTypeface(getTypeface("Roboto", false, false));
+ canvas.fillText("", getTextStyle(), getFontSize(), (float)(468.72801208496094), (float)(216.3199951171875), getTextAlign(), getTextBaseline());
+ setTextStyle(getTextStyle(new String[]{"Noto Sans", "Noto Music", "Noto Color Emoji"}, 400, false));
setFontSize((float)(13));
- canvas.fillText("0", getTypeface(), getFontSize(), (float)(497.1767578125), (float)(284.3), getTextAlign(), getTextBaseline());
- setTypeface(getTypeface("Roboto", false, false));
+ canvas.fillText("0", getTextStyle(), getFontSize(), (float)(458.29200744628906), (float)(216.3199951171875), getTextAlign(), getTextBaseline());
+ setTextStyle(getTextStyle(new String[]{"Noto Sans", "Noto Music", "Noto Color Emoji"}, 400, false));
setFontSize((float)(11));
- canvas.fillText("", getTypeface(), getFontSize(), (float)(507.4765625), (float)(295.3), getTextAlign(), getTextBaseline());
- setTypeface(getTypeface("Roboto", false, false));
+ canvas.fillText("", getTextStyle(), getFontSize(), (float)(468.72801208496094), (float)(227.3199951171875), getTextAlign(), getTextBaseline());
+ setTextStyle(getTextStyle(new String[]{"Noto Sans", "Noto Music", "Noto Color Emoji"}, 400, false));
setFontSize((float)(13));
- canvas.fillText("1", getTypeface(), getFontSize(), (float)(497.1767578125), (float)(295.3), getTextAlign(), getTextBaseline());
- setTypeface(getTypeface("Roboto", false, false));
+ canvas.fillText("1", getTextStyle(), getFontSize(), (float)(458.29200744628906), (float)(227.3199951171875), getTextAlign(), getTextBaseline());
+ setTextStyle(getTextStyle(new String[]{"Noto Sans", "Noto Music", "Noto Color Emoji"}, 400, false));
setFontSize((float)(11));
- canvas.fillText("", getTypeface(), getFontSize(), (float)(507.4765625), (float)(306.3), getTextAlign(), getTextBaseline());
- setTypeface(getTypeface("Roboto", false, false));
+ canvas.fillText("", getTextStyle(), getFontSize(), (float)(468.72801208496094), (float)(238.3199951171875), getTextAlign(), getTextBaseline());
+ setTextStyle(getTextStyle(new String[]{"Noto Sans", "Noto Music", "Noto Color Emoji"}, 400, false));
setFontSize((float)(13));
- canvas.fillText("0", getTypeface(), getFontSize(), (float)(497.1767578125), (float)(306.3), getTextAlign(), getTextBaseline());
+ canvas.fillText("0", getTextStyle(), getFontSize(), (float)(458.29200744628906), (float)(238.3199951171875), getTextAlign(), getTextBaseline());
setTextBaseline(AlphaSkiaTextBaseline.TOP);
- canvas.beginRotate((float)(527.7200927734375), (float)(326.8), (float)(-90));
- canvas.fillText("\uEAA4", getMusicTypeface(), (float)(getMusicFontSize() * 1.2), (float)(0), (float)(10.799999999999999), AlphaSkiaTextAlign.LEFT, AlphaSkiaTextBaseline.ALPHABETIC);
- canvas.fillText("\uEAA4", getMusicTypeface(), (float)(getMusicFontSize() * 1.2), (float)(10.799999999999999), (float)(10.799999999999999), AlphaSkiaTextAlign.LEFT, AlphaSkiaTextBaseline.ALPHABETIC);
- canvas.fillText("\uEAA4", getMusicTypeface(), (float)(getMusicFontSize() * 1.2), (float)(21.599999999999998), (float)(10.799999999999999), AlphaSkiaTextAlign.LEFT, AlphaSkiaTextBaseline.ALPHABETIC);
- canvas.fillText("\uEAA4", getMusicTypeface(), (float)(getMusicFontSize() * 1.2), (float)(32.4), (float)(10.799999999999999), AlphaSkiaTextAlign.LEFT, AlphaSkiaTextBaseline.ALPHABETIC);
- canvas.fillText("\uEAA4", getMusicTypeface(), (float)(getMusicFontSize() * 1.2), (float)(43.199999999999996), (float)(10.799999999999999), AlphaSkiaTextAlign.LEFT, AlphaSkiaTextBaseline.ALPHABETIC);
+ canvas.beginRotate((float)(488.7895050048828), (float)(258.8199951171875), (float)(-90));
+ canvas.fillText("\uEAA4", getMusicTextStyle(), (float)(getMusicFontSize() * 1.2), (float)(0), (float)(10.799999999999999), AlphaSkiaTextAlign.LEFT, AlphaSkiaTextBaseline.ALPHABETIC);
+ canvas.fillText("\uEAA4", getMusicTextStyle(), (float)(getMusicFontSize() * 1.2), (float)(10.799999999999999), (float)(10.799999999999999), AlphaSkiaTextAlign.LEFT, AlphaSkiaTextBaseline.ALPHABETIC);
+ canvas.fillText("\uEAA4", getMusicTextStyle(), (float)(getMusicFontSize() * 1.2), (float)(21.599999999999998), (float)(10.799999999999999), AlphaSkiaTextAlign.LEFT, AlphaSkiaTextBaseline.ALPHABETIC);
+ canvas.fillText("\uEAA4", getMusicTextStyle(), (float)(getMusicFontSize() * 1.2), (float)(32.4), (float)(10.799999999999999), AlphaSkiaTextAlign.LEFT, AlphaSkiaTextBaseline.ALPHABETIC);
+ canvas.fillText("\uEAA4", getMusicTextStyle(), (float)(getMusicFontSize() * 1.2), (float)(43.199999999999996), (float)(10.799999999999999), AlphaSkiaTextAlign.LEFT, AlphaSkiaTextBaseline.ALPHABETIC);
canvas.endRotate();
canvas.beginPath();
- canvas.moveTo((float)(528), (float)(334.8));
- canvas.lineTo((float)(532), (float)(326.8));
- canvas.lineTo((float)(524), (float)(326.8));
+ canvas.moveTo((float)(489), (float)(266.8199951171875));
+ canvas.lineTo((float)(493), (float)(258.8199951171875));
+ canvas.lineTo((float)(485), (float)(258.8199951171875));
canvas.closePath();
canvas.fill();
setTextBaseline(AlphaSkiaTextBaseline.MIDDLE);
- setTypeface(getTypeface("Roboto", false, false));
+ setTextStyle(getTextStyle(new String[]{"Noto Sans", "Noto Music", "Noto Color Emoji"}, 400, false));
setFontSize((float)(13));
- setTypeface(getTypeface("Roboto", false, false));
+ setTextStyle(getTextStyle(new String[]{"Noto Sans", "Noto Music", "Noto Color Emoji"}, 400, false));
setFontSize((float)(11));
- canvas.fillText("", getTypeface(), getFontSize(), (float)(548.0198974609375), (float)(284.3), getTextAlign(), getTextBaseline());
- setTypeface(getTypeface("Roboto", false, false));
+ canvas.fillText("", getTextStyle(), getFontSize(), (float)(509.2255096435547), (float)(216.3199951171875), getTextAlign(), getTextBaseline());
+ setTextStyle(getTextStyle(new String[]{"Noto Sans", "Noto Music", "Noto Color Emoji"}, 400, false));
setFontSize((float)(13));
- canvas.fillText("0", getTypeface(), getFontSize(), (float)(537.7200927734375), (float)(284.3), getTextAlign(), getTextBaseline());
- setTypeface(getTypeface("Roboto", false, false));
+ canvas.fillText("0", getTextStyle(), getFontSize(), (float)(498.7895050048828), (float)(216.3199951171875), getTextAlign(), getTextBaseline());
+ setTextStyle(getTextStyle(new String[]{"Noto Sans", "Noto Music", "Noto Color Emoji"}, 400, false));
setFontSize((float)(11));
- canvas.fillText("", getTypeface(), getFontSize(), (float)(548.0198974609375), (float)(295.3), getTextAlign(), getTextBaseline());
- setTypeface(getTypeface("Roboto", false, false));
+ canvas.fillText("", getTextStyle(), getFontSize(), (float)(509.2255096435547), (float)(227.3199951171875), getTextAlign(), getTextBaseline());
+ setTextStyle(getTextStyle(new String[]{"Noto Sans", "Noto Music", "Noto Color Emoji"}, 400, false));
setFontSize((float)(13));
- canvas.fillText("1", getTypeface(), getFontSize(), (float)(537.7200927734375), (float)(295.3), getTextAlign(), getTextBaseline());
- setTypeface(getTypeface("Roboto", false, false));
+ canvas.fillText("1", getTextStyle(), getFontSize(), (float)(498.7895050048828), (float)(227.3199951171875), getTextAlign(), getTextBaseline());
+ setTextStyle(getTextStyle(new String[]{"Noto Sans", "Noto Music", "Noto Color Emoji"}, 400, false));
setFontSize((float)(11));
- canvas.fillText("", getTypeface(), getFontSize(), (float)(548.0198974609375), (float)(306.3), getTextAlign(), getTextBaseline());
- setTypeface(getTypeface("Roboto", false, false));
+ canvas.fillText("", getTextStyle(), getFontSize(), (float)(509.2255096435547), (float)(238.3199951171875), getTextAlign(), getTextBaseline());
+ setTextStyle(getTextStyle(new String[]{"Noto Sans", "Noto Music", "Noto Color Emoji"}, 400, false));
setFontSize((float)(13));
- canvas.fillText("0", getTypeface(), getFontSize(), (float)(537.7200927734375), (float)(306.3), getTextAlign(), getTextBaseline());
- setTypeface(getTypeface("Roboto", false, false));
+ canvas.fillText("0", getTextStyle(), getFontSize(), (float)(498.7895050048828), (float)(238.3199951171875), getTextAlign(), getTextBaseline());
+ setTextStyle(getTextStyle(new String[]{"Noto Sans", "Noto Music", "Noto Color Emoji"}, 400, false));
setFontSize((float)(11));
- canvas.fillText("", getTypeface(), getFontSize(), (float)(548.0198974609375), (float)(317.3), getTextAlign(), getTextBaseline());
- setTypeface(getTypeface("Roboto", false, false));
+ canvas.fillText("", getTextStyle(), getFontSize(), (float)(509.2255096435547), (float)(249.3199951171875), getTextAlign(), getTextBaseline());
+ setTextStyle(getTextStyle(new String[]{"Noto Sans", "Noto Music", "Noto Color Emoji"}, 400, false));
setFontSize((float)(13));
- canvas.fillText("2", getTypeface(), getFontSize(), (float)(537.7200927734375), (float)(317.3), getTextAlign(), getTextBaseline());
- setTypeface(getTypeface("Roboto", false, false));
+ canvas.fillText("2", getTextStyle(), getFontSize(), (float)(498.7895050048828), (float)(249.3199951171875), getTextAlign(), getTextBaseline());
+ setTextStyle(getTextStyle(new String[]{"Noto Sans", "Noto Music", "Noto Color Emoji"}, 400, false));
setFontSize((float)(11));
- canvas.fillText("", getTypeface(), getFontSize(), (float)(548.0198974609375), (float)(328.3), getTextAlign(), getTextBaseline());
- setTypeface(getTypeface("Roboto", false, false));
+ canvas.fillText("", getTextStyle(), getFontSize(), (float)(509.2255096435547), (float)(260.3199951171875), getTextAlign(), getTextBaseline());
+ setTextStyle(getTextStyle(new String[]{"Noto Sans", "Noto Music", "Noto Color Emoji"}, 400, false));
setFontSize((float)(13));
- canvas.fillText("3", getTypeface(), getFontSize(), (float)(537.7200927734375), (float)(328.3), getTextAlign(), getTextBaseline());
+ canvas.fillText("3", getTextStyle(), getFontSize(), (float)(498.7895050048828), (float)(260.3199951171875), getTextAlign(), getTextBaseline());
setTextBaseline(AlphaSkiaTextBaseline.TOP);
canvas.beginPath();
- canvas.moveTo((float)(569), (float)(297.8));
- canvas.lineTo((float)(569), (float)(334.8));
+ canvas.moveTo((float)(530), (float)(229.8199951171875));
+ canvas.lineTo((float)(530), (float)(266.8199951171875));
canvas.stroke();
canvas.beginPath();
- canvas.moveTo((float)(569), (float)(297.8));
- canvas.lineTo((float)(573), (float)(305.8));
- canvas.lineTo((float)(565), (float)(305.8));
+ canvas.moveTo((float)(530), (float)(229.8199951171875));
+ canvas.lineTo((float)(534), (float)(237.8199951171875));
+ canvas.lineTo((float)(526), (float)(237.8199951171875));
canvas.closePath();
canvas.fill();
setTextBaseline(AlphaSkiaTextBaseline.MIDDLE);
- setTypeface(getTypeface("Roboto", false, false));
+ setTextStyle(getTextStyle(new String[]{"Noto Sans", "Noto Music", "Noto Color Emoji"}, 400, false));
setFontSize((float)(13));
- setTypeface(getTypeface("Roboto", false, false));
+ setTextStyle(getTextStyle(new String[]{"Noto Sans", "Noto Music", "Noto Color Emoji"}, 400, false));
setFontSize((float)(11));
- canvas.fillText("", getTypeface(), getFontSize(), (float)(588.563232421875), (float)(306.3), getTextAlign(), getTextBaseline());
- setTypeface(getTypeface("Roboto", false, false));
+ canvas.fillText("", getTextStyle(), getFontSize(), (float)(549.7230072021484), (float)(238.3199951171875), getTextAlign(), getTextBaseline());
+ setTextStyle(getTextStyle(new String[]{"Noto Sans", "Noto Music", "Noto Color Emoji"}, 400, false));
setFontSize((float)(13));
- canvas.fillText("2", getTypeface(), getFontSize(), (float)(578.263427734375), (float)(306.3), getTextAlign(), getTextBaseline());
- setTypeface(getTypeface("Roboto", false, false));
+ canvas.fillText("2", getTextStyle(), getFontSize(), (float)(539.2870025634766), (float)(238.3199951171875), getTextAlign(), getTextBaseline());
+ setTextStyle(getTextStyle(new String[]{"Noto Sans", "Noto Music", "Noto Color Emoji"}, 400, false));
setFontSize((float)(11));
- canvas.fillText("", getTypeface(), getFontSize(), (float)(588.563232421875), (float)(317.3), getTextAlign(), getTextBaseline());
- setTypeface(getTypeface("Roboto", false, false));
+ canvas.fillText("", getTextStyle(), getFontSize(), (float)(549.7230072021484), (float)(249.3199951171875), getTextAlign(), getTextBaseline());
+ setTextStyle(getTextStyle(new String[]{"Noto Sans", "Noto Music", "Noto Color Emoji"}, 400, false));
setFontSize((float)(13));
- canvas.fillText("2", getTypeface(), getFontSize(), (float)(578.263427734375), (float)(317.3), getTextAlign(), getTextBaseline());
- setTypeface(getTypeface("Roboto", false, false));
+ canvas.fillText("2", getTextStyle(), getFontSize(), (float)(539.2870025634766), (float)(249.3199951171875), getTextAlign(), getTextBaseline());
+ setTextStyle(getTextStyle(new String[]{"Noto Sans", "Noto Music", "Noto Color Emoji"}, 400, false));
setFontSize((float)(11));
- canvas.fillText("", getTypeface(), getFontSize(), (float)(588.563232421875), (float)(328.3), getTextAlign(), getTextBaseline());
- setTypeface(getTypeface("Roboto", false, false));
+ canvas.fillText("", getTextStyle(), getFontSize(), (float)(549.7230072021484), (float)(260.3199951171875), getTextAlign(), getTextBaseline());
+ setTextStyle(getTextStyle(new String[]{"Noto Sans", "Noto Music", "Noto Color Emoji"}, 400, false));
setFontSize((float)(13));
- canvas.fillText("0", getTypeface(), getFontSize(), (float)(578.263427734375), (float)(328.3), getTextAlign(), getTextBaseline());
+ canvas.fillText("0", getTextStyle(), getFontSize(), (float)(539.2870025634766), (float)(260.3199951171875), getTextAlign(), getTextBaseline());
setTextBaseline(AlphaSkiaTextBaseline.TOP);
- canvas.beginRotate((float)(596.8067626953125), (float)(283.8), (float)(90));
- canvas.fillText("\uEAA4", getMusicTypeface(), (float)(getMusicFontSize() * 1.2), (float)(0), (float)(10.799999999999999), AlphaSkiaTextAlign.LEFT, AlphaSkiaTextBaseline.ALPHABETIC);
- canvas.fillText("\uEAA4", getMusicTypeface(), (float)(getMusicFontSize() * 1.2), (float)(10.799999999999999), (float)(10.799999999999999), AlphaSkiaTextAlign.LEFT, AlphaSkiaTextBaseline.ALPHABETIC);
- canvas.fillText("\uEAA4", getMusicTypeface(), (float)(getMusicFontSize() * 1.2), (float)(21.599999999999998), (float)(10.799999999999999), AlphaSkiaTextAlign.LEFT, AlphaSkiaTextBaseline.ALPHABETIC);
- canvas.fillText("\uEAA4", getMusicTypeface(), (float)(getMusicFontSize() * 1.2), (float)(32.4), (float)(10.799999999999999), AlphaSkiaTextAlign.LEFT, AlphaSkiaTextBaseline.ALPHABETIC);
- canvas.fillText("\uEAA4", getMusicTypeface(), (float)(getMusicFontSize() * 1.2), (float)(43.199999999999996), (float)(10.799999999999999), AlphaSkiaTextAlign.LEFT, AlphaSkiaTextBaseline.ALPHABETIC);
+ canvas.beginRotate((float)(569.7845001220703), (float)(215.8199951171875), (float)(90));
+ canvas.fillText("\uEAA4", getMusicTextStyle(), (float)(getMusicFontSize() * 1.2), (float)(0), (float)(10.799999999999999), AlphaSkiaTextAlign.LEFT, AlphaSkiaTextBaseline.ALPHABETIC);
+ canvas.fillText("\uEAA4", getMusicTextStyle(), (float)(getMusicFontSize() * 1.2), (float)(10.799999999999999), (float)(10.799999999999999), AlphaSkiaTextAlign.LEFT, AlphaSkiaTextBaseline.ALPHABETIC);
+ canvas.fillText("\uEAA4", getMusicTextStyle(), (float)(getMusicFontSize() * 1.2), (float)(21.599999999999998), (float)(10.799999999999999), AlphaSkiaTextAlign.LEFT, AlphaSkiaTextBaseline.ALPHABETIC);
+ canvas.fillText("\uEAA4", getMusicTextStyle(), (float)(getMusicFontSize() * 1.2), (float)(32.4), (float)(10.799999999999999), AlphaSkiaTextAlign.LEFT, AlphaSkiaTextBaseline.ALPHABETIC);
+ canvas.fillText("\uEAA4", getMusicTextStyle(), (float)(getMusicFontSize() * 1.2), (float)(43.199999999999996), (float)(10.799999999999999), AlphaSkiaTextAlign.LEFT, AlphaSkiaTextBaseline.ALPHABETIC);
canvas.endRotate();
canvas.beginPath();
- canvas.moveTo((float)(597), (float)(275.8));
- canvas.lineTo((float)(601), (float)(283.8));
- canvas.lineTo((float)(593), (float)(283.8));
+ canvas.moveTo((float)(570), (float)(207.8199951171875));
+ canvas.lineTo((float)(574), (float)(215.8199951171875));
+ canvas.lineTo((float)(566), (float)(215.8199951171875));
canvas.closePath();
canvas.fill();
setTextBaseline(AlphaSkiaTextBaseline.MIDDLE);
- setTypeface(getTypeface("Roboto", false, false));
+ setTextStyle(getTextStyle(new String[]{"Noto Sans", "Noto Music", "Noto Color Emoji"}, 400, false));
setFontSize((float)(13));
- setTypeface(getTypeface("Roboto", false, false));
+ setTextStyle(getTextStyle(new String[]{"Noto Sans", "Noto Music", "Noto Color Emoji"}, 400, false));
setFontSize((float)(11));
- canvas.fillText("", getTypeface(), getFontSize(), (float)(629.1065673828125), (float)(284.3), getTextAlign(), getTextBaseline());
- setTypeface(getTypeface("Roboto", false, false));
+ canvas.fillText("", getTextStyle(), getFontSize(), (float)(590.2205047607422), (float)(216.3199951171875), getTextAlign(), getTextBaseline());
+ setTextStyle(getTextStyle(new String[]{"Noto Sans", "Noto Music", "Noto Color Emoji"}, 400, false));
setFontSize((float)(13));
- canvas.fillText("0", getTypeface(), getFontSize(), (float)(618.8067626953125), (float)(284.3), getTextAlign(), getTextBaseline());
- setTypeface(getTypeface("Roboto", false, false));
+ canvas.fillText("0", getTextStyle(), getFontSize(), (float)(579.7845001220703), (float)(216.3199951171875), getTextAlign(), getTextBaseline());
+ setTextStyle(getTextStyle(new String[]{"Noto Sans", "Noto Music", "Noto Color Emoji"}, 400, false));
setFontSize((float)(11));
- canvas.fillText("", getTypeface(), getFontSize(), (float)(629.1065673828125), (float)(295.3), getTextAlign(), getTextBaseline());
- setTypeface(getTypeface("Roboto", false, false));
+ canvas.fillText("", getTextStyle(), getFontSize(), (float)(590.2205047607422), (float)(227.3199951171875), getTextAlign(), getTextBaseline());
+ setTextStyle(getTextStyle(new String[]{"Noto Sans", "Noto Music", "Noto Color Emoji"}, 400, false));
setFontSize((float)(13));
- canvas.fillText("2", getTypeface(), getFontSize(), (float)(618.8067626953125), (float)(295.3), getTextAlign(), getTextBaseline());
- setTypeface(getTypeface("Roboto", false, false));
+ canvas.fillText("2", getTextStyle(), getFontSize(), (float)(579.7845001220703), (float)(227.3199951171875), getTextAlign(), getTextBaseline());
+ setTextStyle(getTextStyle(new String[]{"Noto Sans", "Noto Music", "Noto Color Emoji"}, 400, false));
setFontSize((float)(11));
- canvas.fillText("", getTypeface(), getFontSize(), (float)(629.1065673828125), (float)(306.3), getTextAlign(), getTextBaseline());
- setTypeface(getTypeface("Roboto", false, false));
+ canvas.fillText("", getTextStyle(), getFontSize(), (float)(590.2205047607422), (float)(238.3199951171875), getTextAlign(), getTextBaseline());
+ setTextStyle(getTextStyle(new String[]{"Noto Sans", "Noto Music", "Noto Color Emoji"}, 400, false));
setFontSize((float)(13));
- canvas.fillText("2", getTypeface(), getFontSize(), (float)(618.8067626953125), (float)(306.3), getTextAlign(), getTextBaseline());
- setTypeface(getTypeface("Roboto", false, false));
+ canvas.fillText("2", getTextStyle(), getFontSize(), (float)(579.7845001220703), (float)(238.3199951171875), getTextAlign(), getTextBaseline());
+ setTextStyle(getTextStyle(new String[]{"Noto Sans", "Noto Music", "Noto Color Emoji"}, 400, false));
setFontSize((float)(11));
- canvas.fillText("", getTypeface(), getFontSize(), (float)(629.1065673828125), (float)(317.3), getTextAlign(), getTextBaseline());
- setTypeface(getTypeface("Roboto", false, false));
+ canvas.fillText("", getTextStyle(), getFontSize(), (float)(590.2205047607422), (float)(249.3199951171875), getTextAlign(), getTextBaseline());
+ setTextStyle(getTextStyle(new String[]{"Noto Sans", "Noto Music", "Noto Color Emoji"}, 400, false));
setFontSize((float)(13));
- canvas.fillText("2", getTypeface(), getFontSize(), (float)(618.8067626953125), (float)(317.3), getTextAlign(), getTextBaseline());
- setTypeface(getTypeface("Roboto", false, false));
+ canvas.fillText("2", getTextStyle(), getFontSize(), (float)(579.7845001220703), (float)(249.3199951171875), getTextAlign(), getTextBaseline());
+ setTextStyle(getTextStyle(new String[]{"Noto Sans", "Noto Music", "Noto Color Emoji"}, 400, false));
setFontSize((float)(11));
- canvas.fillText("", getTypeface(), getFontSize(), (float)(629.1065673828125), (float)(328.3), getTextAlign(), getTextBaseline());
- setTypeface(getTypeface("Roboto", false, false));
+ canvas.fillText("", getTextStyle(), getFontSize(), (float)(590.2205047607422), (float)(260.3199951171875), getTextAlign(), getTextBaseline());
+ setTextStyle(getTextStyle(new String[]{"Noto Sans", "Noto Music", "Noto Color Emoji"}, 400, false));
setFontSize((float)(13));
- canvas.fillText("0", getTypeface(), getFontSize(), (float)(618.8067626953125), (float)(328.3), getTextAlign(), getTextBaseline());
+ canvas.fillText("0", getTextStyle(), getFontSize(), (float)(579.7845001220703), (float)(260.3199951171875), getTextAlign(), getTextBaseline());
setTextBaseline(AlphaSkiaTextBaseline.TOP);
- canvas.fillRect((float)(670), (float)(284.3), (float)(1), (float)(54.99999999999994));
- canvas.fillRect((float)(674), (float)(284.3), (float)(4), (float)(54.99999999999994));
canvas.setColor(AlphaSkiaCanvas.rgbaToColor((byte)(153), (byte)(51), (byte)(204), (byte)(100)));
- canvas.beginPath();
- canvas.moveTo((float)(92), (float)(130.1));
- canvas.lineTo((float)(92), (float)(339.3));
- canvas.stroke();
- setTypeface(getTypeface("PT Serif", false, true));
+ canvas.fillRect((float)(624), (float)(216.3199951171875), (float)(1), (float)(54.99999999999994));
+ canvas.setColor(AlphaSkiaCanvas.rgbaToColor((byte)(0), (byte)(0), (byte)(0), (byte)(255)));
+ canvas.setColor(AlphaSkiaCanvas.rgbaToColor((byte)(165), (byte)(165), (byte)(165), (byte)(255)));
+ canvas.fillRect((float)(625), (float)(216), (float)(82), (float)(1.04));
+ canvas.fillRect((float)(625), (float)(227), (float)(82), (float)(1.04));
+ canvas.fillRect((float)(625), (float)(238), (float)(82), (float)(1.04));
+ canvas.fillRect((float)(625), (float)(249), (float)(82), (float)(1.04));
+ canvas.fillRect((float)(625), (float)(260), (float)(82), (float)(1.04));
+ canvas.fillRect((float)(625), (float)(271), (float)(82), (float)(1.04));
+ canvas.setColor(AlphaSkiaCanvas.rgbaToColor((byte)(0), (byte)(0), (byte)(0), (byte)(255)));
+ canvas.setColor(AlphaSkiaCanvas.rgbaToColor((byte)(153), (byte)(51), (byte)(204), (byte)(100)));
+ canvas.setColor(AlphaSkiaCanvas.rgbaToColor((byte)(0), (byte)(0), (byte)(0), (byte)(255)));
+ canvas.setColor(AlphaSkiaCanvas.rgbaToColor((byte)(0), (byte)(0), (byte)(0), (byte)(100)));
+ canvas.setColor(AlphaSkiaCanvas.rgbaToColor((byte)(0), (byte)(0), (byte)(0), (byte)(255)));
+ canvas.setColor(AlphaSkiaCanvas.rgbaToColor((byte)(0), (byte)(0), (byte)(0), (byte)(100)));
+ canvas.setColor(AlphaSkiaCanvas.rgbaToColor((byte)(0), (byte)(0), (byte)(0), (byte)(255)));
+ canvas.setColor(AlphaSkiaCanvas.rgbaToColor((byte)(0), (byte)(0), (byte)(0), (byte)(100)));
+ canvas.setColor(AlphaSkiaCanvas.rgbaToColor((byte)(0), (byte)(0), (byte)(0), (byte)(255)));
+ canvas.setColor(AlphaSkiaCanvas.rgbaToColor((byte)(153), (byte)(51), (byte)(204), (byte)(100)));
+ canvas.fillRect((float)(706), (float)(216.3199951171875), (float)(1), (float)(54.99999999999994));
+ canvas.setColor(AlphaSkiaCanvas.rgbaToColor((byte)(0), (byte)(0), (byte)(0), (byte)(255)));
+ canvas.setColor(AlphaSkiaCanvas.rgbaToColor((byte)(165), (byte)(165), (byte)(165), (byte)(255)));
+ canvas.fillRect((float)(707), (float)(216), (float)(163), (float)(1.04));
+ canvas.fillRect((float)(707), (float)(227), (float)(12.074005126953125), (float)(1.04));
+ canvas.fillRect((float)(727.510009765625), (float)(227), (float)(28.11599349975586), (float)(1.04));
+ canvas.fillRect((float)(764.0620079040527), (float)(227), (float)(28.11599349975586), (float)(1.04));
+ canvas.fillRect((float)(800.6140060424805), (float)(227), (float)(28.115989685058594), (float)(1.04));
+ canvas.fillRect((float)(837.1660003662109), (float)(227), (float)(32.83399963378906), (float)(1.04));
+ canvas.fillRect((float)(707), (float)(238), (float)(163), (float)(1.04));
+ canvas.fillRect((float)(707), (float)(249), (float)(163), (float)(1.04));
+ canvas.fillRect((float)(707), (float)(260), (float)(163), (float)(1.04));
+ canvas.fillRect((float)(707), (float)(271), (float)(163), (float)(1.04));
+ canvas.setColor(AlphaSkiaCanvas.rgbaToColor((byte)(0), (byte)(0), (byte)(0), (byte)(255)));
+ canvas.setColor(AlphaSkiaCanvas.rgbaToColor((byte)(153), (byte)(51), (byte)(204), (byte)(100)));
+ canvas.setColor(AlphaSkiaCanvas.rgbaToColor((byte)(0), (byte)(0), (byte)(0), (byte)(255)));
+ setTextBaseline(AlphaSkiaTextBaseline.MIDDLE);
+ setTextStyle(getTextStyle(new String[]{"Noto Sans", "Noto Music", "Noto Color Emoji"}, 400, false));
+ setFontSize((float)(13));
+ setTextStyle(getTextStyle(new String[]{"Noto Sans", "Noto Music", "Noto Color Emoji"}, 400, false));
+ setFontSize((float)(11));
+ canvas.fillText("", getTextStyle(), getFontSize(), (float)(729.510009765625), (float)(227.3199951171875), getTextAlign(), getTextBaseline());
+ setTextStyle(getTextStyle(new String[]{"Noto Sans", "Noto Music", "Noto Color Emoji"}, 400, false));
+ setFontSize((float)(13));
+ canvas.fillText("3", getTextStyle(), getFontSize(), (float)(719.0740051269531), (float)(227.3199951171875), getTextAlign(), getTextBaseline());
+ setTextBaseline(AlphaSkiaTextBaseline.TOP);
+ setTextBaseline(AlphaSkiaTextBaseline.MIDDLE);
+ setTextStyle(getTextStyle(new String[]{"Noto Sans", "Noto Music", "Noto Color Emoji"}, 400, false));
+ setFontSize((float)(13));
+ setTextStyle(getTextStyle(new String[]{"Noto Sans", "Noto Music", "Noto Color Emoji"}, 400, false));
+ setFontSize((float)(11));
+ canvas.fillText("", getTextStyle(), getFontSize(), (float)(766.0620079040527), (float)(227.3199951171875), getTextAlign(), getTextBaseline());
+ setTextStyle(getTextStyle(new String[]{"Noto Sans", "Noto Music", "Noto Color Emoji"}, 400, false));
+ setFontSize((float)(13));
+ canvas.fillText("3", getTextStyle(), getFontSize(), (float)(755.6260032653809), (float)(227.3199951171875), getTextAlign(), getTextBaseline());
+ setTextBaseline(AlphaSkiaTextBaseline.TOP);
+ setTextBaseline(AlphaSkiaTextBaseline.MIDDLE);
+ setTextStyle(getTextStyle(new String[]{"Noto Sans", "Noto Music", "Noto Color Emoji"}, 400, false));
+ setFontSize((float)(13));
+ setTextStyle(getTextStyle(new String[]{"Noto Sans", "Noto Music", "Noto Color Emoji"}, 400, false));
+ setFontSize((float)(11));
+ canvas.fillText("", getTextStyle(), getFontSize(), (float)(802.6140060424805), (float)(227.3199951171875), getTextAlign(), getTextBaseline());
+ setTextStyle(getTextStyle(new String[]{"Noto Sans", "Noto Music", "Noto Color Emoji"}, 400, false));
+ setFontSize((float)(13));
+ canvas.fillText("3", getTextStyle(), getFontSize(), (float)(792.1780014038086), (float)(227.3199951171875), getTextAlign(), getTextBaseline());
+ setTextBaseline(AlphaSkiaTextBaseline.TOP);
+ setTextBaseline(AlphaSkiaTextBaseline.MIDDLE);
+ setTextStyle(getTextStyle(new String[]{"Noto Sans", "Noto Music", "Noto Color Emoji"}, 400, false));
+ setFontSize((float)(13));
+ setTextStyle(getTextStyle(new String[]{"Noto Sans", "Noto Music", "Noto Color Emoji"}, 400, false));
+ setFontSize((float)(11));
+ canvas.fillText("", getTextStyle(), getFontSize(), (float)(839.1660041809082), (float)(227.3199951171875), getTextAlign(), getTextBaseline());
+ setTextStyle(getTextStyle(new String[]{"Noto Sans", "Noto Music", "Noto Color Emoji"}, 400, false));
+ setFontSize((float)(13));
+ canvas.fillText("3", getTextStyle(), getFontSize(), (float)(828.7299995422363), (float)(227.3199951171875), getTextAlign(), getTextBaseline());
+ setTextBaseline(AlphaSkiaTextBaseline.TOP);
+ canvas.setColor(AlphaSkiaCanvas.rgbaToColor((byte)(153), (byte)(51), (byte)(204), (byte)(100)));
+ canvas.fillRect((float)(869), (float)(216.3199951171875), (float)(1), (float)(54.99999999999994));
+ canvas.setColor(AlphaSkiaCanvas.rgbaToColor((byte)(0), (byte)(0), (byte)(0), (byte)(255)));
+ canvas.setColor(AlphaSkiaCanvas.rgbaToColor((byte)(165), (byte)(165), (byte)(165), (byte)(255)));
+ canvas.fillRect((float)(870), (float)(216), (float)(60), (float)(1.04));
+ canvas.fillRect((float)(870), (float)(227), (float)(12.074005126953125), (float)(1.04));
+ canvas.fillRect((float)(890.510009765625), (float)(227), (float)(39.489990234375), (float)(1.04));
+ canvas.fillRect((float)(870), (float)(238), (float)(60), (float)(1.04));
+ canvas.fillRect((float)(870), (float)(249), (float)(60), (float)(1.04));
+ canvas.fillRect((float)(870), (float)(260), (float)(60), (float)(1.04));
+ canvas.fillRect((float)(870), (float)(271), (float)(60), (float)(1.04));
+ canvas.setColor(AlphaSkiaCanvas.rgbaToColor((byte)(0), (byte)(0), (byte)(0), (byte)(255)));
+ canvas.setColor(AlphaSkiaCanvas.rgbaToColor((byte)(153), (byte)(51), (byte)(204), (byte)(100)));
+ canvas.setColor(AlphaSkiaCanvas.rgbaToColor((byte)(0), (byte)(0), (byte)(0), (byte)(255)));
+ setTextBaseline(AlphaSkiaTextBaseline.MIDDLE);
+ setTextStyle(getTextStyle(new String[]{"Noto Sans", "Noto Music", "Noto Color Emoji"}, 400, false));
+ setFontSize((float)(13));
+ setTextStyle(getTextStyle(new String[]{"Noto Sans", "Noto Music", "Noto Color Emoji"}, 400, false));
+ setFontSize((float)(11));
+ canvas.fillText("", getTextStyle(), getFontSize(), (float)(892.510009765625), (float)(227.3199951171875), getTextAlign(), getTextBaseline());
+ setTextStyle(getTextStyle(new String[]{"Noto Sans", "Noto Music", "Noto Color Emoji"}, 400, false));
+ setFontSize((float)(13));
+ canvas.fillText("3", getTextStyle(), getFontSize(), (float)(882.0740051269531), (float)(227.3199951171875), getTextAlign(), getTextBaseline());
+ setTextBaseline(AlphaSkiaTextBaseline.TOP);
+ canvas.setColor(AlphaSkiaCanvas.rgbaToColor((byte)(153), (byte)(51), (byte)(204), (byte)(100)));
+ canvas.fillRect((float)(922), (float)(216.3199951171875), (float)(1), (float)(54.99999999999994));
+ canvas.fillRect((float)(926), (float)(216.3199951171875), (float)(4), (float)(54.99999999999994));
+ canvas.setColor(AlphaSkiaCanvas.rgbaToColor((byte)(0), (byte)(0), (byte)(0), (byte)(255)));
+ canvas.setColor(AlphaSkiaCanvas.rgbaToColor((byte)(153), (byte)(51), (byte)(204), (byte)(100)));
+ setTextStyle(getTextStyle(new String[]{"Noto Serif", "Noto Music", "Noto Color Emoji"}, 400, true));
setFontSize((float)(12));
- canvas.fillText("s.guit.", getTypeface(), getFontSize(), (float)(50), (float)(130.1), getTextAlign(), getTextBaseline());
- canvas.fillRect((float)(86), (float)(118.1), (float)(3), (float)(233.20000000000002));
- canvas.beginPath();
- canvas.moveTo((float)(86), (float)(118.1));
- canvas.bezierCurveTo((float)(86), (float)(118.1), (float)(86), (float)(118.1), (float)(98), (float)(115.1));
- canvas.bezierCurveTo((float)(92), (float)(121.1), (float)(86), (float)(121.1), (float)(86), (float)(121.1));
- canvas.closePath();
- canvas.fill();
- canvas.beginPath();
- canvas.moveTo((float)(86), (float)(351.3));
- canvas.bezierCurveTo((float)(86), (float)(351.3), (float)(92), (float)(351.3), (float)(98), (float)(354.3));
- canvas.bezierCurveTo((float)(92), (float)(348.3), (float)(86), (float)(348.3), (float)(86), (float)(348.3));
- canvas.closePath();
- canvas.fill();
+ setTextBaseline(AlphaSkiaTextBaseline.BOTTOM);
+ setTextAlign(AlphaSkiaTextAlign.CENTER);
+ canvas.beginRotate((float)(42), (float)(179.6199951171875), (float)(-90.1));
+ canvas.fillText("s.guit.", getTextStyle(), getFontSize(), (float)(0), (float)(0), getTextAlign(), getTextBaseline());
+ canvas.endRotate();
+ setTextBaseline(AlphaSkiaTextBaseline.TOP);
+ setTextAlign(AlphaSkiaTextAlign.LEFT);
+ canvas.fillRect((float)(48), (float)(123.91999511718751), (float)(1), (float)(93));
+ return canvas.endRender();
+ }
+ private static AlphaSkiaImage drawMusicSheetPart4(AlphaSkiaCanvas canvas) {
+ canvas.beginRender(709, 14, (float)(getRenderScale()));
+ canvas.setColor(AlphaSkiaCanvas.rgbaToColor((byte)(153), (byte)(204), (byte)(30), (byte)(255)));
+ setTextAlign(AlphaSkiaTextAlign.LEFT);
+ setTextBaseline(AlphaSkiaTextBaseline.TOP);
+ setTextStyle(getTextStyle(new String[]{"Noto Sans", "Noto Music", "Noto Color Emoji"}, 700, false));
+ setFontSize((float)(12));
+ setTextAlign(AlphaSkiaTextAlign.CENTER);
+ canvas.fillText("Copyright", getTextStyle(), getFontSize(), (float)(650), (float)(0), getTextAlign(), getTextBaseline());
+ setTextAlign(AlphaSkiaTextAlign.LEFT);
+ setTextBaseline(AlphaSkiaTextBaseline.TOP);
return canvas.endRender();
}
private static AlphaSkiaImage drawMusicSheetPart5(AlphaSkiaCanvas canvas) {
- canvas.beginRender(116, 24, (float)(getRenderScale()));
+ canvas.beginRender(779, 12, (float)(getRenderScale()));
canvas.setColor(AlphaSkiaCanvas.rgbaToColor((byte)(0), (byte)(0), (byte)(0), (byte)(255)));
- setTypeface(getTypeface("Roboto", true, false));
+ setTextStyle(getTextStyle(new String[]{"Noto Sans", "Noto Music", "Noto Color Emoji"}, 700, false));
+ setFontSize((float)(12));
+ setTextAlign(AlphaSkiaTextAlign.LEFT);
+ setTextBaseline(AlphaSkiaTextBaseline.TOP);
+ setTextStyle(getTextStyle(new String[]{"Noto Sans", "Noto Music", "Noto Color Emoji"}, 700, false));
setFontSize((float)(12));
+ setTextAlign(AlphaSkiaTextAlign.CENTER);
+ canvas.fillText("rendered by alphaTab", getTextStyle(), getFontSize(), (float)(650), (float)(0), getTextAlign(), getTextBaseline());
setTextAlign(AlphaSkiaTextAlign.LEFT);
- canvas.fillText("rendered by alphaTab", getTypeface(), getFontSize(), (float)(0), (float)(12), getTextAlign(), getTextBaseline());
+ setTextBaseline(AlphaSkiaTextBaseline.TOP);
return canvas.endRender();
}
public static float[][] getPartPositions()
{
return new float[][]
{
- {(float)0, (float)0, (float)1300, (float)164}, {(float)0, (float)164, (float)1300, (float)38}, {(float)0, (float)202, (float)1300, (float)6}, {(float)0, (float)208, (float)1300, (float)373}, {(float)591.962890625, (float)581, (float)116.07421875, (float)24}
+ {(float)0, (float)35, (float)1300, (float)124}, {(float)0, (float)159, (float)1300, (float)12}, {(float)0, (float)171, (float)1300, (float)285}, {(float)0, (float)456, (float)709, (float)14}, {(float)0, (float)470, (float)779.2159881591797, (float)12}
};
}
public static int getTotalWidth() { return (int)1300; }
- public static int getTotalHeight() { return (int)605; }
+ public static int getTotalHeight() { return (int)482; }
public static RenderFunction[] getAllParts()
{
return new RenderFunction[]
diff --git a/test/java/src/main/java/alphaTab/alphaSkia/test/AlphaTabGeneratedRenderTestBase.java b/test/java/src/main/java/alphaTab/alphaSkia/test/AlphaTabGeneratedRenderTestBase.java
index 43e2d07..6c78807 100644
--- a/test/java/src/main/java/alphaTab/alphaSkia/test/AlphaTabGeneratedRenderTestBase.java
+++ b/test/java/src/main/java/alphaTab/alphaSkia/test/AlphaTabGeneratedRenderTestBase.java
@@ -2,6 +2,7 @@
import alphaTab.alphaSkia.AlphaSkiaTextAlign;
import alphaTab.alphaSkia.AlphaSkiaTextBaseline;
+import alphaTab.alphaSkia.AlphaSkiaTextStyle;
import alphaTab.alphaSkia.AlphaSkiaTypeface;
import java.io.IOException;
@@ -21,14 +22,14 @@ public static void setRenderScale(float renderScale) {
AlphaTabGeneratedRenderTestBase.renderScale = renderScale;
}
- private static AlphaSkiaTypeface musicTypeface;
+ private static AlphaSkiaTextStyle musicTextStyle;
- public static AlphaSkiaTypeface getMusicTypeface() {
- return musicTypeface;
+ public static AlphaSkiaTextStyle getMusicTextStyle() {
+ return musicTextStyle;
}
- public static void setMusicTypeface(AlphaSkiaTypeface musicTypeface) {
- AlphaTabGeneratedRenderTestBase.musicTypeface = musicTypeface;
+ public static void setMusicTextStyle(AlphaSkiaTextStyle musicTextStyle) {
+ AlphaTabGeneratedRenderTestBase.musicTextStyle = musicTextStyle;
}
public static float getMusicFontSize() {
@@ -56,14 +57,14 @@ public static void setTextBaseline(AlphaSkiaTextBaseline textBaseline) {
}
- private static AlphaSkiaTypeface typeface;
+ private static AlphaSkiaTextStyle textStyle;
- public static AlphaSkiaTypeface getTypeface() {
- return typeface;
+ public static AlphaSkiaTextStyle getTextStyle() {
+ return textStyle;
}
- public static void setTypeface(AlphaSkiaTypeface typeface) {
- AlphaTabGeneratedRenderTestBase.typeface = typeface;
+ public static void setTextStyle(AlphaSkiaTextStyle textStyle) {
+ AlphaTabGeneratedRenderTestBase.textStyle = textStyle;
}
private static float fontSize = 12;
@@ -77,26 +78,26 @@ public static void setFontSize(float fontSize) {
}
- private static final Map customTypefaces =
- new TreeMap(String.CASE_INSENSITIVE_ORDER);
+ private static final Map customTextStyles =
+ new TreeMap(String.CASE_INSENSITIVE_ORDER);
- private static String customTypefaceKey(String fontFamily, boolean isBold, boolean isItalic) {
- return fontFamily.toLowerCase() + "_" + isBold + "_" + isItalic;
+ private static String customTextStyleKey(String[] fontFamilies, int weight, boolean isItalic) {
+ return String.join("_", fontFamilies).toLowerCase() + "_" + weight + "_" + isItalic;
}
- protected static AlphaSkiaTypeface getTypeface(String fontFamily, boolean isBold, boolean isItalic) {
- var key = customTypefaceKey(fontFamily, isBold, isItalic);
- var typeface = customTypefaces.get(key);
- if (typeface == null) {
- throw new IllegalStateException("Unknown font requested: " + key);
+ protected static AlphaSkiaTextStyle getTextStyle(String[] fontFamilies, int weight, boolean isItalic) {
+ var key = customTextStyleKey(fontFamilies, weight, isItalic);
+ var textStyle = customTextStyles.get(key);
+ if (textStyle == null) {
+ textStyle = new AlphaSkiaTextStyle(fontFamilies, weight, isItalic);
+ customTextStyles.put(key, textStyle);
}
- return typeface;
+ return textStyle;
}
- public static AlphaSkiaTypeface loadTypeface(String name, boolean isBold, boolean isItalic, Path filePath) throws IOException {
- var key = customTypefaceKey(name, isBold, isItalic);
- System.out.println("Loading typeface " + key + " from " + filePath);
+ public static AlphaSkiaTypeface loadTypeface(Path filePath) throws IOException {
+ System.out.println("Loading typeface from " + filePath);
var data = Files.readAllBytes(filePath);
System.out.println("Read " + data.length + " bytes from file, decoding typeface");
@@ -105,7 +106,6 @@ public static AlphaSkiaTypeface loadTypeface(String name, boolean isBold, boolea
if (typeface == null) {
throw new IllegalStateException("Could not create typeface from data");
}
- customTypefaces.put(key, typeface);
return typeface;
}
}
diff --git a/test/java/src/main/java/alphaTab/alphaSkia/test/Main.java b/test/java/src/main/java/alphaTab/alphaSkia/test/Main.java
index 9af9840..4683109 100644
--- a/test/java/src/main/java/alphaTab/alphaSkia/test/Main.java
+++ b/test/java/src/main/java/alphaTab/alphaSkia/test/Main.java
@@ -7,9 +7,7 @@
import java.nio.file.Path;
import java.nio.file.Paths;
-import java.util.*;
-import java.util.stream.*;
-
+import java.util.*;
public class Main {
private static Path findRepositoryRoot(Path current) {
@@ -62,8 +60,8 @@ public static void main(String[] args) {
private static int mainWithExitCode(String[] args) {
try {
initializeAlphaSkia();
- boolean isFreeType = Arrays.stream(args).anyMatch("--freetype"::equals);
- if(isFreeType) {
+ boolean isFreeType = Arrays.asList(args).contains("--freetype");
+ if (isFreeType) {
System.out.println("Switching to FreeType Fonts");
AlphaSkiaCanvas.switchToFreeTypeFonts();
}
@@ -75,24 +73,18 @@ private static int mainWithExitCode(String[] args) {
// Load all fonts for rendering
System.out.println("Loading fonts");
var testDataPath = repositoryRoot.resolve("test/test-data");
- AlphaTabGeneratedRenderTest.setMusicTypeface(AlphaTabGeneratedRenderTest.loadTypeface("Bravura", false, false,
- testDataPath.resolve("font/bravura/Bravura.ttf")));
- AlphaTabGeneratedRenderTest.loadTypeface("Roboto", false, false,
- testDataPath.resolve("font/roboto/Roboto-Regular.ttf"));
- AlphaTabGeneratedRenderTest.loadTypeface("Roboto", true, false,
- testDataPath.resolve("font/roboto/Roboto-Bold.ttf"));
- AlphaTabGeneratedRenderTest.loadTypeface("Roboto", false, true,
- testDataPath.resolve("font/roboto/Roboto-Italic.ttf"));
- AlphaTabGeneratedRenderTest.loadTypeface("Roboto", true, true,
- testDataPath.resolve("font/roboto/Roboto-BoldItalic.ttf"));
- AlphaTabGeneratedRenderTest.loadTypeface("PT Serif", false, false,
- testDataPath.resolve("font/ptserif/PTSerif-Regular.ttf"));
- AlphaTabGeneratedRenderTest.loadTypeface("PT Serif", true, false,
- testDataPath.resolve("font/ptserif/PTSerif-Bold.ttf"));
- AlphaTabGeneratedRenderTest.loadTypeface("PT Serif", false, true,
- testDataPath.resolve("font/ptserif/PTSerif-Italic.ttf"));
- AlphaTabGeneratedRenderTest.loadTypeface("PT Serif", true, true,
- testDataPath.resolve("font/ptserif/PTSerif-BoldItalic.ttf"));
+ var musicTypeface = AlphaTabGeneratedRenderTest.loadTypeface(testDataPath.resolve("font/bravura/Bravura.otf"));
+ AlphaTabGeneratedRenderTest.setMusicTextStyle(new AlphaSkiaTextStyle(new String[]{musicTypeface.getFamilyName()}, musicTypeface.getWeight(), musicTypeface.isItalic()));
+ AlphaTabGeneratedRenderTest.loadTypeface(testDataPath.resolve("font/noto-sans/NotoSans-Regular.otf"));
+ AlphaTabGeneratedRenderTest.loadTypeface(testDataPath.resolve("font/noto-sans/NotoSans-Bold.otf"));
+ AlphaTabGeneratedRenderTest.loadTypeface(testDataPath.resolve("font/noto-sans/NotoSans-Italic.otf"));
+ AlphaTabGeneratedRenderTest.loadTypeface(testDataPath.resolve("font/noto-sans/NotoSans-BoldItalic.otf"));
+ AlphaTabGeneratedRenderTest.loadTypeface(testDataPath.resolve("font/noto-serif/NotoSerif-Regular.otf"));
+ AlphaTabGeneratedRenderTest.loadTypeface(testDataPath.resolve("font/noto-serif/NotoSerif-Bold.otf"));
+ AlphaTabGeneratedRenderTest.loadTypeface(testDataPath.resolve("font/noto-serif/NotoSerif-Italic.otf"));
+ AlphaTabGeneratedRenderTest.loadTypeface(testDataPath.resolve("font/noto-serif/NotoSerif-BoldItalic.otf"));
+ AlphaTabGeneratedRenderTest.loadTypeface(testDataPath.resolve("font/noto-music/NotoMusic-Regular.otf"));
+ AlphaTabGeneratedRenderTest.loadTypeface(testDataPath.resolve("font/noto-color-emoji/NotoColorEmoji_WindowsCompatible.ttf"));
System.out.println("Fonts loaded");
// render full image
@@ -139,7 +131,7 @@ private static int mainWithExitCode(String[] args) {
var expectedHeight = expectedImage.getHeight();
if (actualWidth != expectedWidth || actualHeight != expectedHeight) {
System.err.println(
- "Image sizes do not match: Actual[" + actualWidth + "x" + actualHeight + "] Expected[" + expectedWidth + "x" + actualHeight + "]");
+ "Image sizes do not match: Actual[" + actualWidth + "x" + actualHeight + "] Expected[" + expectedWidth + "x" + expectedHeight + "]");
return 1;
}
@@ -185,7 +177,7 @@ private static int mainWithExitCode(String[] args) {
}
private static void initializeAlphaSkia() throws IOException {
- switch(getOperatingSystemRid()) {
+ switch (getOperatingSystemRid()) {
case "macos":
AlphaSkiaMacOs.INSTANCE.initialize();
break;
diff --git a/test/native/include/AlphaSkiaTestBridge.h b/test/native/include/AlphaSkiaTestBridge.h
index d238b67..6a59534 100644
--- a/test/native/include/AlphaSkiaTestBridge.h
+++ b/test/native/include/AlphaSkiaTestBridge.h
@@ -15,14 +15,14 @@ typedef std::function render_function_t;
extern alphaskia_text_align_t text_align;
extern alphaskia_text_baseline_t text_baseline;
-extern alphaskia_typeface_t typeface;
-extern alphaskia_typeface_t music_typeface;
+extern alphaskia_textstyle_t text_style;
+extern alphaskia_textstyle_t music_text_style;
extern float music_font_size;
extern float font_size;
extern float render_scale;
extern int32_t total_width;
extern int32_t total_height;
-alphaskia_typeface_t alphaskia_get_typeface(const char *name, bool is_bold, bool is_italic);
-alphaskia_typeface_t alphaskia_load_typeface(const char *name, bool is_bold, bool is_italic, std::string file_path);
+alphaskia_textstyle_t alphaskia_get_text_style(const std::vector& family_names, uint16_t weight, bool is_italic);
+alphaskia_typeface_t alphaskia_load_typeface(std::string file_path);
void read_file(std::string file_path, std::vector &data);
\ No newline at end of file
diff --git a/test/native/src/AlphaSkiaTestBridge.cpp b/test/native/src/AlphaSkiaTestBridge.cpp
index 388e08b..0d3a6ae 100644
--- a/test/native/src/AlphaSkiaTestBridge.cpp
+++ b/test/native/src/AlphaSkiaTestBridge.cpp
@@ -4,30 +4,45 @@
#include
#include
#include
+#include
alphaskia_text_align_t text_align = alphaskia_text_align_left;
alphaskia_text_baseline_t text_baseline = alphaskia_text_baseline_top;
-alphaskia_typeface_t typeface = nullptr;
-alphaskia_typeface_t music_typeface = nullptr;
+alphaskia_textstyle_t text_style = nullptr;
+alphaskia_textstyle_t music_text_style = nullptr;
float music_font_size = 34;
float render_scale = 1;
float font_size = 12.0f;
-static std::map custom_type_faces;
+static std::map custom_text_styles;
-std::string custom_typeface_key(const char *name, bool is_bold, bool is_italic)
+std::string custom_textstyle_key(const std::vector &family_names, uint16_t weight, bool is_italic)
{
- return std::string(name) + "_" + (is_bold ? "true" : "false") + "_" + (is_italic ? "true" : "false");
+ std::stringstream s;
+ for (auto &name : family_names)
+ {
+ s << name << "_";
+ }
+ s << weight;
+ s << (is_italic ? "italic" : "upright");
+
+ return s.str();
}
-alphaskia_typeface_t alphaskia_get_typeface(const char *name, bool is_bold, bool is_italic)
+alphaskia_textstyle_t alphaskia_get_text_style(const std::vector &family_names, uint16_t weight, bool is_italic)
{
- auto key = custom_typeface_key(name, is_bold, is_italic);
- auto it = custom_type_faces.find(key);
- if (it == custom_type_faces.end())
+ auto key = custom_textstyle_key(family_names, weight, is_italic);
+ auto it = custom_text_styles.find(key);
+ if (it == custom_text_styles.end())
{
- std::cerr << "Unknown font requested: " << key << std::endl;
- return nullptr;
+ alphaskia_textstyle_t new_text_style = alphaskia_textstyle_new(
+ static_cast(family_names.size()),
+ const_cast(&family_names[0]),
+ weight,
+ is_italic);
+ custom_text_styles[key] = new_text_style;
+
+ return new_text_style;
}
return it->second;
}
@@ -47,10 +62,9 @@ void read_file(std::string file_path, std::vector &data)
in.read(reinterpret_cast(data.data()), size);
}
-alphaskia_typeface_t alphaskia_load_typeface(const char *name, bool is_bold, bool is_italic, std::string file_path)
+alphaskia_typeface_t alphaskia_load_typeface(std::string file_path)
{
- auto key = custom_typeface_key(name, is_bold, is_italic);
- std::cout << "Loading typeface " << key << " from " << file_path << std::endl;
+ std::cout << "Loading typeface from " << file_path << std::endl;
std::vector data;
read_file(file_path, data);
@@ -69,7 +83,10 @@ alphaskia_typeface_t alphaskia_load_typeface(const char *name, bool is_bold, boo
std::cerr << "Could not create typeface from data " << file_path << std::endl;
return nullptr;
}
- std::cout << "Typeface " << key << " loaded and registered" << std::endl;
- custom_type_faces[key] = typeface;
+ std::cout << "Typeface "
+ << alphaskia_typeface_get_family_name(typeface)
+ << "weight: " << alphaskia_typeface_get_weight(typeface)
+ << " italic: " << (alphaskia_typeface_is_italic(typeface) ? "yes" : "no")
+ << " loaded" << std::endl;
return typeface;
}
\ No newline at end of file
diff --git a/test/native/src/AlphaTabGeneratedTest.cpp b/test/native/src/AlphaTabGeneratedTest.cpp
index 3a94dad..2d760d2 100644
--- a/test/native/src/AlphaTabGeneratedTest.cpp
+++ b/test/native/src/AlphaTabGeneratedTest.cpp
@@ -1,739 +1,1066 @@
#include "../include/AlphaTabGeneratedTest.h"
alphaskia_image_t draw_music_sheet_part_1(alphaskia_canvas_t canvas) {
- alphaskia_canvas_begin_render(canvas, 1300, 164, static_cast(render_scale));
+ alphaskia_canvas_begin_render(canvas, 1300, 124, static_cast(render_scale));
alphaskia_canvas_set_color(canvas, alphaskia_rgba_to_color(static_cast(153), static_cast(204), static_cast(30), static_cast(255)));
text_align = alphaskia_text_align_center;
- typeface = alphaskia_get_typeface("PT Serif", false, false);
+ text_style = alphaskia_get_text_style({"Noto Serif", "Noto Music", "Noto Color Emoji"}, 400, false);
font_size = static_cast(32);
text_align = alphaskia_text_align_center;
- alphaskia_canvas_fill_text(canvas, u"Title", 5, typeface, font_size, static_cast(650), static_cast(40), text_align, text_baseline);
+ alphaskia_canvas_fill_text(canvas, u"Title", 5, text_style, font_size, static_cast(650), static_cast(0), text_align, text_baseline);
text_align = alphaskia_text_align_center;
- typeface = alphaskia_get_typeface("PT Serif", false, false);
+ text_baseline = alphaskia_text_baseline_top;
+ text_style = alphaskia_get_text_style({"Noto Serif", "Noto Music", "Noto Color Emoji"}, 400, false);
font_size = static_cast(20);
text_align = alphaskia_text_align_center;
- alphaskia_canvas_fill_text(canvas, u"Subtitle", 8, typeface, font_size, static_cast(650), static_cast(72), text_align, text_baseline);
+ alphaskia_canvas_fill_text(canvas, u"Subtitle", 8, text_style, font_size, static_cast(650), static_cast(32), text_align, text_baseline);
text_align = alphaskia_text_align_center;
- typeface = alphaskia_get_typeface("PT Serif", false, false);
+ text_baseline = alphaskia_text_baseline_top;
+ text_style = alphaskia_get_text_style({"Noto Serif", "Noto Music", "Noto Color Emoji"}, 400, false);
font_size = static_cast(20);
text_align = alphaskia_text_align_center;
- alphaskia_canvas_fill_text(canvas, u"Artist", 6, typeface, font_size, static_cast(650), static_cast(92), text_align, text_baseline);
+ alphaskia_canvas_fill_text(canvas, u"Artist", 6, text_style, font_size, static_cast(650), static_cast(52), text_align, text_baseline);
text_align = alphaskia_text_align_center;
- typeface = alphaskia_get_typeface("PT Serif", false, false);
+ text_baseline = alphaskia_text_baseline_top;
+ text_style = alphaskia_get_text_style({"Noto Serif", "Noto Music", "Noto Color Emoji"}, 400, false);
font_size = static_cast(20);
text_align = alphaskia_text_align_center;
- alphaskia_canvas_fill_text(canvas, u"Album", 5, typeface, font_size, static_cast(650), static_cast(112), text_align, text_baseline);
+ alphaskia_canvas_fill_text(canvas, u"Album", 5, text_style, font_size, static_cast(650), static_cast(72), text_align, text_baseline);
text_align = alphaskia_text_align_center;
- typeface = alphaskia_get_typeface("PT Serif", false, false);
+ text_baseline = alphaskia_text_baseline_top;
+ text_style = alphaskia_get_text_style({"Noto Serif", "Noto Music", "Noto Color Emoji"}, 400, false);
font_size = static_cast(15);
- text_align = alphaskia_text_align_right;
- alphaskia_canvas_fill_text(canvas, u"Music by Music", 14, typeface, font_size, static_cast(1260), static_cast(132), text_align, text_baseline);
+ text_align = alphaskia_text_align_left;
+ alphaskia_canvas_fill_text(canvas, u"Words by Words", 14, text_style, font_size, static_cast(35), static_cast(92), text_align, text_baseline);
text_align = alphaskia_text_align_center;
- typeface = alphaskia_get_typeface("PT Serif", false, false);
+ text_baseline = alphaskia_text_baseline_top;
+ text_style = alphaskia_get_text_style({"Noto Serif", "Noto Music", "Noto Color Emoji"}, 400, false);
font_size = static_cast(15);
- text_align = alphaskia_text_align_left;
- alphaskia_canvas_fill_text(canvas, u"Words by Words", 14, typeface, font_size, static_cast(40), static_cast(132), text_align, text_baseline);
+ text_align = alphaskia_text_align_right;
+ alphaskia_canvas_fill_text(canvas, u"Music by Music", 14, text_style, font_size, static_cast(1265), static_cast(92), text_align, text_baseline);
text_align = alphaskia_text_align_center;
+ text_baseline = alphaskia_text_baseline_top;
return alphaskia_canvas_end_render(canvas);
}
alphaskia_image_t draw_music_sheet_part_2(alphaskia_canvas_t canvas) {
- alphaskia_canvas_begin_render(canvas, 1300, 38, static_cast(render_scale));
+ alphaskia_canvas_begin_render(canvas, 1300, 12, static_cast(render_scale));
text_align = alphaskia_text_align_center;
- typeface = alphaskia_get_typeface("PT Serif", false, true);
+ text_baseline = alphaskia_text_baseline_middle;
+ text_style = alphaskia_get_text_style({"Noto Serif", "Noto Music", "Noto Color Emoji"}, 400, true);
font_size = static_cast(12);
text_align = alphaskia_text_align_left;
- alphaskia_canvas_fill_text(canvas, u"Guitar Standard Tuning", 22, typeface, font_size, static_cast(40), static_cast(3), text_align, text_baseline);
+ alphaskia_canvas_fill_text(canvas, u"Guitar Standard Tuning", 22, text_style, font_size, static_cast(35), static_cast(4.5659942626953125), text_align, text_baseline);
text_align = alphaskia_text_align_center;
+ text_baseline = alphaskia_text_baseline_middle;
return alphaskia_canvas_end_render(canvas);
}
alphaskia_image_t draw_music_sheet_part_3(alphaskia_canvas_t canvas) {
- alphaskia_canvas_begin_render(canvas, 1300, 6, static_cast(render_scale));
- text_align = alphaskia_text_align_center;
- return alphaskia_canvas_end_render(canvas);
-}
-alphaskia_image_t draw_music_sheet_part_4(alphaskia_canvas_t canvas) {
- alphaskia_canvas_begin_render(canvas, 1300, 373, static_cast(render_scale));
+ alphaskia_canvas_begin_render(canvas, 1300, 285, static_cast(render_scale));
alphaskia_canvas_set_color(canvas, alphaskia_rgba_to_color(static_cast(0), static_cast(0), static_cast(0), static_cast(255)));
text_align = alphaskia_text_align_left;
- typeface = alphaskia_get_typeface("PT Serif", true, false);
+ text_style = alphaskia_get_text_style({"Noto Serif", "Noto Music", "Noto Color Emoji"}, 700, false);
font_size = static_cast(14);
- alphaskia_canvas_fill_text(canvas, u"\uE1D5", 1, music_typeface, static_cast(music_font_size * 0.75), static_cast(156.6767578125), static_cast(40), alphaskia_text_align_left, alphaskia_text_baseline_alphabetic);
- alphaskia_canvas_fill_text(canvas, u"= 120", 5, typeface, font_size, static_cast(169.1767578125), static_cast(27), text_align, text_baseline);
- alphaskia_canvas_set_color(canvas, alphaskia_rgba_to_color(static_cast(165), static_cast(165), static_cast(165), static_cast(255)));
- alphaskia_canvas_fill_rect(canvas, static_cast(92), static_cast(130), static_cast(254), static_cast(1.04));
- alphaskia_canvas_fill_rect(canvas, static_cast(92), static_cast(139), static_cast(254), static_cast(1.04));
- alphaskia_canvas_fill_rect(canvas, static_cast(92), static_cast(148), static_cast(254), static_cast(1.04));
- alphaskia_canvas_fill_rect(canvas, static_cast(92), static_cast(157), static_cast(254), static_cast(1.04));
- alphaskia_canvas_fill_rect(canvas, static_cast(92), static_cast(166), static_cast(254), static_cast(1.04));
- alphaskia_canvas_set_color(canvas, alphaskia_rgba_to_color(static_cast(0), static_cast(0), static_cast(0), static_cast(255)));
- alphaskia_canvas_fill_text(canvas, u"\uE050", 1, music_typeface, static_cast(music_font_size * 1), static_cast(94), static_cast(157.52), alphaskia_text_align_left, alphaskia_text_baseline_alphabetic);
- alphaskia_canvas_fill_text(canvas, u"\uE084", 1, music_typeface, static_cast(music_font_size * 1), static_cast(127), static_cast(139), alphaskia_text_align_left, alphaskia_text_baseline_alphabetic);
- alphaskia_canvas_fill_text(canvas, u"\uE084", 1, music_typeface, static_cast(music_font_size * 1), static_cast(127), static_cast(157), alphaskia_text_align_left, alphaskia_text_baseline_alphabetic);
+ text_baseline = alphaskia_text_baseline_top;
+ alphaskia_canvas_fill_text(canvas, u"\uE1D5", 1, music_text_style, static_cast(music_font_size * 0.5), static_cast(117.79200744628906), static_cast(25), alphaskia_text_align_center, alphaskia_text_baseline_alphabetic);
+ alphaskia_canvas_fill_text(canvas, u"= 120", 5, text_style, font_size, static_cast(125.79200744628906), static_cast(12), text_align, text_baseline);
+ text_style = alphaskia_get_text_style({"Noto Serif", "Noto Music", "Noto Color Emoji"}, 400, true);
+ font_size = static_cast(12);
+ text_align = alphaskia_text_align_left;
+ alphaskia_canvas_fill_text(canvas, u"Fallback Font (\U0001D11E \U0001D15F \U0001F3B8 \U0001F918\U0001F3FB)", 29, text_style, font_size, static_cast(885.7920074462891), static_cast(30), text_align, text_baseline);
+ text_align = alphaskia_text_align_left;
+ text_baseline = alphaskia_text_baseline_top;
+ alphaskia_canvas_fill_text(canvas, u"\uEAA4", 1, music_text_style, static_cast(music_font_size * 1.2), static_cast(722.7920074462891), static_cast(53.5199951171875), alphaskia_text_align_left, alphaskia_text_baseline_alphabetic);
+ alphaskia_canvas_fill_text(canvas, u"\uEAA4", 1, music_text_style, static_cast(music_font_size * 1.2), static_cast(733.592007446289), static_cast(53.5199951171875), alphaskia_text_align_left, alphaskia_text_baseline_alphabetic);
+ alphaskia_canvas_fill_text(canvas, u"\uEAA4", 1, music_text_style, static_cast(music_font_size * 1.2), static_cast(744.3920074462891), static_cast(53.5199951171875), alphaskia_text_align_left, alphaskia_text_baseline_alphabetic);
+ alphaskia_canvas_fill_text(canvas, u"\uEAA4", 1, music_text_style, static_cast(music_font_size * 1.2), static_cast(755.192007446289), static_cast(53.5199951171875), alphaskia_text_align_left, alphaskia_text_baseline_alphabetic);
+ alphaskia_canvas_fill_text(canvas, u"\uEAA4", 1, music_text_style, static_cast(music_font_size * 1.2), static_cast(765.9920074462891), static_cast(53.5199951171875), alphaskia_text_align_left, alphaskia_text_baseline_alphabetic);
+ alphaskia_canvas_fill_text(canvas, u"\uEAA4", 1, music_text_style, static_cast(music_font_size * 1.2), static_cast(776.7920074462891), static_cast(53.5199951171875), alphaskia_text_align_left, alphaskia_text_baseline_alphabetic);
+ alphaskia_canvas_fill_text(canvas, u"\uEAA4", 1, music_text_style, static_cast(music_font_size * 1.2), static_cast(787.592007446289), static_cast(53.5199951171875), alphaskia_text_align_left, alphaskia_text_baseline_alphabetic);
+ alphaskia_canvas_fill_text(canvas, u"\uEAA4", 1, music_text_style, static_cast(music_font_size * 1.2), static_cast(798.3920074462891), static_cast(53.5199951171875), alphaskia_text_align_left, alphaskia_text_baseline_alphabetic);
+ alphaskia_canvas_fill_text(canvas, u"\uEAA4", 1, music_text_style, static_cast(music_font_size * 1.2), static_cast(809.192007446289), static_cast(53.5199951171875), alphaskia_text_align_left, alphaskia_text_baseline_alphabetic);
+ alphaskia_canvas_fill_text(canvas, u"\uEAA4", 1, music_text_style, static_cast(music_font_size * 1.2), static_cast(819.9920074462891), static_cast(53.5199951171875), alphaskia_text_align_left, alphaskia_text_baseline_alphabetic);
+ alphaskia_canvas_set_color(canvas, alphaskia_rgba_to_color(static_cast(165), static_cast(165), static_cast(165), static_cast(255)));
+ alphaskia_canvas_fill_rect(canvas, static_cast(48), static_cast(87), static_cast(259), static_cast(1.04));
+ alphaskia_canvas_fill_rect(canvas, static_cast(48), static_cast(96), static_cast(259), static_cast(1.04));
+ alphaskia_canvas_fill_rect(canvas, static_cast(48), static_cast(105), static_cast(259), static_cast(1.04));
+ alphaskia_canvas_fill_rect(canvas, static_cast(48), static_cast(114), static_cast(259), static_cast(1.04));
+ alphaskia_canvas_fill_rect(canvas, static_cast(48), static_cast(123), static_cast(259), static_cast(1.04));
+ alphaskia_canvas_set_color(canvas, alphaskia_rgba_to_color(static_cast(0), static_cast(0), static_cast(0), static_cast(255)));
+ alphaskia_canvas_set_color(canvas, alphaskia_rgba_to_color(static_cast(153), static_cast(51), static_cast(204), static_cast(100)));
+ alphaskia_canvas_fill_rect(canvas, static_cast(48), static_cast(87.9199951171875), static_cast(1), static_cast(36.000000000000014));
+ alphaskia_canvas_set_color(canvas, alphaskia_rgba_to_color(static_cast(0), static_cast(0), static_cast(0), static_cast(255)));
+ alphaskia_canvas_fill_text(canvas, u"\uE050", 1, music_text_style, static_cast(music_font_size * 1), static_cast(55), static_cast(115.43999511718751), alphaskia_text_align_left, alphaskia_text_baseline_alphabetic);
+ alphaskia_canvas_fill_text(canvas, u"\uE084", 1, music_text_style, static_cast(music_font_size * 1), static_cast(88), static_cast(96.91999511718751), alphaskia_text_align_left, alphaskia_text_baseline_alphabetic);
+ alphaskia_canvas_fill_text(canvas, u"\uE084", 1, music_text_style, static_cast(music_font_size * 1), static_cast(88), static_cast(114.91999511718751), alphaskia_text_align_left, alphaskia_text_baseline_alphabetic);
alphaskia_canvas_set_color(canvas, alphaskia_rgba_to_color(static_cast(200), static_cast(0), static_cast(0), static_cast(255)));
- typeface = alphaskia_get_typeface("Roboto", false, false);
+ text_baseline = alphaskia_text_baseline_top;
+ text_style = alphaskia_get_text_style({"Noto Sans", "Noto Music", "Noto Color Emoji"}, 400, false);
font_size = static_cast(11);
- alphaskia_canvas_fill_text(canvas, u"1", 1, typeface, font_size, static_cast(141), static_cast(118.75), text_align, text_baseline);
+ alphaskia_canvas_fill_text(canvas, u"1", 1, text_style, font_size, static_cast(102), static_cast(76.5699951171875), text_align, text_baseline);
+ text_baseline = alphaskia_text_baseline_top;
+ alphaskia_canvas_set_color(canvas, alphaskia_rgba_to_color(static_cast(0), static_cast(0), static_cast(0), static_cast(255)));
+ alphaskia_canvas_set_color(canvas, alphaskia_rgba_to_color(static_cast(165), static_cast(165), static_cast(165), static_cast(255)));
+ alphaskia_canvas_set_color(canvas, alphaskia_rgba_to_color(static_cast(0), static_cast(0), static_cast(0), static_cast(255)));
+ alphaskia_canvas_fill_text(canvas, u"\uE0A4", 1, music_text_style, static_cast(music_font_size * 1), static_cast(113.29200744628906), static_cast(105.91999511718751), alphaskia_text_align_left, alphaskia_text_baseline_alphabetic);
+ alphaskia_canvas_fill_text(canvas, u"\uE272", 1, music_text_style, static_cast(music_font_size * 0.75), static_cast(134.16515249341666), static_cast(105.91999511718751), alphaskia_text_align_left, alphaskia_text_baseline_alphabetic);
+ alphaskia_canvas_set_color(canvas, alphaskia_rgba_to_color(static_cast(165), static_cast(165), static_cast(165), static_cast(255)));
alphaskia_canvas_set_color(canvas, alphaskia_rgba_to_color(static_cast(0), static_cast(0), static_cast(0), static_cast(255)));
- alphaskia_canvas_fill_text(canvas, u"\uE0A4", 1, music_typeface, static_cast(music_font_size * 1), static_cast(152.1767578125), static_cast(148), alphaskia_text_align_left, alphaskia_text_baseline_alphabetic);
- alphaskia_canvas_fill_text(canvas, u"\uE272", 1, music_typeface, static_cast(music_font_size * 0.75), static_cast(172.86069962449085), static_cast(148), alphaskia_text_align_left, alphaskia_text_baseline_alphabetic);
- alphaskia_canvas_fill_text(canvas, u"\uE0A4", 1, music_typeface, static_cast(music_font_size * 0.75), static_cast(180.86069962449085), static_cast(149), alphaskia_text_align_left, alphaskia_text_baseline_alphabetic);
+ alphaskia_canvas_fill_text(canvas, u"\uE0A4", 1, music_text_style, static_cast(music_font_size * 0.75), static_cast(142.16515249341666), static_cast(106.91999511718751), alphaskia_text_align_left, alphaskia_text_baseline_alphabetic);
alphaskia_canvas_begin_path(canvas);
- alphaskia_canvas_move_to(canvas, static_cast(156.6767578125), static_cast(144));
- alphaskia_canvas_line_to(canvas, static_cast