Unverified Commit 440e1459 authored by Igor Demin's avatar Igor Demin Committed by GitHub

SkiaMultiplatformSample. Fix showing render API after fallback (#1041)

renderApi can change if there was a fallback (DIRECT3D -> OpenGL ->
Software). We need to always call it in the frame.

Noticed it during testing.
parent 4cb0c513
...@@ -8,7 +8,7 @@ import java.awt.event.MouseMotionListener ...@@ -8,7 +8,7 @@ import java.awt.event.MouseMotionListener
import java.awt.event.MouseWheelEvent import java.awt.event.MouseWheelEvent
import java.awt.event.MouseWheelListener import java.awt.event.MouseWheelListener
class AwtClocks(private val layer: SkiaLayer) : Clocks(layer.renderApi), MouseMotionListener, MouseWheelListener { class AwtClocks(private val layer: SkiaLayer) : Clocks(layer::renderApi), MouseMotionListener, MouseWheelListener {
private val cursorManager = CursorManager() private val cursorManager = CursorManager()
init { init {
......
...@@ -12,7 +12,6 @@ import org.jetbrains.skia.paragraph.TextStyle ...@@ -12,7 +12,6 @@ import org.jetbrains.skia.paragraph.TextStyle
import org.jetbrains.skiko.FPSCounter import org.jetbrains.skiko.FPSCounter
import org.jetbrains.skiko.GraphicsApi import org.jetbrains.skiko.GraphicsApi
import org.jetbrains.skiko.OS import org.jetbrains.skiko.OS
import org.jetbrains.skiko.SkiaLayer
import org.jetbrains.skiko.SkikoRenderDelegate import org.jetbrains.skiko.SkikoRenderDelegate
import org.jetbrains.skiko.currentSystemTheme import org.jetbrains.skiko.currentSystemTheme
import org.jetbrains.skiko.hostOs import org.jetbrains.skiko.hostOs
...@@ -20,7 +19,7 @@ import kotlin.math.PI ...@@ -20,7 +19,7 @@ import kotlin.math.PI
import kotlin.math.cos import kotlin.math.cos
import kotlin.math.sin import kotlin.math.sin
abstract class Clocks(private val renderApi: GraphicsApi): SkikoRenderDelegate { abstract class Clocks(private val renderApi: () -> GraphicsApi): SkikoRenderDelegate {
private val withFps = true private val withFps = true
private val fpsCounter = FPSCounter() private val fpsCounter = FPSCounter()
private val platformYOffset = if (hostOs == OS.Ios) 50f else 5f private val platformYOffset = if (hostOs == OS.Ios) 50f else 5f
...@@ -102,7 +101,7 @@ abstract class Clocks(private val renderApi: GraphicsApi): SkikoRenderDelegate { ...@@ -102,7 +101,7 @@ abstract class Clocks(private val renderApi: GraphicsApi): SkikoRenderDelegate {
val renderInfo = ParagraphBuilder(style, fontCollection) val renderInfo = ParagraphBuilder(style, fontCollection)
.pushStyle(TextStyle().setColor(0xFF000000.toInt())) .pushStyle(TextStyle().setColor(0xFF000000.toInt()))
.addText("Graphics API: $renderApi ✿゚ ${currentSystemTheme}${maybeFps}") .addText("Graphics API: ${renderApi()} ✿゚ ${currentSystemTheme}${maybeFps}")
.popStyle() .popStyle()
.build() .build()
renderInfo.layout(Float.POSITIVE_INFINITY) renderInfo.layout(Float.POSITIVE_INFINITY)
......
...@@ -11,7 +11,7 @@ import platform.AppKit.NSViewHeightSizable ...@@ -11,7 +11,7 @@ import platform.AppKit.NSViewHeightSizable
import platform.AppKit.NSViewWidthSizable import platform.AppKit.NSViewWidthSizable
import platform.AppKit.NSWindow import platform.AppKit.NSWindow
class MacosClocks(skiaLayer: SkiaLayer, window: NSWindow) : Clocks(skiaLayer.renderApi) { class MacosClocks(skiaLayer: SkiaLayer, window: NSWindow) : Clocks(layer::renderApi) {
init { init {
val nsView = object : NSView(window.frame) { val nsView = object : NSView(window.frame) {
private var trackingArea : NSTrackingArea? = null private var trackingArea : NSTrackingArea? = null
......
...@@ -5,7 +5,7 @@ import org.jetbrains.skiko.SkikoUIView ...@@ -5,7 +5,7 @@ import org.jetbrains.skiko.SkikoUIView
import platform.UIKit.NSLayoutConstraint import platform.UIKit.NSLayoutConstraint
import platform.UIKit.UIViewController import platform.UIKit.UIViewController
class IosClocks(skiaLayer: SkiaLayer) : Clocks(skiaLayer.renderApi) { class IosClocks(skiaLayer: SkiaLayer) : Clocks(layer::renderApi) {
val viewController: UIViewController val viewController: UIViewController
init { init {
val view = SkikoUIView(skiaLayer) val view = SkikoUIView(skiaLayer)
......
...@@ -8,7 +8,7 @@ import org.w3c.dom.events.Event ...@@ -8,7 +8,7 @@ import org.w3c.dom.events.Event
import org.w3c.dom.events.MouseEvent import org.w3c.dom.events.MouseEvent
import org.w3c.dom.get import org.w3c.dom.get
class WebClocks(skiaLayer: SkiaLayer, canvas: HTMLCanvasElement) : Clocks(skiaLayer.renderApi) { class WebClocks(skiaLayer: SkiaLayer, canvas: HTMLCanvasElement) : Clocks(layer::renderApi) {
init { init {
val scale = window.devicePixelRatio.toFloat() val scale = window.devicePixelRatio.toFloat()
val bounds = canvas.getBoundingClientRect() val bounds = canvas.getBoundingClientRect()
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment