@@ -34,39 +34,67 @@ import uno.buffer.intBufferBig
34
34
import uno.gl.*
35
35
import uno.glfw.GlfwWindow
36
36
import uno.glfw.glfw
37
+ import uno.kotlin.parseInt
37
38
import java.io.File
38
39
import java.io.PrintWriter
40
+ import java.nio.file.Paths
39
41
import kotlin.reflect.KVisibility
40
42
import kotlin.reflect.full.memberProperties
41
43
42
44
/* *
43
45
* Created by GBarbieri on 10.03.2017.
44
46
*/
45
47
46
- val debug = true
47
-
48
48
fun main (args : Array <String >) {
49
49
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
+ }
53
67
54
68
with (glfw) {
55
69
init ()
56
70
windowHint {
57
- context.version = args[ 0 ]
71
+ context.version = version
58
72
profile = " core"
59
73
}
60
74
}
61
75
62
- fun createWindow () = try {
76
+ fun createWindow (): GlfwWindow = try {
63
77
GlfwWindow (1280 , 720 , " test" )
64
78
} 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()
67
94
}
68
95
69
- with (GlfwWindow (1280 , 720 , " test" )) {
96
+ with (createWindow()) {
97
+ println (" highest OpenGL version found ${glfw.windowHint { context.version }} " )
70
98
makeContextCurrent()
71
99
show()
72
100
}
@@ -75,22 +103,25 @@ fun main(args: Array<String>) {
75
103
76
104
val caps = Caps (Caps .Profile .ES )
77
105
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$`-`" )
81
110
caps.version.write(it)
82
- it.println (" $`_ `extensions$`_ `" )
111
+ it.println (" $`- `extensions$`- `" )
83
112
caps.extensions.write(it)
84
- it.println (" $`_ `debug$`_ `" )
113
+ it.println (" $`- `debug$`- `" )
85
114
caps.debug.write(it)
86
- it.println (" $`_ `limits$`_ `" )
115
+ it.println (" $`- `limits$`- `" )
87
116
caps.limits.write(it)
88
- it.println (" $`_ `values$`_ `" )
117
+ it.println (" $`- `values$`- `" )
89
118
caps.values.write(it)
90
- it.println (" $`_ `formats$`_ `" )
119
+ it.println (" $`- `formats$`- `" )
91
120
caps.formats.write(it)
92
121
}
93
122
checkError(" caps" )
123
+
124
+ glfw.terminate()
94
125
}
95
126
96
127
class Caps (profile : Profile ) {
0 commit comments