]> git.tdb.fi Git - geometrycompositor.git/blobdiff - source/main.c
Avoid unsigned errors when a window goes off the bottom of the screen
[geometrycompositor.git] / source / main.c
index f34acb54885ac30a1e1d5ea18869f6aba83f5151..13038c29ef83f6b8292a6e970edd06225c4de652 100644 (file)
@@ -684,6 +684,22 @@ void shutdown_screen(Compositor *compositor, CompositedScreen *screen)
                }
        }
 
+       for(i=0; i<screen->nmonitors; ++i)
+               if(screen->monitors[i].enabled)
+               {
+                       glDeleteBuffers(1, &screen->monitors[i].vertex_buffer);
+                       glDeleteBuffers(1, &screen->monitors[i].index_buffer);
+                       glDeleteVertexArrays(1, &screen->monitors[i].vertex_array);
+               }
+
+       glDeleteBuffers(1, &screen->window_vertex_buffer);
+       glDeleteVertexArrays(1, &screen->window_vertex_array);
+       glDeleteFramebuffers(1, &screen->framebuffer);
+       glDeleteTextures(1, &screen->fb_texture);
+       glDeleteProgram(screen->program);
+       glDeleteShader(screen->shaders[0]);
+       glDeleteShader(screen->shaders[1]);
+
        glXMakeContextCurrent(compositor->display, 0, 0, NULL);
        glXDestroyContext(compositor->display, screen->glx_context);
        glXDestroyWindow(compositor->display, screen->glx_window);
@@ -894,7 +910,7 @@ void refresh_screen(Compositor *compositor, CompositedScreen *screen)
                glBindTexture(GL_TEXTURE_2D, window->texture);
                compositor->glXBindTexImageEXT(compositor->display, window->glx_pixmap, GLX_FRONT_LEFT_EXT, NULL);
                glUniform4f(screen->geometry_loc,
-                       (float)window->x/screen->width, (float)(screen->height-window->y-window->height)/screen->height,
+                       (float)window->x/screen->width, ((float)screen->height-window->y-window->height)/screen->height,
                        (float)(window->width+2*window->border)/screen->width, (float)(window->height+2*window->border)/screen->height);
                glDrawArrays(GL_TRIANGLE_STRIP, 0, 4);
                compositor->glXReleaseTexImageEXT(compositor->display, window->glx_pixmap, GLX_FRONT_LEFT_EXT);