]> git.tdb.fi Git - geometrycompositor.git/blobdiff - source/main.c
Unbind the vertex array after rendering
[geometrycompositor.git] / source / main.c
index 4beab4b93f10f9d092620335b64607db8344f754..92537e21a59bf3c01dee00ec66e94bb75109cde1 100644 (file)
@@ -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; i<screen->nmonitors; ++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;