Commit 1d84dd1d authored by Roman Sedaikin's avatar Roman Sedaikin

Refactored renderer debug output.

parent 381cd6c5
......@@ -9,6 +9,9 @@ import org.jetbrains.skiko.GraphicsApi
import org.jetbrains.skiko.OS
import org.jetbrains.skiko.SkiaLayer
import org.jetbrains.skiko.hostOs
import org.jetbrains.skiko.hostFullName
import org.jetbrains.skiko.javaLocation
import org.jetbrains.skiko.javaVendor
internal fun createContextHandler(layer: SkiaLayer, renderApi: GraphicsApi): ContextHandler {
return when (renderApi) {
......@@ -52,7 +55,12 @@ internal abstract class ContextHandler(val layer: SkiaLayer) {
renderTarget?.close()
}
open fun hardwareInfo(): String = ""
protected open fun rendererInfo(): String {
return "${layer.renderApi} rendering info:\n" +
"OS: $hostFullName\n" +
"Java: $javaVendor\n" +
"Java location: $javaLocation\n"
}
protected open fun destroyContext() = Unit
}
......@@ -6,9 +6,6 @@ import org.jetbrains.skija.SurfaceColorFormat
import org.jetbrains.skija.SurfaceOrigin
import org.jetbrains.skija.impl.Native
import org.jetbrains.skiko.SkiaLayer
import org.jetbrains.skiko.hostFullName
import org.jetbrains.skiko.javaLocation
import org.jetbrains.skiko.javaVendor
import org.jetbrains.skiko.redrawer.Direct3DRedrawer
import java.lang.ref.Reference
......@@ -29,7 +26,7 @@ internal class Direct3DContextHandler(layer: SkiaLayer) : ContextHandler(layer)
}
context = directXRedrawer.makeContext(device)
if (System.getProperty("skiko.hardwareInfo.enabled") == "true") {
println(hardwareInfo())
println(rendererInfo())
}
}
} catch (e: Exception) {
......@@ -111,11 +108,8 @@ internal class Direct3DContextHandler(layer: SkiaLayer) : ContextHandler(layer)
}
}
override fun hardwareInfo(): String {
return "DIRECT3D (dx12) rendering info:\n" +
"OS: $hostFullName\n" +
"Java: $javaVendor\n" +
"Java location: $javaLocation\n" +
protected override fun rendererInfo(): String {
return super.rendererInfo() +
"Video card: ${directXRedrawer.getAdapterName(device)}\n" +
"Total VRAM: ${directXRedrawer.getAdapterMemorySize(device) / 1024 / 1024} MB\n"
}
......
......@@ -6,9 +6,6 @@ import org.jetbrains.skija.SurfaceColorFormat
import org.jetbrains.skija.SurfaceOrigin
import org.jetbrains.skija.impl.Native
import org.jetbrains.skiko.SkiaLayer
import org.jetbrains.skiko.hostFullName
import org.jetbrains.skiko.javaLocation
import org.jetbrains.skiko.javaVendor
import org.jetbrains.skiko.redrawer.MetalRedrawer
internal class MetalContextHandler(layer: SkiaLayer) : ContextHandler(layer) {
......@@ -20,7 +17,7 @@ internal class MetalContextHandler(layer: SkiaLayer) : ContextHandler(layer) {
if (context == null) {
context = metalRedrawer.makeContext()
if (System.getProperty("skiko.hardwareInfo.enabled") == "true") {
println(hardwareInfo())
println(rendererInfo())
}
}
} catch (e: Exception) {
......@@ -60,11 +57,8 @@ internal class MetalContextHandler(layer: SkiaLayer) : ContextHandler(layer) {
context?.close()
}
override fun hardwareInfo(): String {
return "METAL rendering info:\n" +
"OS: $hostFullName\n" +
"Java: $javaVendor\n" +
"Java location: $javaLocation\n" +
override fun rendererInfo(): String {
return super.rendererInfo() +
"Video card: ${metalRedrawer.getAdapterName()}\n" +
"Total VRAM: ${metalRedrawer.getAdapterMemorySize() / 1024 / 1024} MB\n"
}
......
......@@ -8,9 +8,6 @@ import org.jetbrains.skija.SurfaceOrigin
import org.jetbrains.skiko.OpenGLApi
import org.jetbrains.skiko.SkiaLayer
import org.jetbrains.skiko.makeGLContext
import org.jetbrains.skiko.hostFullName
import org.jetbrains.skiko.javaLocation
import org.jetbrains.skiko.javaVendor
import org.jetbrains.skiko.makeGLRenderTarget
internal class OpenGLContextHandler(layer: SkiaLayer) : ContextHandler(layer) {
......@@ -19,7 +16,7 @@ internal class OpenGLContextHandler(layer: SkiaLayer) : ContextHandler(layer) {
if (context == null) {
context = makeGLContext()
if (System.getProperty("skiko.hardwareInfo.enabled") == "true") {
println(hardwareInfo())
println(rendererInfo())
}
}
} catch (e: Exception) {
......@@ -69,12 +66,9 @@ internal class OpenGLContextHandler(layer: SkiaLayer) : ContextHandler(layer) {
canvas = surface!!.canvas
}
override fun hardwareInfo(): String {
override fun rendererInfo(): String {
val gl = OpenGLApi.instance
return "OPENGL rendering info:\n" +
"OS: $hostFullName\n" +
"Java: $javaVendor\n" +
"Java location: $javaLocation\n" +
return super.rendererInfo() +
"Vendor: ${gl.glGetString(gl.GL_VENDOR)}\n" +
"Model: ${gl.glGetString(gl.GL_RENDERER)}\n" +
"Total VRAM: ${gl.glGetIntegerv(gl.GL_TOTAL_MEMORY) / 1024} MB\n"
......
......@@ -6,9 +6,6 @@ import org.jetbrains.skija.ColorAlphaType
import org.jetbrains.skija.ImageInfo
import org.jetbrains.skija.Picture
import org.jetbrains.skiko.SkiaLayer
import org.jetbrains.skiko.hostFullName
import org.jetbrains.skiko.javaLocation
import org.jetbrains.skiko.javaVendor
import java.awt.Transparency
import java.awt.color.ColorSpace
import java.awt.image.BufferedImage
......@@ -32,10 +29,17 @@ internal class SoftwareContextHandler(layer: SkiaLayer) : ContextHandler(layer)
var image: BufferedImage? = null
var imageData: ByteArray? = null
var raster: WritableRaster? = null
var isInited = false
override fun initContext(): Boolean {
// Raster does not need context
return true
if (!isInited) {
if (System.getProperty("skiko.hardwareInfo.enabled") == "true") {
println(rendererInfo())
}
isInited = true
}
return isInited
}
override fun initCanvas() {
......@@ -79,11 +83,4 @@ internal class SoftwareContextHandler(layer: SkiaLayer) : ContextHandler(layer)
override fun flush() {
// Raster does not need to flush canvas
}
override fun hardwareInfo(): String {
return "SOFTWARE rendering info:\n" +
"OS: $hostFullName\n" +
"Java: $javaVendor\n" +
"Java location: $javaLocation\n"
}
}
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