X-Git-Url: http://git.mutantstargoat.com/user/nuclear/?p=erebus2020;a=blobdiff_plain;f=xerebus%2Fsrc%2Fmain.c;h=0eda94d4569bf92c0e3ea6ff0bf1a80f45f78c06;hp=9569df193418dfb603e480c25d3e55b35351d6c6;hb=HEAD;hpb=11a8b7dc9f82d6ed298cb18c94b8053c41832fa1 diff --git a/xerebus/src/main.c b/xerebus/src/main.c index 9569df1..0eda94d 100644 --- a/xerebus/src/main.c +++ b/xerebus/src/main.c @@ -99,6 +99,7 @@ int main(int argc, char **argv) return 1; } erb_set_done_callback(erb, jobdone, 0); + reshape_pending = redisp_pending = 1; glGenTextures(1, &fbtex); @@ -125,16 +126,17 @@ int main(int argc, char **argv) break; } - redisp_pending = 0; - glutMainLoopEvent(); - if(FD_ISSET(pfd[0], &rdset)) { struct erb_rect rect; read(pfd[0], &rect, sizeof rect); glTexSubImage2D(GL_TEXTURE_2D, 0, rect.x, rect.y, rect.w, rect.h, GL_RGBA, GL_FLOAT, erb_getframe(erb) + (rect.y * win_width + rect.x) * 4); post_redisplay(); - printf("update (%d %d %dx%d)!\n", rect.x, rect.y, rect.w, rect.h); + } + + if(FD_ISSET(xfd, &rdset) || redisp_pending) { + redisp_pending = 0; + glutMainLoopEvent(); } } #endif /* __unix__ */ @@ -145,7 +147,6 @@ int main(int argc, char **argv) static void jobdone(unsigned int job, struct erb_rect *rect, void *cls) { - printf("jobdone!\n"); write(pfd[1], rect, sizeof *rect); }