X-Git-Url: http://git.tdb.fi/?a=blobdiff_plain;f=source%2Fmain.c;h=92537e21a59bf3c01dee00ec66e94bb75109cde1;hb=44e0516f74915a4e50fdb48d3d2fa90df9013b12;hp=4beab4b93f10f9d092620335b64607db8344f754;hpb=77803dd85ecfa2cc3c7265f8f64c535064181eed;p=geometrycompositor.git diff --git a/source/main.c b/source/main.c index 4beab4b..92537e2 100644 --- a/source/main.c +++ b/source/main.c @@ -529,13 +529,16 @@ void update_monitor_vertices(CompositedScreen *screen, CompositedMonitor *monito free(index_data); } -int initialize_monitor(Compositor *compositor, CompositedScreen *screen, CompositedMonitor *monitor, XRRScreenResources *xrr_res, unsigned index) +int initialize_monitor(Compositor *compositor, CompositedScreen *screen, XRRScreenResources *xrr_res, unsigned index) { + CompositedMonitor *monitor; XRROutputInfo *output; XRRCrtcInfo *crtc; unsigned buffers[2]; unsigned stride; + monitor = &screen->monitors[index]; + output = XRRGetOutputInfo(compositor->display, xrr_res, xrr_res->outputs[index]); monitor->enabled = !!output->crtc; if(!monitor->enabled) @@ -618,7 +621,7 @@ int initialize_screen(Compositor *compositor, unsigned number) screen->nmonitors = xrr_res->noutput; screen->monitors = (CompositedMonitor *)malloc(screen->nmonitors*sizeof(CompositedMonitor)); for(i=0; inmonitors; ++i) - if(!initialize_monitor(compositor, screen, &screen->monitors[i], xrr_res, i)) + if(!initialize_monitor(compositor, screen, xrr_res, i)) return 0; XRRFreeScreenResources(xrr_res); @@ -973,6 +976,8 @@ void refresh_screen(Compositor *compositor, CompositedScreen *screen) glDrawElements(GL_TRIANGLE_STRIP, monitor->nelements, GL_UNSIGNED_SHORT, NULL); } + glBindVertexArray(0); + glXSwapBuffers(compositor->display, screen->glx_window); screen->dirty = 0;