draw first frame immediately

This commit is contained in:
Andrey Sidorov 2012-12-11 14:13:39 +11:00
parent d2f6b9c7fc
commit e712fdb0a5

View file

@ -27,22 +27,8 @@ x11.createClient(function(display) {
var ctx = X.AllocID(); var ctx = X.AllocID();
GLX.CreateContext(ctx, visual, 0, 0, 0); GLX.CreateContext(ctx, visual, 0, 0, 0);
GLX.MakeCurrent(win, ctx, 0, function(err, ctx) {}); // do we need to wait for reply here? GLX.MakeCurrent(win, ctx, 0, function(err, ctx) {}); // do we need to wait for reply here?
GLX.GenLists(ctx, 1, function(err, startListIndex) {
listId = startListIndex;
GLX.NewList(ctx, listId, 0x00001300);
var gl = GLX.renderPipeline();
gl.Begin(0x0004);
for (var i=0; i < 1000; ++i)
{
gl.Vertex3f(randomarr[i][0], randomarr[i][1], randomarr[i][2]);
gl.Color3f((randomarr[i+1000][0]+15/30), (randomarr[i+1000][1]+15)/30, (randomarr[i+1000][2]+15)/30);
}
gl.End();
gl.render(ctx);
GLX.EndList(ctx);
});
X.on('event', function(ev) { function draw(ev) {
var gl = GLX.renderPipeline(); var gl = GLX.renderPipeline();
gl.Enable(0x0B71); gl.Enable(0x0B71);
gl.Viewport(0, 0, 800, 800); gl.Viewport(0, 0, 800, 800);
@ -61,7 +47,25 @@ x11.createClient(function(display) {
gl.CallList(listId); gl.CallList(listId);
gl.render(ctx); gl.render(ctx);
GLX.SwapBuffers(ctx, win); GLX.SwapBuffers(ctx, win);
}
GLX.GenLists(ctx, 1, function(err, startListIndex) {
listId = startListIndex;
GLX.NewList(ctx, listId, 0x00001300);
var gl = GLX.renderPipeline();
gl.Begin(0x0004);
for (var i=0; i < 1000; ++i)
{
gl.Vertex3f(randomarr[i][0], randomarr[i][1], randomarr[i][2]);
gl.Color3f((randomarr[i+1000][0]+15/30), (randomarr[i+1000][1]+15)/30, (randomarr[i+1000][2]+15)/30);
}
gl.End();
gl.render(ctx);
GLX.EndList(ctx);
draw({x: 10, y: 10});
}); });
X.on('event', draw);
}); });
X.on('error', function(err) { console.log(err); }); X.on('error', function(err) { console.log(err); });
}); });