Commit a69f27f2 authored by Nikolay Igotti's avatar Nikolay Igotti

Simplify code, more state transitions exposed to Renderer.

parent 4d64630e
...@@ -24,7 +24,7 @@ fun createWindow(title: String) { ...@@ -24,7 +24,7 @@ fun createWindow(title: String) {
var mouseY = 0 var mouseY = 0
val window = SkiaWindow() val window = SkiaWindow()
window.defaultCloseOperation = WindowConstants.DISPOSE_ON_CLOSE window.defaultCloseOperation = WindowConstants.EXIT_ON_CLOSE
val state = State() val state = State()
state.text = title state.text = title
......
...@@ -32,19 +32,28 @@ interface SkiaRenderer { ...@@ -32,19 +32,28 @@ interface SkiaRenderer {
} }
open class SkiaLayer : HardwareLayer() { open class SkiaLayer : HardwareLayer() {
var renderer: SkiaRenderer? = null var renderer: SkiaRenderer? = null
private val skijaState = SkijaState() private val skijaState = SkijaState()
var init: Boolean = false protected var inited: Boolean = false
fun reinit() {
inited = false
}
override fun disposeLayer() {
renderer?.onDispose()
}
override fun draw() { override fun draw() {
if (!init) { if (!inited) {
if (skijaState.context == null) { if (skijaState.context == null) {
skijaState.context = Context.makeGL() skijaState.context = Context.makeGL()
} }
initSkija() initSkija()
renderer?.onInit() renderer?.onInit()
init = true inited = true
renderer?.onReshape(width, height)
} }
skijaState.apply { skijaState.apply {
...@@ -100,7 +109,7 @@ open class SkiaWindow : JFrame() { ...@@ -100,7 +109,7 @@ open class SkiaWindow : JFrame() {
addComponentListener(object : ComponentAdapter() { addComponentListener(object : ComponentAdapter() {
override fun componentResized(e: ComponentEvent) { override fun componentResized(e: ComponentEvent) {
layer.init = false layer.reinit()
layer.setSize(width, height) layer.setSize(width, height)
Engine.get().render(layer) Engine.get().render(layer)
} }
......
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