@@ -34,39 +34,67 @@ import uno.buffer.intBufferBig
3434import uno.gl.*
3535import uno.glfw.GlfwWindow
3636import uno.glfw.glfw
37+ import uno.kotlin.parseInt
3738import java.io.File
3839import java.io.PrintWriter
40+ import java.nio.file.Paths
3941import kotlin.reflect.KVisibility
4042import kotlin.reflect.full.memberProperties
4143
4244/* *
4345 * Created by GBarbieri on 10.03.2017.
4446 */
4547
46- val debug = true
47-
4848fun 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
96127class Caps (profile : Profile ) {
0 commit comments