-
Notifications
You must be signed in to change notification settings - Fork 46
/
test_atb.js
96 lines (73 loc) · 2.67 KB
/
test_atb.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
var glfw = require('../index');
var util=require('util');
var log = console.log;
var ATB = new glfw.AntTweakBar();
var version = glfw.GetVersion();
log('glfw ' + version.major + '.' + version.minor + '.' + version.rev);
log('glfw version-string: ' + glfw.GetVersionString());
// Initialize GLFW
if (!glfw.Init()) {
log("Failed to initialize GLFW");
process.exit(-1);
}
// Open OpenGL window
//glfw.WindowHint(glfw.CONTEXT_VERSION_MAJOR, 3);
//glfw.WindowHint(glfw.CONTEXT_VERSION_MINOR, 2);
//glfw.WindowHint(glfw.OPENGL_PROFILE, glfw.OPENGL_ANY_PROFILE);
glfw.DefaultWindowHints();
var width=640, height=480;
var window=glfw.CreateWindow(width, height,"Test");
if (!window) {
log("Failed to open GLFW window");
glfw.Terminate();
process.exit(-1);
}
glfw.MakeContextCurrent(window);
glfw.SetWindowTitle("GLFW Simple Test");
// testing events
glfw.events.on('keydown',function(evt) {
log("[keydown] "+util.inspect(evt));
});
glfw.events.on('mousemove',function(evt) {
log("[mousemove] "+evt.x+", "+evt.y);
});
glfw.events.on('mousewheel',function(evt) {
log("[mousewheel] "+evt.position);
});
glfw.events.on('resize',function(evt){
log("[resize] "+evt.width+", "+evt.height);
});
//can only be called after window creation!
var glVersion_major = glfw.GetWindowAttrib(window, glfw.CONTEXT_VERSION_MAJOR);
var glVersion_minor = glfw.GetWindowAttrib(window, glfw.CONTEXT_VERSION_MINOR);
var glVersion_rev = glfw.GetWindowAttrib(window, glfw.CONTEXT_REVISION);
var glProfile = glfw.GetWindowAttrib(window, glfw.OPENGL_PROFILE);
log('GL ' + glVersion_major + '.' + glVersion_minor + '.' + glVersion_rev+ " Profile: " + glProfile);
log('init AntTweakBar');
ATB.Init();
ATB.Define(" GLOBAL help='This example shows how to integrate AntTweakBar with GLFW and OpenGL.' "); // Message added to the help bar.
ATB.WindowSize(width, height);
twBar=ATB.NewBar("Cube");
var z=0.5;
twBar.AddVar("z", ATB.TYPE_FLOAT, {
getter: function(data){ return z; },
setter: function(val,data) { z=val; log(z); },
},
" label='z' min=-1 max=1 step=0.01 keyIncr=s keyDecr=S help='Eye distance' ");
// Enable vertical sync (on cards that support it)
glfw.SwapInterval(0 /*1*/); // 0 for vsync off
var start = glfw.GetTime();
while(!glfw.WindowShouldClose(window) && !glfw.GetKey(window, glfw.KEY_ESCAPE)) {
// Get window size (may be different than the requested size)
var wsize = glfw.GetFramebufferSize(window);
if(wsize) log("FB size: "+wsize.width+', '+wsize.height);
glfw.testScene(wsize.width, wsize.height, z);
ATB.Draw();
// Swap buffers
glfw.SwapBuffers(window);
glfw.PollEvents();
}
// Close OpenGL window and terminate GLFW
glfw.DestroyWindow(window);
glfw.Terminate();
process.exit(0);