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