Commit 06f7945c authored by Igor Demin's avatar Igor Demin

Move dispose of `device` into Direct3DContextHandler

parent 27681468
...@@ -69,5 +69,8 @@ internal class Direct3DContextHandler(layer: SkiaLayer) : ContextHandler(layer) ...@@ -69,5 +69,8 @@ internal class Direct3DContextHandler(layer: SkiaLayer) : ContextHandler(layer)
if (context != null) { if (context != null) {
destroyContext(Native.getPtr(context!!)) destroyContext(Native.getPtr(context!!))
} }
if (device != 0L) {
directXRedrawer.disposeDevice(device)
}
} }
} }
...@@ -14,7 +14,6 @@ internal class Direct3DRedrawer( ...@@ -14,7 +14,6 @@ internal class Direct3DRedrawer(
) : Redrawer { ) : Redrawer {
private var isDisposed = false private var isDisposed = false
private var device: Long = 0
private val frameDispatcher = FrameDispatcher(Dispatchers.Swing) { private val frameDispatcher = FrameDispatcher(Dispatchers.Swing) {
update(System.nanoTime()) update(System.nanoTime())
...@@ -23,7 +22,6 @@ internal class Direct3DRedrawer( ...@@ -23,7 +22,6 @@ internal class Direct3DRedrawer(
override fun dispose() { override fun dispose() {
frameDispatcher.cancel() frameDispatcher.cancel()
disposeDevice(device)
isDisposed = true isDisposed = true
} }
...@@ -54,10 +52,7 @@ internal class Direct3DRedrawer( ...@@ -54,10 +52,7 @@ internal class Direct3DRedrawer(
makeDirectXRenderTarget(device, width, height) makeDirectXRenderTarget(device, width, height)
) )
fun createDevice(): Long { fun createDevice(): Long = createDirectXDevice(layer.windowHandle)
device = createDirectXDevice(layer.windowHandle)
return device
}
fun finishFrame(device: Long, context: Long, surface: Long) { fun finishFrame(device: Long, context: Long, surface: Long) {
finishFrame(device, context, surface, properties.isVsyncEnabled) finishFrame(device, context, surface, properties.isVsyncEnabled)
......
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