Skip to content

Commit 90e8a35

Browse files
committed
caps ready
1 parent fff8cbc commit 90e8a35

File tree

2 files changed

+51
-18
lines changed

2 files changed

+51
-18
lines changed

src/main/kotlin/uno/caps/caps.kt

Lines changed: 49 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -34,39 +34,67 @@ import uno.buffer.intBufferBig
3434
import uno.gl.*
3535
import uno.glfw.GlfwWindow
3636
import uno.glfw.glfw
37+
import uno.kotlin.parseInt
3738
import java.io.File
3839
import java.io.PrintWriter
40+
import java.nio.file.Paths
3941
import kotlin.reflect.KVisibility
4042
import kotlin.reflect.full.memberProperties
4143

4244
/**
4345
* Created by GBarbieri on 10.03.2017.
4446
*/
4547

46-
val debug = true
47-
4848
fun main(args: Array<String>) {
4949

50-
var args = args
51-
if (debug)
52-
args = arrayOf("4.6", "E:\\Desktop\\report.txt")
50+
val debug = false
51+
val defaultVersion = "4.6"
52+
val defaultPath = Paths.get("").toAbsolutePath().normalize().toString()
53+
val defaultFilename = "report.txt"
54+
55+
val version: String
56+
val path: String
57+
when {
58+
debug -> {
59+
version = defaultVersion
60+
path = defaultPath + defaultFilename
61+
}
62+
else -> {
63+
version = args.getOrNull(0)?.takeIf { it.matches(Regex("[0-9].[0-9]")) } ?: defaultVersion
64+
path = defaultPath + "\\" + (args.getOrNull(1)?.takeIf { it.isNotEmpty() } ?: defaultFilename)
65+
}
66+
}
5367

5468
with(glfw) {
5569
init()
5670
windowHint {
57-
context.version = args[0]
71+
context.version = version
5872
profile = "core"
5973
}
6074
}
6175

62-
fun createWindow() = try {
76+
fun createWindow(): GlfwWindow = try {
6377
GlfwWindow(1280, 720, "test")
6478
} catch (exc: RuntimeException) {
65-
val version = glfw.windowHint { context.version }
66-
79+
with(glfw) {
80+
init()
81+
windowHint {
82+
val s = context.version
83+
var major = s[0].parseInt()
84+
var minor = s[2].parseInt()
85+
var version = major * 10 + minor
86+
version--
87+
// println("new version $version")
88+
major = version / 10
89+
minor = version % 10
90+
context.version = "$major.$minor"
91+
}
92+
}
93+
createWindow()
6794
}
6895

69-
with(GlfwWindow(1280, 720, "test")) {
96+
with(createWindow()) {
97+
println("highest OpenGL version found ${glfw.windowHint { context.version }}")
7098
makeContextCurrent()
7199
show()
72100
}
@@ -75,22 +103,25 @@ fun main(args: Array<String>) {
75103

76104
val caps = Caps(Caps.Profile.ES)
77105

78-
val report = File(args[1]).printWriter().use {
79-
val `_` = "--------------------------------------------------"
80-
it.println("$`_`version$`_`")
106+
println("writing report to $path")
107+
File(path).printWriter().use {
108+
val `-` = "--------------------------------------------------"
109+
it.println("$`-`version$`-`")
81110
caps.version.write(it)
82-
it.println("$`_`extensions$`_`")
111+
it.println("$`-`extensions$`-`")
83112
caps.extensions.write(it)
84-
it.println("$`_`debug$`_`")
113+
it.println("$`-`debug$`-`")
85114
caps.debug.write(it)
86-
it.println("$`_`limits$`_`")
115+
it.println("$`-`limits$`-`")
87116
caps.limits.write(it)
88-
it.println("$`_`values$`_`")
117+
it.println("$`-`values$`-`")
89118
caps.values.write(it)
90-
it.println("$`_`formats$`_`")
119+
it.println("$`-`formats$`-`")
91120
caps.formats.write(it)
92121
}
93122
checkError("caps")
123+
124+
glfw.terminate()
94125
}
95126

96127
class Caps(profile: Profile) {

src/main/kotlin/uno/kotlin/util.kt

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -30,6 +30,8 @@ val Char.isPrintable: Boolean get() = with(Character.UnicodeBlock.of(this)) {
3030
this != Character.UnicodeBlock.SPECIALS
3131
}
3232

33+
fun Char.parseInt() = java.lang.Character.getNumericValue(this)
34+
3335
fun main(args: Array<String>) {
3436
println('2'.isPrintable)
3537
}

0 commit comments

Comments
 (0)