Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
S
skiko
Project
Project
Details
Activity
Releases
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
liuqiang
skiko
Commits
21a47543
Unverified
Commit
21a47543
authored
Nov 17, 2021
by
Shagen Ogandzhanian
Committed by
GitHub
Nov 17, 2021
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Commonize FontCollection::familyNames (#392)
parent
4fbabeb5
Changes
10
Show whitespace changes
Inline
Side-by-side
Showing
10 changed files
with
75 additions
and
33 deletions
+75
-33
Typeface.kt
skiko/src/commonMain/kotlin/org/jetbrains/skia/Typeface.kt
+1
-1
RefCnt.kt
...o/src/commonMain/kotlin/org/jetbrains/skia/impl/RefCnt.kt
+3
-1
FontCollection.kt
...ain/kotlin/org/jetbrains/skia/paragraph/FontCollection.kt
+7
-6
FontCollectionTest.kt
...kotlin/org/jetbrains/skia/paragraph/FontCollectionTest.kt
+35
-0
RefCnt.js.kt
skiko/src/jsMain/kotlin/org/jetbrains/skia/impl/RefCnt.js.kt
+2
-2
FontCollection.cc
skiko/src/jvmMain/cpp/common/paragraph/FontCollection.cc
+7
-16
RefCnt.jvm.kt
.../src/jvmMain/kotlin/org/jetbrains/skia/impl/RefCnt.jvm.kt
+3
-1
FontCollectionTest.kt
...otlin/org/jetbrains/skiko/paragraph/FontCollectionTest.kt
+1
-1
FontCollection.cc
skiko/src/nativeJsMain/cpp/paragraph/FontCollection.cc
+14
-3
RefCnt.native.kt
...ativeMain/kotlin/org/jetbrains/skia/impl/RefCnt.native.kt
+2
-2
No files found.
skiko/src/commonMain/kotlin/org/jetbrains/skia/Typeface.kt
View file @
21a47543
...
@@ -62,7 +62,7 @@ class Typeface internal constructor(ptr: NativePointer) : RefCnt(ptr) {
...
@@ -62,7 +62,7 @@ class Typeface internal constructor(ptr: NativePointer) : RefCnt(ptr) {
val
fontStyle
:
FontStyle
val
fontStyle
:
FontStyle
get
()
=
try
{
get
()
=
try
{
Stats
.
onNativeCall
()
Stats
.
onNativeCall
()
org
.
jetbrains
.
skia
.
FontStyle
(
_nGetFontStyle
(
_ptr
))
FontStyle
(
_nGetFontStyle
(
_ptr
))
}
finally
{
}
finally
{
reachabilityBarrier
(
this
)
reachabilityBarrier
(
this
)
}
}
...
...
skiko/src/commonMain/kotlin/org/jetbrains/skia/impl/RefCnt.kt
View file @
21a47543
...
@@ -6,3 +6,5 @@ expect abstract class RefCnt : Managed {
...
@@ -6,3 +6,5 @@ expect abstract class RefCnt : Managed {
val
refCount
:
Int
val
refCount
:
Int
}
}
expect
fun
RefCnt_nGetFinalizer
():
NativePointer
skiko/src/commonMain/kotlin/org/jetbrains/skia/paragraph/FontCollection.kt
View file @
21a47543
...
@@ -89,12 +89,13 @@ class FontCollection internal constructor(ptr: NativePointer) : RefCnt(ptr) {
...
@@ -89,12 +89,13 @@ class FontCollection internal constructor(ptr: NativePointer) : RefCnt(ptr) {
fun
findTypefaces
(
familyNames
:
Array
<
String
>?,
style
:
FontStyle
):
Array
<
Typeface
?
>
{
fun
findTypefaces
(
familyNames
:
Array
<
String
>?,
style
:
FontStyle
):
Array
<
Typeface
?
>
{
return
try
{
return
try
{
Stats
.
onNativeCall
()
Stats
.
onNativeCall
()
val
ptrs
=
interopScope
{
arrayDecoderScope
({
ArrayDecoder
(
interopScope
{
_nFindTypefaces
(
_ptr
,
toInterop
(
familyNames
),
style
.
_value
).
fromInteropNativePointerArray
()
_nFindTypefaces
(
_ptr
,
toInterop
(
familyNames
),
familyNames
?.
size
?:
0
,
style
.
_value
)
},
RefCnt_nGetFinalizer
())
})
{
arrayDecoder
->
(
0
until
arrayDecoder
.
size
).
map
{
i
->
Typeface
(
arrayDecoder
.
release
(
i
))
}.
toTypedArray
()
}
}
val
res
=
arrayOfNulls
<
Typeface
>(
ptrs
.
size
)
for
(
i
in
0
until
ptrs
.
size
)
res
[
i
]
=
Typeface
(
ptrs
[
i
])
res
}
finally
{
}
finally
{
reachabilityBarrier
(
this
)
reachabilityBarrier
(
this
)
}
}
...
@@ -157,7 +158,7 @@ private external fun _nSetDefaultFontManager(ptr: NativePointer, fontManagerPtr:
...
@@ -157,7 +158,7 @@ private external fun _nSetDefaultFontManager(ptr: NativePointer, fontManagerPtr:
private
external
fun
_nGetFallbackManager
(
ptr
:
NativePointer
):
NativePointer
private
external
fun
_nGetFallbackManager
(
ptr
:
NativePointer
):
NativePointer
@ExternalSymbolName
(
"org_jetbrains_skia_paragraph_FontCollection__1nFindTypefaces"
)
@ExternalSymbolName
(
"org_jetbrains_skia_paragraph_FontCollection__1nFindTypefaces"
)
private
external
fun
_nFindTypefaces
(
ptr
:
NativePointer
,
familyNames
:
InteropPointer
,
fontStyle
:
Int
):
Interop
Pointer
private
external
fun
_nFindTypefaces
(
ptr
:
NativePointer
,
familyNames
:
InteropPointer
,
len
:
Int
,
fontStyle
:
Int
):
Native
Pointer
@ExternalSymbolName
(
"org_jetbrains_skia_paragraph_FontCollection__1nDefaultFallbackChar"
)
@ExternalSymbolName
(
"org_jetbrains_skia_paragraph_FontCollection__1nDefaultFallbackChar"
)
private
external
fun
_nDefaultFallbackChar
(
ptr
:
NativePointer
,
unicode
:
Int
,
fontStyle
:
Int
,
locale
:
String
?):
NativePointer
private
external
fun
_nDefaultFallbackChar
(
ptr
:
NativePointer
,
unicode
:
Int
,
fontStyle
:
Int
,
locale
:
String
?):
NativePointer
...
...
skiko/src/commonTest/kotlin/org/jetbrains/skia/paragraph/FontCollectionTest.kt
0 → 100644
View file @
21a47543
package
org.jetbrains.skia.paragraph
import
org.jetbrains.skia.FontMgr
import
org.jetbrains.skia.FontStyle
import
org.jetbrains.skia.Typeface
import
org.jetbrains.skia.impl.use
import
org.jetbrains.skia.paragraph.FontCollection
import
org.jetbrains.skia.paragraph.TypefaceFontProvider
import
org.jetbrains.skia.tests.makeFromResource
import
org.jetbrains.skiko.tests.SkipJsTarget
import
org.jetbrains.skiko.tests.SkipNativeTarget
import
org.jetbrains.skiko.tests.runTest
import
kotlin.test.Test
import
kotlin.test.assertContentEquals
import
kotlin.test.assertEquals
class
FontCollectionTest
{
@Test
fun
fontCollectionTest
()
=
runTest
{
val
fm
=
TypefaceFontProvider
()
val
jbMono
=
Typeface
.
makeFromResource
(
"./fonts/JetBrainsMono-Regular.ttf"
,
0
)
fm
.
registerTypeface
(
jbMono
)
FontCollection
().
use
{
fontCollection
->
fontCollection
.
setAssetFontManager
(
fm
)
val
typefaces
=
fontCollection
.
findTypefaces
(
arrayOf
(
"JetBrains Mono"
),
FontStyle
.
ITALIC
)
typefaces
.
first
()
!!
.
let
{
typeface
->
assertEquals
(
"JetBrains Mono"
,
typeface
.
familyName
)
assertEquals
(
FontStyle
.
NORMAL
,
typeface
.
fontStyle
)
}
}
}
}
\ No newline at end of file
skiko/src/jsMain/kotlin/org/jetbrains/skia/impl/RefCnt.js.kt
View file @
21a47543
...
@@ -19,10 +19,10 @@ actual abstract class RefCnt : Managed {
...
@@ -19,10 +19,10 @@ actual abstract class RefCnt : Managed {
}
}
private
object
_FinalizerHolder
{
private
object
_FinalizerHolder
{
val
PTR
=
_nGetFinalizer
()
val
PTR
=
RefCnt
_nGetFinalizer
()
}
}
@ExternalSymbolName
(
"org_jetbrains_skia_impl_RefCnt__getFinalizer"
)
@ExternalSymbolName
(
"org_jetbrains_skia_impl_RefCnt__getFinalizer"
)
private
external
fun
_nGetFinalizer
():
NativePointer
actual
external
fun
RefCnt
_nGetFinalizer
():
NativePointer
@ExternalSymbolName
(
"org_jetbrains_skia_impl_RefCnt__getRefCount"
)
@ExternalSymbolName
(
"org_jetbrains_skia_impl_RefCnt__getRefCount"
)
private
external
fun
_nGetRefCount
(
ptr
:
NativePointer
):
Int
private
external
fun
_nGetRefCount
(
ptr
:
NativePointer
):
Int
skiko/src/jvmMain/cpp/common/paragraph/FontCollection.cc
View file @
21a47543
...
@@ -59,26 +59,17 @@ extern "C" JNIEXPORT jlong JNICALL Java_org_jetbrains_skia_paragraph_FontCollect
...
@@ -59,26 +59,17 @@ extern "C" JNIEXPORT jlong JNICALL Java_org_jetbrains_skia_paragraph_FontCollect
return
reinterpret_cast
<
jlong
>
(
instance
->
getFallbackManager
().
release
());
return
reinterpret_cast
<
jlong
>
(
instance
->
getFallbackManager
().
release
());
}
}
extern
"C"
JNIEXPORT
jlong
Array
JNICALL
Java_org_jetbrains_skia_paragraph_FontCollectionKt__1nFindTypefaces
extern
"C"
JNIEXPORT
jlong
JNICALL
Java_org_jetbrains_skia_paragraph_FontCollectionKt__1nFindTypefaces
(
JNIEnv
*
env
,
jclass
jclass
,
jlong
ptr
,
jobjectArray
familyNamesArray
,
jint
fontStyle
)
{
(
JNIEnv
*
env
,
jclass
jclass
,
jlong
ptr
,
jobjectArray
familyNamesArray
,
j
size
len
,
j
int
fontStyle
)
{
FontCollection
*
instance
=
reinterpret_cast
<
FontCollection
*>
(
static_cast
<
uintptr_t
>
(
ptr
));
FontCollection
*
instance
=
reinterpret_cast
<
FontCollection
*>
(
static_cast
<
uintptr_t
>
(
ptr
));
jsize
len
=
env
->
GetArrayLength
(
familyNamesArray
);
vector
<
sk_sp
<
SkTypeface
>>
found
=
instance
->
findTypefaces
(
skStringVector
(
env
,
familyNamesArray
),
skija
::
FontStyle
::
fromJava
(
fontStyle
));
vector
<
SkString
>
familyNames
(
len
);
for
(
int
i
=
0
;
i
<
len
;
++
i
)
{
jstring
str
=
static_cast
<
jstring
>
(
env
->
GetObjectArrayElement
(
familyNamesArray
,
i
));
familyNames
.
push_back
(
skString
(
env
,
str
));
env
->
DeleteLocalRef
(
str
);
}
vector
<
sk_sp
<
SkTypeface
>>
found
=
instance
->
findTypefaces
(
familyNames
,
skija
::
FontStyle
::
fromJava
(
fontStyle
));
std
::
vector
<
jlong
>*
res
=
new
std
::
vector
<
jlong
>
();
vector
<
jlong
>
res
(
found
.
size
());
for
(
auto
&
f
:
found
)
for
(
int
i
=
0
;
i
<
found
.
size
();
++
i
)
res
->
push_back
(
reinterpret_cast
<
jlong
>
(
f
.
release
()));
res
[
i
]
=
reinterpret_cast
<
jlong
>
(
found
[
i
].
release
());
jlongArray
resArray
=
env
->
NewLongArray
((
jsize
)
found
.
size
());
return
reinterpret_cast
<
jlong
>
(
res
);
env
->
SetLongArrayRegion
(
resArray
,
0
,
(
jsize
)
found
.
size
(),
res
.
data
());
return
resArray
;
}
}
extern
"C"
JNIEXPORT
jlong
JNICALL
Java_org_jetbrains_skia_paragraph_FontCollectionKt__1nDefaultFallbackChar
extern
"C"
JNIEXPORT
jlong
JNICALL
Java_org_jetbrains_skia_paragraph_FontCollectionKt__1nDefaultFallbackChar
...
...
skiko/src/jvmMain/kotlin/org/jetbrains/skia/impl/RefCnt.jvm.kt
View file @
21a47543
...
@@ -30,3 +30,5 @@ actual abstract class RefCnt : Managed {
...
@@ -30,3 +30,5 @@ actual abstract class RefCnt : Managed {
external
fun
_nGetRefCount
(
ptr
:
NativePointer
):
Int
external
fun
_nGetRefCount
(
ptr
:
NativePointer
):
Int
}
}
}
}
actual
fun
RefCnt_nGetFinalizer
()
=
RefCnt
.
_nGetFinalizer
()
\ No newline at end of file
skiko/src/jvmTest/kotlin/org/jetbrains/skiko/paragraph/FontCollectionTest.kt
View file @
21a47543
...
@@ -72,7 +72,7 @@ class FontCollectionTest {
...
@@ -72,7 +72,7 @@ class FontCollectionTest {
assertEquals
(
refCnt
+
1
,
t2
.
refCount
)
assertEquals
(
refCnt
+
1
,
t2
.
refCount
)
assertEquals
(
t1
,
t2
)
assertEquals
(
t1
,
t2
)
}
}
assertEquals
(
refCnt
,
t1
.
refCount
)
}
}
}
}
}
}
\ No newline at end of file
skiko/src/nativeJsMain/cpp/paragraph/FontCollection.cc
View file @
21a47543
...
@@ -60,10 +60,21 @@ SKIKO_EXPORT KNativePointer org_jetbrains_skia_paragraph_FontCollection__1nGetFa
...
@@ -60,10 +60,21 @@ SKIKO_EXPORT KNativePointer org_jetbrains_skia_paragraph_FontCollection__1nGetFa
return
reinterpret_cast
<
KNativePointer
>
(
instance
->
getFallbackManager
().
release
());
return
reinterpret_cast
<
KNativePointer
>
(
instance
->
getFallbackManager
().
release
());
}
}
static
SkFontStyle
fromKotlin
(
KInt
style
)
{
return
SkFontStyle
(
style
&
0xFFFF
,
(
style
>>
16
)
&
0xFF
,
static_cast
<
SkFontStyle
::
Slant
>
((
style
>>
24
)
&
0xFF
));
}
SKIKO_EXPORT
KNativePointer
org_jetbrains_skia_paragraph_FontCollection__1nFindTypefaces
(
KNativePointer
ptr
,
KInteropPointerArray
familyNamesArray
,
KInt
len
,
KInt
fontStyle
)
{
FontCollection
*
instance
=
reinterpret_cast
<
FontCollection
*>
(
ptr
);
vector
<
sk_sp
<
SkTypeface
>>
found
=
instance
->
findTypefaces
(
skStringVector
(
familyNamesArray
,
len
),
fromKotlin
(
fontStyle
));
std
::
vector
<
KNativePointer
>*
res
=
new
std
::
vector
<
KNativePointer
>
();
for
(
auto
&
f
:
found
)
res
->
push_back
(
reinterpret_cast
<
KNativePointer
>
(
f
.
release
()));
SKIKO_EXPORT
KNativePointerArray
org_jetbrains_skia_paragraph_FontCollection__1nFindTypefaces
return
reinterpret_cast
<
KNativePointer
>
(
res
);
(
KNativePointer
ptr
,
KInteropPointerArray
familyNamesArray
,
KInt
fontStyle
)
{
TODO
(
"implement org_jetbrains_skia_paragraph_FontCollection__1nFindTypefaces"
);
}
}
SKIKO_EXPORT
KNativePointer
org_jetbrains_skia_paragraph_FontCollection__1nDefaultFallbackChar
SKIKO_EXPORT
KNativePointer
org_jetbrains_skia_paragraph_FontCollection__1nDefaultFallbackChar
...
...
skiko/src/nativeMain/kotlin/org/jetbrains/skia/impl/RefCnt.native.kt
View file @
21a47543
...
@@ -20,11 +20,11 @@ actual abstract class RefCnt : Managed {
...
@@ -20,11 +20,11 @@ actual abstract class RefCnt : Managed {
}
}
private
object
_FinalizerHolder
{
private
object
_FinalizerHolder
{
val
PTR
=
_nGetFinalizer
()
val
PTR
=
RefCnt
_nGetFinalizer
()
}
}
}
}
@ExternalSymbolName
(
"org_jetbrains_skia_impl_RefCnt__getFinalizer"
)
@ExternalSymbolName
(
"org_jetbrains_skia_impl_RefCnt__getFinalizer"
)
private
external
fun
_nGetFinalizer
():
NativePointer
actual
external
fun
RefCnt
_nGetFinalizer
():
NativePointer
@ExternalSymbolName
(
"org_jetbrains_skia_impl_RefCnt__getRefCount"
)
@ExternalSymbolName
(
"org_jetbrains_skia_impl_RefCnt__getRefCount"
)
private
external
fun
_nGetRefCount
(
ptr
:
NativePointer
):
Int
private
external
fun
_nGetRefCount
(
ptr
:
NativePointer
):
Int
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment