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
3facce45
Unverified
Commit
3facce45
authored
Jan 13, 2022
by
Nikolay Igotti
Committed by
GitHub
Jan 13, 2022
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Android support preparational work (#451)
parent
ed81acba
Changes
29
Hide whitespace changes
Inline
Side-by-side
Showing
29 changed files
with
256 additions
and
45 deletions
+256
-45
build.gradle.kts
samples/SkiaMultiplatformSample/build.gradle.kts
+15
-0
settings.gradle.kts
samples/SkiaMultiplatformSample/settings.gradle.kts
+1
-3
App.android.kt
...roidMain/kotlin/org/jetbrains/skiko/sample/App.android.kt
+1
-0
build.gradle.kts
skiko/build.gradle.kts
+18
-20
Actuals.android.kt
...androidMain/kotlin/org/jetbrains/skiko/Actuals.android.kt
+29
-0
SkiaLayer.android.kt
...droidMain/kotlin/org/jetbrains/skiko/SkiaLayer.android.kt
+52
-0
SkikoKey.android.kt
...ndroidMain/kotlin/org/jetbrains/skiko/SkikoKey.android.kt
+112
-0
SkiaLayer.awt.kt
...o/src/awtMain/kotlin/org/jetbrains/skiko/SkiaLayer.awt.kt
+1
-1
AngleContextHandler.kt
...kotlin/org/jetbrains/skiko/context/AngleContextHandler.kt
+0
-0
Direct3DContextHandler.kt
...lin/org/jetbrains/skiko/context/Direct3DContextHandler.kt
+0
-1
DirectSoftwareContextHandler.kt
...g/jetbrains/skiko/context/DirectSoftwareContextHandler.kt
+0
-2
JvmContextHandler.kt
...n/kotlin/org/jetbrains/skiko/context/JvmContextHandler.kt
+0
-0
MetalContextHandler.kt
...kotlin/org/jetbrains/skiko/context/MetalContextHandler.kt
+0
-0
OpenGLContextHandler.kt
...otlin/org/jetbrains/skiko/context/OpenGLContextHandler.kt
+0
-0
SoftwareContextHandler.kt
...lin/org/jetbrains/skiko/context/SoftwareContextHandler.kt
+0
-1
AbstractDirectSoftwareRedrawer.kt
...etbrains/skiko/redrawer/AbstractDirectSoftwareRedrawer.kt
+0
-0
AngleRedrawer.kt
...Main/kotlin/org/jetbrains/skiko/redrawer/AngleRedrawer.kt
+0
-3
Direct3DRedrawer.kt
...n/kotlin/org/jetbrains/skiko/redrawer/Direct3DRedrawer.kt
+0
-2
MainUIDispatcher.awt.kt
...tlin/org/jetbrains/skiko/redrawer/MainUIDispatcher.awt.kt
+1
-1
MetalRedrawer.kt
...Main/kotlin/org/jetbrains/skiko/redrawer/MetalRedrawer.kt
+1
-2
SoftwareRedrawer.kt
...n/kotlin/org/jetbrains/skiko/redrawer/SoftwareRedrawer.kt
+0
-2
WindowsOpenGLRedrawer.kt
...lin/org/jetbrains/skiko/redrawer/WindowsOpenGLRedrawer.kt
+1
-2
WindowsSoftwareRedrawer.kt
...n/org/jetbrains/skiko/redrawer/WindowsSoftwareRedrawer.kt
+0
-0
Events.kt
skiko/src/commonMain/kotlin/org/jetbrains/skiko/Events.kt
+6
-2
SkiaLayer.kt
skiko/src/commonMain/kotlin/org/jetbrains/skiko/SkiaLayer.kt
+3
-0
SkiaLayer.ios.kt
...o/src/iosMain/kotlin/org/jetbrains/skiko/SkiaLayer.ios.kt
+1
-1
SkiaLayer.js.kt
skiko/src/jsMain/kotlin/org/jetbrains/skiko/SkiaLayer.js.kt
+5
-0
SkiaLayer.linux.kt
...c/linuxMain/kotlin/org/jetbrains/skiko/SkiaLayer.linux.kt
+7
-0
SkiaLayer.macos.kt
...c/macosMain/kotlin/org/jetbrains/skiko/SkiaLayer.macos.kt
+2
-2
No files found.
samples/SkiaMultiplatformSample/build.gradle.kts
View file @
3facce45
buildscript
{
repositories
{
mavenLocal
()
google
()
mavenCentral
()
maven
(
"https://maven.pkg.jetbrains.space/public/p/compose/dev"
)
}
dependencies
{
// __KOTLIN_COMPOSE_VERSION__
classpath
(
kotlin
(
"gradle-plugin"
,
version
=
"1.6.10"
))
}
}
plugins
{
kotlin
(
"multiplatform"
)
version
"1.6.10"
}
...
...
@@ -6,6 +20,7 @@ val coroutinesVersion = "1.5.2"
repositories
{
mavenLocal
()
google
()
mavenCentral
()
maven
(
"https://maven.pkg.jetbrains.space/public/p/compose/dev"
)
}
...
...
samples/SkiaMultiplatformSample/settings.gradle.kts
View file @
3facce45
...
...
@@ -2,9 +2,7 @@ pluginManagement {
repositories
{
mavenCentral
()
gradlePluginPortal
()
maven
{
url
=
uri
(
"https://dl.bintray.com/kotlin/kotlin-eap"
)
}
google
()
}
}
...
...
samples/SkiaMultiplatformSample/src/androidMain/kotlin/org/jetbrains/skiko/sample/App.android.kt
0 → 100644
View file @
3facce45
//
skiko/build.gradle.kts
View file @
3facce45
...
...
@@ -202,12 +202,7 @@ val Project.supportWasm: Boolean
get
()
=
findProperty
(
"skiko.wasm.enabled"
)
==
"true"
||
isInIdea
val
Project
.
supportAndroid
:
Boolean
get
()
=
findProperty
(
"skiko.android.enabled"
)
==
"true"
val
skikoAwtJar
by
project
.
tasks
.
registering
(
Jar
::
class
)
{
archiveBaseName
.
set
(
"skiko-awt"
)
from
(
kotlin
.
jvm
(
"awt"
).
compilations
[
"main"
].
output
.
allOutputs
)
}
get
()
=
findProperty
(
"skiko.android.enabled"
)
==
"true"
// || isInIdea
kotlin
{
jvm
(
"awt"
)
{
...
...
@@ -218,11 +213,14 @@ kotlin {
}
if
(
supportAndroid
)
{
// todo: use android target
jvm
(
"android"
)
{
compilations
.
all
{
kotlinOptions
.
jvmTarget
=
"11"
}
// We need an additional attribute to distinguish between JVM variants.
attributes
{
attributes
.
attribute
(
Attribute
.
of
(
"ui"
,
String
::
class
.
java
),
"android"
)
}
// TODO: seems incorrect.
generateVersion
(
OS
.
Android
,
Arch
.
Arm64
)
}
...
...
@@ -230,7 +228,7 @@ kotlin {
if
(
supportWasm
)
{
js
(
IR
)
{
browser
()
{
browser
{
testTask
{
dependsOn
(
"linkWasm"
)
useKarma
{
...
...
@@ -265,19 +263,11 @@ kotlin {
}
}
/*
val androidMain by getting {
dependencies {
}
} */
val
jvmMain
by
creating
{
dependsOn
(
commonMain
)
dependencies
{
implementation
(
kotlin
(
"stdlib"
))
implementation
(
"org.jetbrains.kotlinx:kotlinx-coroutines-core-jvm:$coroutinesVersion"
)
implementation
(
"org.jetbrains.kotlinx:kotlinx-coroutines-swing:$coroutinesVersion"
)
}
}
...
...
@@ -609,17 +599,25 @@ fun skiaStaticLibraries(skiaDir: String, targetString: String): List<String> {
val
allJvmRuntimeJars
=
mutableMapOf
<
Pair
<
OS
,
Arch
>,
TaskProvider
<
Jar
>>()
val
skikoJvmRuntimeJar
=
createSkikoJvmJarTask
(
hostOs
,
hostArch
)
val
skikoAwtJar
by
project
.
tasks
.
registering
(
Jar
::
class
)
{
archiveBaseName
.
set
(
"skiko-awt"
)
from
(
kotlin
.
jvm
(
"awt"
).
compilations
[
"main"
].
output
.
allOutputs
)
}
val
skikoJvmRuntimeJar
=
createSkikoJvmJarTask
(
hostOs
,
hostArch
,
skikoAwtJar
)
val
skikoRuntimeDirForTests
=
skikoRuntimeDirForTestsTask
(
hostOs
,
hostArch
,
skikoJvmRuntimeJar
)
if
(
supportAndroid
)
{
val
os
=
OS
.
Android
val
skikoAndroidJar
by
project
.
tasks
.
registering
(
Jar
::
class
)
{
archiveBaseName
.
set
(
"skiko-android"
)
from
(
kotlin
.
jvm
(
"android"
).
compilations
[
"main"
].
output
.
allOutputs
)
}
for
(
arch
in
arrayOf
(
Arch
.
X64
,
Arch
.
Arm64
))
{
createSkikoJvmJarTask
(
os
,
arch
)
createSkikoJvmJarTask
(
os
,
arch
,
skikoAndroidJar
)
}
}
fun
createSkikoJvmJarTask
(
os
:
OS
,
arch
:
Arch
):
TaskProvider
<
Jar
>
{
fun
createSkikoJvmJarTask
(
os
:
OS
,
arch
:
Arch
,
commonJar
:
TaskProvider
<
Jar
>
):
TaskProvider
<
Jar
>
{
val
skiaBindingsDir
=
registerOrGetSkiaDirProvider
(
os
,
arch
)
val
compileBindings
=
createCompileJvmBindingsTask
(
os
,
arch
,
skiaBindingsDir
)
val
objcCompile
=
if
(
os
==
OS
.
MacOS
)
createObjcCompileTask
(
os
,
arch
,
skiaBindingsDir
)
else
null
...
...
@@ -651,7 +649,7 @@ fun createSkikoJvmJarTask(os: OS, arch: Arch): TaskProvider<Jar> {
nativeFiles
.
add
(
nativeLib2
)
nativeFiles
.
add
(
createChecksums2
.
map
{
it
.
outputs
.
files
.
singleFile
})
}
val
skikoJvmRuntimeJar
=
skikoJvmRuntimeJarTask
(
os
,
arch
,
skikoAwt
Jar
,
nativeFiles
)
val
skikoJvmRuntimeJar
=
skikoJvmRuntimeJarTask
(
os
,
arch
,
common
Jar
,
nativeFiles
)
allJvmRuntimeJars
[
os
to
arch
]
=
skikoJvmRuntimeJar
return
skikoJvmRuntimeJar
}
...
...
skiko/src/androidMain/kotlin/org/jetbrains/skiko/Actuals.android.kt
0 → 100644
View file @
3facce45
package
org.jetbrains.skiko
import
org.jetbrains.skiko.redrawer.Redrawer
actual
fun
setSystemLookAndFeel
():
Unit
=
TODO
()
internal
class
AndroidOpenGLRedrawer
(
private
val
layer
:
SkiaLayer
,
private
val
properties
:
SkiaLayerProperties
)
:
Redrawer
{
override
fun
dispose
()
=
TODO
()
override
fun
needRedraw
()
=
TODO
()
override
fun
redrawImmediately
()
=
TODO
()
override
val
renderInfo
:
String
get
()
=
"Android renderer"
}
internal
actual
fun
makeDefaultRenderFactory
():
RenderFactory
{
return
object
:
RenderFactory
{
override
fun
createRedrawer
(
layer
:
SkiaLayer
,
renderApi
:
GraphicsApi
,
properties
:
SkiaLayerProperties
):
Redrawer
=
when
(
hostOs
)
{
OS
.
Android
->
AndroidOpenGLRedrawer
(
layer
,
properties
)
else
->
throw
IllegalArgumentException
(
"Must not happen"
)
}
}
}
skiko/src/androidMain/kotlin/org/jetbrains/skiko/SkiaLayer.android.kt
0 → 100644
View file @
3facce45
package
org.jetbrains.skiko
import
android.view.KeyEvent
import
android.view.MotionEvent
import
org.jetbrains.skia.Canvas
import
org.jetbrains.skiko.redrawer.Redrawer
actual
typealias
SkikoGesturePlatformEvent
=
MotionEvent
actual
typealias
SkikoPlatformPointerEvent
=
MotionEvent
// TODO: most likely wrong.
actual
typealias
SkikoPlatformInputEvent
=
Any
actual
typealias
SkikoTouchPlatformEvent
=
Any
actual
typealias
SkikoPlatformKeyboardEvent
=
KeyEvent
actual
open
class
SkiaLayer
{
actual
var
renderApi
:
GraphicsApi
=
GraphicsApi
.
OPENGL
actual
val
contentScale
:
Float
get
()
=
1.0f
actual
var
fullscreen
:
Boolean
get
()
=
false
set
(
value
)
{
if
(
value
)
throw
IllegalArgumentException
(
"fullscreen unsupported"
)
}
actual
var
transparency
:
Boolean
get
()
=
false
set
(
value
)
{
if
(
value
)
throw
IllegalArgumentException
(
"transparency unsupported"
)
}
actual
var
skikoView
:
SkikoView
?
=
null
actual
fun
attachTo
(
container
:
Any
)
{
TODO
(
"Implement attachTo()"
)
}
actual
fun
detach
()
{
}
actual
fun
needRedraw
()
{
TODO
(
"Implement needRedraw()"
)
}
internal
var
redrawer
:
Redrawer
?
=
null
var
width
:
Int
=
0
var
height
:
Int
=
0
internal
actual
fun
draw
(
canvas
:
Canvas
):
Unit
=
TODO
()
}
\ No newline at end of file
skiko/src/androidMain/kotlin/org/jetbrains/skiko/SkikoKey.android.kt
0 → 100644
View file @
3facce45
package
org.jetbrains.skiko
import
android.view.KeyEvent.*
// See https://developer.android.com/reference/android/view/KeyEvent
actual
enum
class
SkikoKey
(
val
value
:
Int
)
{
KEY_UNKNOWN
(
KEYCODE_UNKNOWN
),
KEY_A
(
KEYCODE_A
),
KEY_S
(
KEYCODE_S
),
KEY_D
(
KEYCODE_D
),
KEY_F
(
KEYCODE_F
),
KEY_H
(
KEYCODE_H
),
KEY_G
(
KEYCODE_G
),
KEY_Z
(
KEYCODE_Z
),
KEY_X
(
KEYCODE_X
),
KEY_C
(
KEYCODE_C
),
KEY_V
(
KEYCODE_V
),
KEY_B
(
KEYCODE_B
),
KEY_Q
(
KEYCODE_Q
),
KEY_W
(
KEYCODE_W
),
KEY_E
(
KEYCODE_E
),
KEY_R
(
KEYCODE_R
),
KEY_Y
(
KEYCODE_Y
),
KEY_T
(
KEYCODE_T
),
KEY_U
(
KEYCODE_U
),
KEY_I
(
KEYCODE_I
),
KEY_P
(
KEYCODE_P
),
KEY_L
(
KEYCODE_L
),
KEY_J
(
KEYCODE_J
),
KEY_K
(
KEYCODE_K
),
KEY_N
(
KEYCODE_N
),
KEY_M
(
KEYCODE_M
),
KEY_O
(
KEYCODE_O
),
KEY_1
(
KEYCODE_1
),
KEY_2
(
KEYCODE_2
),
KEY_3
(
KEYCODE_3
),
KEY_4
(
KEYCODE_4
),
KEY_5
(
KEYCODE_5
),
KEY_6
(
KEYCODE_6
),
KEY_7
(
KEYCODE_7
),
KEY_8
(
KEYCODE_8
),
KEY_9
(
KEYCODE_9
),
KEY_0
(
KEYCODE_0
),
KEY_CLOSE_BRACKET
(
KEYCODE_RIGHT_BRACKET
),
KEY_OPEN_BRACKET
(
KEYCODE_LEFT_BRACKET
),
KEY_QUOTE
(
KEYCODE_UNKNOWN
),
KEY_SEMICOLON
(
KEYCODE_SEMICOLON
),
KEY_SLASH
(
KEYCODE_SLASH
),
KEY_COMMA
(
KEYCODE_COMMA
),
KEY_BACKSLASH
(
KEYCODE_BACKSLASH
),
KEY_PERIOD
(
KEYCODE_PERIOD
),
KEY_BACK_QUOTE
(
KEYCODE_UNKNOWN
),
KEY_EQUALS
(
KEYCODE_EQUALS
),
KEY_MINUS
(
KEYCODE_MINUS
),
KEY_ENTER
(
KEYCODE_ENTER
),
KEY_ESCAPE
(
KEYCODE_ESCAPE
),
KEY_TAB
(
KEYCODE_TAB
),
KEY_BACKSPACE
(
KEYCODE_DEL
),
KEY_SPACE
(
KEYCODE_SPACE
),
KEY_CAPSLOCK
(
KEYCODE_CAPS_LOCK
),
KEY_LEFT_META
(
KEYCODE_META_LEFT
),
KEY_LEFT_SHIFT
(
KEYCODE_SHIFT_LEFT
),
KEY_LEFT_ALT
(
KEYCODE_ALT_LEFT
),
KEY_LEFT_CONTROL
(
KEYCODE_CTRL_LEFT
),
KEY_RIGHT_META
(
KEYCODE_META_RIGHT
),
KEY_RIGHT_SHIFT
(
KEYCODE_SHIFT_RIGHT
),
KEY_RIGHT_ALT
(
KEYCODE_ALT_RIGHT
),
KEY_RIGHT_CONTROL
(
KEYCODE_CTRL_RIGHT
),
KEY_MENU
(
KEYCODE_UNKNOWN
),
KEY_UP
(
KEYCODE_SYSTEM_NAVIGATION_UP
),
KEY_DOWN
(
KEYCODE_SYSTEM_NAVIGATION_DOWN
),
KEY_LEFT
(
KEYCODE_SYSTEM_NAVIGATION_LEFT
),
KEY_RIGHT
(
KEYCODE_SYSTEM_NAVIGATION_RIGHT
),
KEY_F1
(
KEYCODE_F1
),
KEY_F2
(
KEYCODE_F2
),
KEY_F3
(
KEYCODE_F3
),
KEY_F4
(
KEYCODE_F4
),
KEY_F5
(
KEYCODE_F5
),
KEY_F6
(
KEYCODE_F6
),
KEY_F7
(
KEYCODE_F7
),
KEY_F8
(
KEYCODE_F8
),
KEY_F9
(
KEYCODE_F9
),
KEY_F10
(
KEYCODE_F10
),
KEY_F11
(
KEYCODE_F11
),
KEY_F12
(
KEYCODE_F12
),
KEY_PRINTSCEEN
(
KEYCODE_UNKNOWN
),
KEY_SCROLL_LOCK
(
KEYCODE_UNKNOWN
),
KEY_PAUSE
(
KEYCODE_UNKNOWN
),
KEY_INSERT
(
KEYCODE_INSERT
),
KEY_HOME
(
KEYCODE_HOME
),
KEY_PGUP
(
KEYCODE_PAGE_UP
),
KEY_DELETE
(
KEYCODE_FORWARD_DEL
),
KEY_END
(
KEYCODE_MOVE_END
),
KEY_PGDOWN
(
KEYCODE_PAGE_DOWN
),
KEY_NUM_LOCK
(
KEYCODE_UNKNOWN
),
KEY_NUMPAD_0
(
KEYCODE_NUMPAD_0
),
KEY_NUMPAD_1
(
KEYCODE_NUMPAD_1
),
KEY_NUMPAD_2
(
KEYCODE_NUMPAD_2
),
KEY_NUMPAD_3
(
KEYCODE_NUMPAD_3
),
KEY_NUMPAD_4
(
KEYCODE_NUMPAD_4
),
KEY_NUMPAD_5
(
KEYCODE_NUMPAD_5
),
KEY_NUMPAD_6
(
KEYCODE_NUMPAD_6
),
KEY_NUMPAD_7
(
KEYCODE_NUMPAD_7
),
KEY_NUMPAD_8
(
KEYCODE_NUMPAD_8
),
KEY_NUMPAD_9
(
KEYCODE_NUMPAD_9
),
KEY_NUMPAD_ENTER
(
KEYCODE_NUMPAD_ENTER
),
KEY_NUMPAD_ADD
(
KEYCODE_NUMPAD_ADD
),
KEY_NUMPAD_SUBTRACT
(
KEYCODE_NUMPAD_SUBTRACT
),
KEY_NUMPAD_MULTIPLY
(
KEYCODE_NUMPAD_MULTIPLY
),
KEY_NUMPAD_DIVIDE
(
KEYCODE_NUMPAD_DIVIDE
),
KEY_NUMPAD_DECIMAL
(
KEYCODE_UNKNOWN
);
}
\ No newline at end of file
skiko/src/awtMain/kotlin/org/jetbrains/skiko/SkiaLayer.awt.kt
View file @
3facce45
...
...
@@ -466,7 +466,7 @@ actual open class SkiaLayer internal constructor(
}
}
internal
fun
draw
(
canvas
:
Canvas
)
{
actual
internal
fun
draw
(
canvas
:
Canvas
)
{
check
(!
isDisposed
)
{
"SkiaLayer is disposed"
}
lockPicture
{
canvas
.
drawPicture
(
it
.
instance
)
...
...
skiko/src/
jvm
Main/kotlin/org/jetbrains/skiko/context/AngleContextHandler.kt
→
skiko/src/
awt
Main/kotlin/org/jetbrains/skiko/context/AngleContextHandler.kt
View file @
3facce45
File moved
skiko/src/
jvm
Main/kotlin/org/jetbrains/skiko/context/Direct3DContextHandler.kt
→
skiko/src/
awt
Main/kotlin/org/jetbrains/skiko/context/Direct3DContextHandler.kt
View file @
3facce45
package
org.jetbrains.skiko.context
import
org.jetbrains.skia.Surface
import
org.jetbrains.skia.impl.Native
import
org.jetbrains.skia.impl.getPtr
import
org.jetbrains.skiko.SkiaLayer
import
org.jetbrains.skiko.redrawer.Direct3DRedrawer
...
...
skiko/src/
jvm
Main/kotlin/org/jetbrains/skiko/context/DirectSoftwareContextHandler.kt
→
skiko/src/
awt
Main/kotlin/org/jetbrains/skiko/context/DirectSoftwareContextHandler.kt
View file @
3facce45
package
org.jetbrains.skiko.context
import
org.jetbrains.skia.Surface
import
org.jetbrains.skia.impl.Native
import
org.jetbrains.skia.impl.getPtr
import
org.jetbrains.skiko.SkiaLayer
import
org.jetbrains.skiko.redrawer.AbstractDirectSoftwareRedrawer
...
...
skiko/src/
jvm
Main/kotlin/org/jetbrains/skiko/context/JvmContextHandler.kt
→
skiko/src/
awt
Main/kotlin/org/jetbrains/skiko/context/JvmContextHandler.kt
View file @
3facce45
File moved
skiko/src/
jvm
Main/kotlin/org/jetbrains/skiko/context/MetalContextHandler.kt
→
skiko/src/
awt
Main/kotlin/org/jetbrains/skiko/context/MetalContextHandler.kt
View file @
3facce45
File moved
skiko/src/
jvm
Main/kotlin/org/jetbrains/skiko/context/OpenGLContextHandler.kt
→
skiko/src/
awt
Main/kotlin/org/jetbrains/skiko/context/OpenGLContextHandler.kt
View file @
3facce45
File moved
skiko/src/
jvm
Main/kotlin/org/jetbrains/skiko/context/SoftwareContextHandler.kt
→
skiko/src/
awt
Main/kotlin/org/jetbrains/skiko/context/SoftwareContextHandler.kt
View file @
3facce45
...
...
@@ -4,7 +4,6 @@ import org.jetbrains.skia.Bitmap
import
org.jetbrains.skia.Canvas
import
org.jetbrains.skia.ColorAlphaType
import
org.jetbrains.skia.ImageInfo
import
org.jetbrains.skia.Picture
import
org.jetbrains.skiko.SkiaLayer
import
org.jetbrains.skiko.hostOs
import
org.jetbrains.skiko.OS
...
...
skiko/src/
jvm
Main/kotlin/org/jetbrains/skiko/redrawer/AbstractDirectSoftwareRedrawer.kt
→
skiko/src/
awt
Main/kotlin/org/jetbrains/skiko/redrawer/AbstractDirectSoftwareRedrawer.kt
View file @
3facce45
File moved
skiko/src/
jvm
Main/kotlin/org/jetbrains/skiko/redrawer/AngleRedrawer.kt
→
skiko/src/
awt
Main/kotlin/org/jetbrains/skiko/redrawer/AngleRedrawer.kt
View file @
3facce45
package
org.jetbrains.skiko.redrawer
import
kotlinx.coroutines.Dispatchers
import
kotlinx.coroutines.swing.Swing
import
org.jetbrains.skia.BackendRenderTarget
import
org.jetbrains.skia.DirectContext
import
org.jetbrains.skiko.FrameDispatcher
import
org.jetbrains.skiko.SkiaLayer
import
org.jetbrains.skiko.SkiaLayerProperties
import
org.jetbrains.skiko.context.AngleContextHandler
import
org.jetbrains.skiko.context.DirectSoftwareContextHandler
internal
class
AngleRedrawer
(
private
val
layer
:
SkiaLayer
,
...
...
skiko/src/
jvm
Main/kotlin/org/jetbrains/skiko/redrawer/Direct3DRedrawer.kt
→
skiko/src/
awt
Main/kotlin/org/jetbrains/skiko/redrawer/Direct3DRedrawer.kt
View file @
3facce45
package
org.jetbrains.skiko.redrawer
import
kotlinx.coroutines.Dispatchers
import
kotlinx.coroutines.swing.Swing
import
kotlinx.coroutines.withContext
import
org.jetbrains.skia.DirectContext
import
org.jetbrains.skia.Surface
import
org.jetbrains.skiko.*
import
org.jetbrains.skiko.context.AngleContextHandler
import
org.jetbrains.skiko.context.Direct3DContextHandler
internal
class
Direct3DRedrawer
(
...
...
skiko/src/awtMain/kotlin/org/jetbrains/skiko/redrawer/
Actuals
.awt.kt
→
skiko/src/awtMain/kotlin/org/jetbrains/skiko/redrawer/
MainUIDispatcher
.awt.kt
View file @
3facce45
...
...
@@ -4,5 +4,5 @@ import kotlinx.coroutines.Dispatchers
import
kotlinx.coroutines.MainCoroutineDispatcher
import
kotlinx.coroutines.swing.Swing
actual
val
MainUIDispatcher
:
MainCoroutineDispatcher
val
MainUIDispatcher
:
MainCoroutineDispatcher
get
()
=
Dispatchers
.
Swing
skiko/src/awtMain/kotlin/org/jetbrains/skiko/redrawer/MetalRedrawer.kt
View file @
3facce45
...
...
@@ -3,7 +3,6 @@ package org.jetbrains.skiko.redrawer
import
kotlinx.coroutines.CancellationException
import
kotlinx.coroutines.Dispatchers
import
kotlinx.coroutines.delay
import
kotlinx.coroutines.swing.Swing
import
kotlinx.coroutines.withContext
import
org.jetbrains.skia.BackendRenderTarget
import
org.jetbrains.skia.DirectContext
...
...
@@ -34,7 +33,7 @@ internal class MetalRedrawer(
setVSyncEnabled
(
device
,
properties
.
isVsyncEnabled
)
}
private
val
frameDispatcher
=
FrameDispatcher
(
Dispatchers
.
Swing
)
{
private
val
frameDispatcher
=
FrameDispatcher
(
MainUIDispatcher
)
{
if
(
layer
.
isShowing
)
{
update
(
System
.
nanoTime
())
draw
()
...
...
skiko/src/
jvm
Main/kotlin/org/jetbrains/skiko/redrawer/SoftwareRedrawer.kt
→
skiko/src/
awt
Main/kotlin/org/jetbrains/skiko/redrawer/SoftwareRedrawer.kt
View file @
3facce45
...
...
@@ -7,8 +7,6 @@ import org.jetbrains.skiko.SkiaLayer
import
org.jetbrains.skiko.SkiaLayerProperties
import
org.jetbrains.skiko.context.SoftwareContextHandler
expect
val
MainUIDispatcher
:
MainCoroutineDispatcher
internal
class
SoftwareRedrawer
(
private
val
layer
:
SkiaLayer
,
private
val
properties
:
SkiaLayerProperties
...
...
skiko/src/awtMain/kotlin/org/jetbrains/skiko/redrawer/WindowsOpenGLRedrawer.kt
View file @
3facce45
...
...
@@ -2,7 +2,6 @@ package org.jetbrains.skiko.redrawer
import
kotlinx.coroutines.CancellationException
import
kotlinx.coroutines.Dispatchers
import
kotlinx.coroutines.swing.Swing
import
kotlinx.coroutines.withContext
import
org.jetbrains.skiko.*
import
org.jetbrains.skiko.context.OpenGLContextHandler
...
...
@@ -79,7 +78,7 @@ internal class WindowsOpenGLRedrawer(
.
filterNot
(
WindowsOpenGLRedrawer
::
isDisposed
)
.
filter
{
it
.
layer
.
isShowing
}
private
val
frameDispatcher
=
FrameDispatcher
(
Dispatchers
.
Swing
)
{
private
val
frameDispatcher
=
FrameDispatcher
(
MainUIDispatcher
)
{
toRedrawCopy
.
addAll
(
toRedraw
)
toRedraw
.
clear
()
...
...
skiko/src/
jvm
Main/kotlin/org/jetbrains/skiko/redrawer/WindowsSoftwareRedrawer.kt
→
skiko/src/
awt
Main/kotlin/org/jetbrains/skiko/redrawer/WindowsSoftwareRedrawer.kt
View file @
3facce45
File moved
skiko/src/commonMain/kotlin/org/jetbrains/skiko/Events.kt
View file @
3facce45
package
org.jetbrains.skiko
import
kotlin.jvm.JvmInline
// Clicked mouse buttons bitmask.
inline
class
SkikoMouseButtons
(
val
value
:
Int
)
{
@JvmInline
value
class
SkikoMouseButtons
(
val
value
:
Int
)
{
companion
object
{
val
NONE
=
SkikoMouseButtons
(
0
)
val
LEFT
=
SkikoMouseButtons
(
1
)
...
...
@@ -55,7 +58,8 @@ inline class SkikoMouseButtons(val value: Int) {
}
}
inline
class
SkikoInputModifiers
(
val
value
:
Int
)
{
@JvmInline
value
class
SkikoInputModifiers
(
val
value
:
Int
)
{
companion
object
{
val
EMPTY
=
SkikoInputModifiers
(
0
)
val
META
=
SkikoInputModifiers
(
1
)
...
...
skiko/src/commonMain/kotlin/org/jetbrains/skiko/SkiaLayer.kt
View file @
3facce45
package
org.jetbrains.skiko
import
org.jetbrains.skia.Canvas
import
org.jetbrains.skia.Picture
expect
open
class
SkiaLayer
{
...
...
@@ -15,6 +16,8 @@ expect open class SkiaLayer {
fun
detach
()
fun
needRedraw
()
internal
fun
draw
(
canvas
:
Canvas
)
}
...
...
skiko/src/iosMain/kotlin/org/jetbrains/skiko/SkiaLayer.ios.kt
View file @
3facce45
...
...
@@ -172,7 +172,7 @@ actual open class SkiaLayer {
internal
var
redrawer
:
MetalRedrawer
?
=
null
private
var
contextHandler
:
MetalContextHandler
?
=
null
internal
fun
draw
(
canvas
:
Canvas
)
{
internal
actual
fun
draw
(
canvas
:
Canvas
)
{
check
(!
isDisposed
)
{
"SkiaLayer is disposed"
}
val
(
w
,
h
)
=
view
!!
.
frame
.
useContents
{
size
.
width
to
size
.
height
...
...
skiko/src/jsMain/kotlin/org/jetbrains/skiko/SkiaLayer.js.kt
View file @
3facce45
package
org.jetbrains.skiko
import
kotlinx.browser.window
import
org.jetbrains.skia.Canvas
import
org.w3c.dom.HTMLCanvasElement
import
org.w3c.dom.events.InputEvent
import
org.w3c.dom.events.KeyboardEvent
...
...
@@ -101,6 +102,10 @@ actual open class SkiaLayer {
window
.
matchMedia
(
"(resolution: ${contentScale}dppx)"
).
addEventListener
(
"change"
,
{
setOnChangeScaleNotifier
()
},
true
)
onContentScaleChanged
?.
invoke
(
contentScale
)
}
internal
actual
fun
draw
(
canvas
:
Canvas
)
{
skikoView
?.
onRender
(
canvas
,
state
!!
.
width
,
state
!!
.
height
,
currentNanoTime
())
}
}
var
onContentScaleChanged
:
((
Float
)
->
Unit
)?
=
null
...
...
skiko/src/linuxMain/kotlin/org/jetbrains/skiko/SkiaLayer.linux.kt
View file @
3facce45
package
org.jetbrains.skiko
import
org.jetbrains.skia.Canvas
actual
open
class
SkiaLayer
{
actual
var
renderApi
:
GraphicsApi
get
()
=
TODO
(
"Not yet implemented"
)
...
...
@@ -21,6 +23,11 @@ actual open class SkiaLayer {
actual
fun
detach
()
{
TODO
(
"unimplemented"
)
}
internal
actual
fun
draw
(
canvas
:
Canvas
)
{
TODO
(
"unimplemented"
)
}
actual
var
skikoView
:
SkikoView
?
=
null
}
...
...
skiko/src/macosMain/kotlin/org/jetbrains/skiko/SkiaLayer.macos.kt
View file @
3facce45
...
...
@@ -25,7 +25,7 @@ import platform.Foundation.addObserver
import
platform.darwin.NSObject
import
platform.CoreGraphics.CGRectMake
actual
open
class
SkiaLayer
()
{
actual
open
class
SkiaLayer
{
fun
isShowing
():
Boolean
{
return
true
}
...
...
@@ -226,7 +226,7 @@ actual open class SkiaLayer() {
this
.
picture
=
PictureHolder
(
picture
,
pictureWidth
.
toInt
(),
pictureHeight
.
toInt
())
}
internal
fun
draw
(
canvas
:
Canvas
)
{
internal
actual
fun
draw
(
canvas
:
Canvas
)
{
picture
?.
also
{
canvas
.
drawPicture
(
it
.
instance
)
}
...
...
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